<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ZUBoard - Recent Threads</title><link>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><lastBuildDate>Mon, 16 Mar 2026 17:50:25 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard" /><item><title>ZUBoard 1CG - AMD EDF 2025.2 build example</title><link>https://community.element14.com/thread/56766?ContentTypeID=0</link><pubDate>Mon, 16 Mar 2026 17:50:25 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f54104f3-0e4c-40da-bcb7-c11b0a66c3e9</guid><dc:creator>Tim5000</dc:creator><slash:comments>4</slash:comments><comments>https://community.element14.com/thread/56766?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56766/zuboard-1cg---amd-edf-2025-2-build-example/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi has anyone tried to build linux/uboot for the 1CG using the 2025.2 AMD EDF?&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve recently had an opportunity to dig my board out again and I&amp;#39;m trying to run it using the latest toolchains as petalinux is being deprecated.&lt;/p&gt;
&lt;p&gt;My previous toying with this were simple ones based on the Adam Taylor ones back in 2023 using petalinux loaded via tftpboot.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve regenerated the XSA and Vitis artifacts using the 2025.2 Vivado and Vitis applications but trying to get a successful Linux/u-boot build via AMD EDF v2025.2 seems to be eluding me.&lt;/p&gt;
&lt;p&gt;Generating the SDT from the XSA appears to go OK but building eventually fails - it seems many things are trying to be built that aren&amp;#39;t needed e.g.(mali GPU) so I&amp;#39;ve ended up with a lot of things modified in my local.conf and still no success which makes me think it&amp;#39;s not correctly targetting the board.&lt;/p&gt;
&lt;p&gt;meta-avnet doesn&amp;#39;t appear to be updated for some time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard 1CG - Vitis debugging halts when communicating with GPIO over at PL side</title><link>https://community.element14.com/thread/56654?ContentTypeID=0</link><pubDate>Tue, 10 Feb 2026 10:03:12 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:776a1446-3d28-4302-9ab6-afc97d8a3410</guid><dc:creator>tstern</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/56654?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56654/zuboard-1cg---vitis-debugging-halts-when-communicating-with-gpio-over-at-pl-side/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;#39;ve setup a minimal project in Vivado, basically I only have the a GPIO block connected to one of the RGB LEDs on the board:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/pastedimage1770717421781v1.png"  /&gt;&lt;/p&gt;
&lt;p&gt;Next, I tried modifying an example code so I can toggle the LED, but once I execute a command that tried reading or writing to the PL side (AXI?) the debugging halts and I must stop debugging to reset the system. The hardware export from Vivado includes the bit file.&lt;/p&gt;
&lt;p&gt;Here is the code that I&amp;#39;m running, it will hang on:&amp;nbsp;XGpio_SetDataDirection(&amp;amp;Gpio, 1, 0);&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll appreciate it greatly if anyone could point out what&amp;#39;s wrong here. I&amp;#39;m using the latest Vivado &amp;amp; Vitis.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;quot;xparameters.h&amp;quot;
#include &amp;quot;xgpio.h&amp;quot;
#include &amp;quot;xstatus.h&amp;quot;
#include &amp;quot;xplatform_info.h&amp;quot;
#include &amp;lt;xil_io.h&amp;gt;
#include &amp;lt;xil_printf.h&amp;gt;
#define XGPIOPS_BASEADDR    XPAR_XGPIO_0_BASEADDR

#define LED_DELAY       10000000

#define LED_MAX_BLINK       0x10    /* Number of times the LED Blinks */

#define printf          xil_printf  /* Smalller foot-print printf */

static int GpioOutputExample(void);
static int GpioInputExample(u32 *DataRead);
#ifndef SDT
int GpioPolledExample(u16 DeviceId, u32 *DataRead);
#else
int GpioPolledExample(UINTPTR BaseAddress, u32 *DataRead);
#endif

static u32 Input_Pin; /* Switch button */
static u32 Output_Pin; /* LED button */

XGpio Gpio; /* The driver instance for GPIO Device. */

/*****************************************************************************/
/**
*
* Main function to call the example.
*
*
* @return
*       - XST_SUCCESS if the example has completed successfully.
*       - XST_FAILURE if the example has failed.
*
* @note     None
*
******************************************************************************/
int main(void)
{
    int Status;
    u32 InputData;

    printf(&amp;quot;GPIO Polled Mode Example Test \r\n&amp;quot;);
#ifndef SDT
    Status = GpioPolledExample(GPIO_DEVICE_ID, &amp;amp;InputData);
#else
    Status = GpioPolledExample(XGPIOPS_BASEADDR, &amp;amp;InputData);
#endif
    if (Status != XST_SUCCESS) {
        printf(&amp;quot;GPIO Polled Mode Example Test Failed\r\n&amp;quot;);
        return XST_FAILURE;
    }

    printf(&amp;quot;Data read from GPIO Input is  0x%x \n\r&amp;quot;, (int)InputData);
    printf(&amp;quot;Successfully ran GPIO Polled Mode Example Test\r\n&amp;quot;);
    return XST_SUCCESS;
}

/*****************************************************************************/
/**
*
* The purpose of this function is to illustrate how to use the GPIO driver to
* turn on/off an LED and read the inputs using the pin APIs.
*
* @param    DeviceId is the XPAR_&amp;lt;GPIO_instance&amp;gt;_DEVICE_ID value from
*       xparameters.h
* @param    DataRead is the pointer where the data read from GPIO Input is
*       returned.
*
* @return
*       - XST_SUCCESS if the example has completed successfully.
*       - XST_FAILURE if the example has failed.
*
* @note     This function will not return if the test is running.
*
******************************************************************************/
#ifndef SDT
int GpioPolledExample(u16 DeviceId, u32 *DataRead)
#else
int GpioPolledExample(UINTPTR BaseAddress, u32 *DataRead)
#endif
{
    int Status;
    XGpio_Config *ConfigPtr;
    int Type_of_board;

    /* Initialize the GPIO driver. */
#ifndef SDT
    //ConfigPtr = XGpio_LookupConfig(GPIO_DEVICE_ID);
#else
    ConfigPtr = XGpio_LookupConfig(BaseAddress);
#endif
    Type_of_board = XGetPlatform_Info();
    switch (Type_of_board) {
        case XPLAT_ZYNQ_ULTRA_MP:
            Input_Pin = 1;
            Output_Pin = 0;
            break;

        case XPLAT_ZYNQ:
            Input_Pin = 14;
            Output_Pin = 10;
            break;
#ifdef versal
        case XPLAT_VERSAL:
            /* Accessing PMC GPIO by setting field to 1 */
            Gpio.PmcGpio =  1;
            Input_Pin    = 56;
            Output_Pin   = 52;
            break;
#endif
    }

    Status = XGpio_CfgInitialize(&amp;amp;Gpio, ConfigPtr,
                       ConfigPtr-&amp;gt;BaseAddress);
    if (Status != XST_SUCCESS) {
        return XST_FAILURE;
    }

    Status = XGpio_Initialize(&amp;amp;Gpio, XPAR_XGPIO_0_BASEADDR);

    if (Status != XST_SUCCESS) {
        return XST_FAILURE;
    }
    
    /* Run the Output Example. */
    Status = GpioOutputExample();
    if (Status != XST_SUCCESS) {
        return XST_FAILURE;
    }

    return XST_SUCCESS;
}

/*****************************************************************************/
/**
*
* This function does a minimal test on the GPIO device configured as OUTPUT.
*
* @param    None.
*
* @return   - XST_SUCCESS if the example has completed successfully.
*       - XST_FAILURE if the example has failed.
*
* @note     None.
*
****************************************************************************/
static int GpioOutputExample(void)
{
    u32 Data;
    volatile int Delay;
    u32 LedLoop;

    /*
     * Set the direction for the pin to be output and
     * Enable the Output enable for the LED Pin.
     */

    XGpio_SetDataDirection(&amp;amp;Gpio, 1, 0);

    /* Set the GPIO output to be low. */
    XGpio_DiscreteWrite(&amp;amp;Gpio, 1, 0);


    for (LedLoop = 0; LedLoop &amp;lt; LED_MAX_BLINK; LedLoop ++) {

#ifndef __SIM__
        /* Wait a small amount of time so the LED is visible. */
        for (Delay = 0; Delay &amp;lt; LED_DELAY; Delay++);

#endif
        /* Set the GPIO Output to High. */
        XGpio_DiscreteWrite(&amp;amp;Gpio, 1, 0b111);
        /*
         * Read the state of the data and verify. If the data
         * read back is not the same as the data written then
         * return FAILURE.
         */
    

#ifndef __SIM__
        /* Wait a small amount of time so the LED is visible. */
        for (Delay = 0; Delay &amp;lt; LED_DELAY; Delay++);

#endif

        /* Clear the GPIO Output. */
        XGpio_DiscreteWrite(&amp;amp;Gpio, 1, 0);

        /*
         * Read the state of the data and verify. If the data
         * read back is not the same as the data written then
         * return FAILURE.
         */

    }
    return XST_SUCCESS;
}&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Custom AXI4 Lite I2C checking</title><link>https://community.element14.com/thread/56626?ContentTypeID=0</link><pubDate>Fri, 30 Jan 2026 07:01:44 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:e5bb83a3-305f-40f4-b292-654578a9f9fa</guid><dc:creator>MATRIX7878</dc:creator><slash:comments>14</slash:comments><comments>https://community.element14.com/thread/56626?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56626/custom-axi4-lite-i2c-checking/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;I have been working on a custom AXI4 Lite I2C core for the ZuBoard 1CG on board temp sensor.&amp;nbsp; The best I can do is read back a value of 0x00 for the WHO_AM_I register.&amp;nbsp; It should be 0xA0.&amp;nbsp; Since Xilinx&amp;#39;s AXI4 IP creator is broken, I have created a custom AXI4 protocol.&amp;nbsp; I need help understanding what the problem with my design is.&amp;nbsp; I do not know if it is with my VHDL, or my C.&amp;nbsp; Everything in my C executes, so it seems like the hardware I built does not have errors in it, it just does not work.&amp;nbsp; The VHDL is 2019 version:&amp;nbsp;&lt;a href="https://github.com/MATRIX7878/AXI4-I2C" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;MATRIX7878/AXI4-I2C: A simple I2C for AXI4&lt;/a&gt;.&amp;nbsp; I have confirmed the sensor works by using the Avnet IIC temp sensor AXI4.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Contradictory Pins</title><link>https://community.element14.com/thread/56566?ContentTypeID=0</link><pubDate>Tue, 06 Jan 2026 02:26:03 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:6052837e-c3f9-4766-980b-4cbb55cb347f</guid><dc:creator>MATRIX7878</dc:creator><slash:comments>3</slash:comments><comments>https://community.element14.com/thread/56566?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56566/contradictory-pins/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; I am using a ZuBoard 1CG.&amp;nbsp; I plan on using the temperature sensor (I2C) and am creating my own AXI4 to control it.&amp;nbsp; The schematic and the user manual give contradictory information on which pin is which.&amp;nbsp; To whomever has used this board before: is SCL B7, or A6 and then SDA the same question.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/6253.pastedimage1767666277906v1.png"  /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/5657.pastedimage1767666321257v2.png"  /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUB1CG - xdc file</title><link>https://community.element14.com/thread/56275?ContentTypeID=0</link><pubDate>Tue, 14 Oct 2025 00:33:26 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2e10edfe-13eb-4847-8cae-5be7c0be3a56</guid><dc:creator>salasidis</dc:creator><slash:comments>4</slash:comments><comments>https://community.element14.com/thread/56275?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56275/zub1cg---xdc-file/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Is there a ready made .xdc file somewhere where this can be downloaded.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I am used to the Digilent boards where all the files were provided for all their boards.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUB1CG - BDF for Vivado 2024.2</title><link>https://community.element14.com/thread/56274?ContentTypeID=0</link><pubDate>Mon, 13 Oct 2025 19:03:38 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:b63d835d-6c18-483c-9d23-854c808c270d</guid><dc:creator>salasidis</dc:creator><slash:comments>6</slash:comments><comments>https://community.element14.com/thread/56274?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56274/zub1cg---bdf-for-vivado-2024-2/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;On the Avnet website, it says the BDF is deprecated, but does not seem to say what the workaround is.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;What is the correct way to install a BDF for this board&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard PYNQ with SSD/M.2 - FOR YOU</title><link>https://community.element14.com/thread/56227?ContentTypeID=0</link><pubDate>Thu, 02 Oct 2025 03:52:48 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2220cd33-1d45-47d3-bdcc-f9443a73d286</guid><dc:creator>tjaekel</dc:creator><slash:comments>2</slash:comments><comments>https://community.element14.com/thread/56227?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56227/zuboard-pynq-with-ssd-m-2---for-you/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;ZUBoard&lt;/strong&gt; running &lt;strong&gt;PYNQ&lt;/strong&gt; (Python and PL bit files) with a &lt;strong&gt;AVNET SSD/M.2&lt;/strong&gt; - &lt;span style="color:#008000;"&gt;&lt;strong&gt;works&lt;/strong&gt;&lt;/span&gt;.&lt;br /&gt;No need to setup a build environment, no need to check out source code repositories like PYNQ, Petalinux BSP, in order to modify and build it...&lt;/p&gt;
&lt;p&gt;I have placed all needed files in order to &amp;quot;&lt;em&gt;patch&lt;/em&gt;&amp;quot; the &lt;strong&gt;original ZUBoard PYNQ&lt;/strong&gt; image 3.0.1 to make the &lt;strong&gt;SSD/M.2 working&lt;/strong&gt;,&lt;br /&gt;plus the instruction steps to modify (see below):&lt;/p&gt;
&lt;p&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-discussions-components-files/366/patch_5F00_files.zip"&gt;community.element14.com/.../patch_5F00_files.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Steps to do:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Have a &lt;strong&gt;regular PYNQ image on SD card&lt;/strong&gt;:&lt;br /&gt;- boot this regular image&lt;br /&gt;-&amp;nbsp;you should be able to use network in order to copy the needed files to the&lt;br /&gt;&amp;nbsp; PYNQ working (home) directory and to work from there then in an UART terminal&lt;br /&gt;- for instance: have all files from the ZIP extracted in a folder &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;patch_files&lt;/span&gt; on &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;$HOME&lt;/span&gt; directory&lt;br /&gt;&amp;nbsp; (copy to ZUBoard PYNQ system running via network device)&lt;/li&gt;
&lt;li&gt;check if the boot partition of the SD card is mounted (often visible as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/boot&lt;/span&gt;):&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;strong&gt;&lt;span style="color:#0000ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;lsblk&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt; if &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;mmcblk0p&lt;/span&gt;1 is not mounted - mount it, e.g. as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;boot&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; - &lt;span style="color:#0000ff;"&gt;&lt;strong&gt;sudo cp&lt;/strong&gt;&lt;/span&gt; the files:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;BOOT.BIN&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; image.ub&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; boot.scr&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp; into this &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;boot&lt;/span&gt; partition (on &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;mmcblk0p1&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;take the tar file &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;modules_pl&lt;/span&gt; and extract it into folder:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/lib/modules&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt; - you should have a folder with the name &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;5.15.36-xilinx-v2022.2&lt;span style="font-family:arial, helvetica, sans-serif;"&gt; now&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; - the folder &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;5.15.19-xilinx-v2022.1&lt;/span&gt;&amp;nbsp;:&amp;nbsp;you could delete later (when all works fine), rename it&lt;br /&gt;&amp;nbsp; for now to make sure it is not used anymore&lt;br /&gt; - extract &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;modules_pl&lt;/span&gt; via command:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;strong&gt;&lt;span style="color:#0000ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;sudo tar -xvf modules_pl -C /lib/modules&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt; - check if you see now a folder &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/lib/modules/5.15.36-xilinx-v2022.2&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;create an entry in &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;sudoers&lt;/span&gt;&amp;nbsp;in order to avoid to provide a password if you do &amp;#39;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;sudo&lt;/span&gt;&amp;#39;:&lt;br /&gt; edit the file &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/etc/sudoers&lt;/span&gt; and add this line:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;strong&gt;&lt;span style="color:#0000ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;xilinx ALL=(ALL:ALL) NOPASSWD: ALL&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;copy the file &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;create_dri.sh&lt;/span&gt; into folder:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/etc/profile.d&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;do the command:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;strong&gt;&lt;span style="color:#0000ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;sync &amp;amp;&amp;amp; sync&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;You can reboot:&lt;br /&gt; - &lt;strong&gt;stop the U-Boot&lt;/strong&gt; (any key hit) and change the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bootargs&lt;/span&gt;:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;setenv bootargs &amp;quot;console=ttyPS0,115200 earlycon clk_ignore_unused &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;uio_pdrv_genirq.of_id=generic-uio&lt;/span&gt;&lt;/strong&gt; root=/dev/mmcblk0p2 rw rootwait cma=512M&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; saveenv&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; &amp;nbsp; boot&lt;/span&gt;&lt;br /&gt;
&lt;p&gt;You should see now the SSD via&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;strong&gt;&lt;span style="color:#0000ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;lsblk&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;nvme0n1&lt;/span&gt; !&lt;br /&gt;if not:&lt;br /&gt;- check if you see it as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/dev/nvme0&lt;/span&gt; :&lt;br /&gt;&amp;nbsp; &amp;nbsp;potentially, you might need to &lt;span style="color:#0000ff;"&gt;&lt;strong&gt;create a partition on SSD and to format&lt;/strong&gt;&lt;/span&gt; it (use just &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;ext4&lt;/span&gt; format)&lt;/p&gt;
&lt;p&gt;As a cross check if all works:&lt;br /&gt;- check if the &lt;strong&gt;I2C interrupt&lt;/strong&gt; is now set to &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;126&lt;/strong&gt;&lt;/span&gt;:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;strong&gt;&lt;span style="color:#0000ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;cat /proc/interrupts&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt; &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;a0030000.i2c&lt;/span&gt; should use now &lt;strong&gt;&lt;span style="color:#ff00ff;"&gt;126&lt;/span&gt;&lt;/strong&gt; (not &lt;span style="color:#ff0000;"&gt;121&lt;/span&gt; anymore)!&lt;br /&gt;- check also if a folder&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/dev/dri/by-path&lt;/span&gt;&lt;br /&gt; was created.&lt;br /&gt;- check also if &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;sudo&lt;/span&gt; does &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; ask anymore for a password, e.g.:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;sudo ls /dev/dri/by-path&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now &lt;span style="color:#008000;"&gt;&lt;strong&gt;your system should be good to continue&lt;/strong&gt;&lt;/span&gt; with the Python part.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;If you want to use a BITFILE in the Python scripts (as PL Overlay):&lt;br /&gt; &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;sudo cp&lt;/span&gt; this &lt;strong&gt;BITFILE&lt;/strong&gt; into folder:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;/lib/firmware&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; remark: in the Python script we will load this via a shell command, but using&amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;ol.Overlay(..., &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;download=False&lt;/span&gt;&lt;/strong&gt;)&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; and before you might need to load the device tree overlay &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dt.dtbo&lt;/span&gt; as well - if you want to use&amp;nbsp;&lt;strong&gt;INT&lt;/strong&gt;errupts&lt;br /&gt; - keep the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dt.dtbo&lt;/span&gt; together with your BITFILE in &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/home/xilinx/pynq/overlays/BITFILE_folder&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Your Python script should look like this:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;from pynq import Overlay, Interrupt, devicetree&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; from cffi import FFI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; import os&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;#load the FPGA file: works only manually with SSD module support:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; os.system(&amp;quot;&lt;strong&gt;echo ZUBOARD_SPI.bit &amp;gt; /sys/class/fpga_manager/fpga0/firmware&lt;/strong&gt;&amp;quot;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;#load the device tree to add &amp;#39;fabric&amp;#39;, needed if we want to use INTerrupts&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; dt = devicetree.DeviceTreeSegment(&amp;quot;/home/xilinx/pynq/overlays/BITFILE_folder/&lt;strong&gt;dt.dtbo&lt;/strong&gt;&amp;quot;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; dt.insert()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; if dt.is_dtbo_applied():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; print(&amp;quot;APPLIED&amp;quot;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; else:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; print(&amp;quot;NOT applied&amp;quot;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;#create the Overlay but without to load!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; ol = Overlay(&amp;quot;BITFILE.xsa&amp;quot;, &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;download=False&lt;/strong&gt;&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Now your BITFILE should be loaded and Python should be able to use all its features,&lt;br /&gt; including having &lt;strong&gt;INT&lt;/strong&gt; signals and &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;axi_intc&lt;/span&gt; in your design, etc.&lt;/li&gt;
&lt;li&gt;as a &lt;em&gt;cross check&lt;/em&gt; after your BITFILE was loaded and works in Python... - check if you can &lt;span style="color:#008000;"&gt;&lt;strong&gt;use SSD&lt;/strong&gt;&lt;/span&gt;:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;mkdir ssd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; sudo mount /dev/nvme0n1 ~/ssd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; &amp;nbsp; ls ssd&lt;/span&gt;&lt;br /&gt; This &lt;strong&gt;&lt;span style="color:#339966;"&gt;should work&lt;/span&gt;&lt;/strong&gt; (if SSD is partitioned and formatted). You should see the SSD working even you have&lt;br /&gt; loaded your BITFILE.&lt;br /&gt; (&lt;em&gt;not sure?&lt;/em&gt;: if not: maybe we have to enable the PCIe in the user block diagram on the PS block, but I have not&lt;br /&gt; seen an issue so far with my own simple bit files)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;REMARK:&lt;br /&gt;There is already a bit file loaded during boot (obviously needed for the PCIe/SSD). It has also blocks&lt;br /&gt;like I2C or GPIO in it (like a system.bit file). On one of the I2C blocks (I guess the second) we have &lt;strong&gt;changed the INT vector number!&lt;br /&gt;&lt;/strong&gt;(we must do so in order to have INT working in our bitfile overlay)&lt;br /&gt;So, one of the I2Cs in &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;system.bit&lt;/span&gt; file cannot use anymore INT! (I guess it is intended for reading the I2C DNA chip on an external module).&lt;/p&gt;
&lt;p&gt;The files:&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dt.dtsi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; boot.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; boot2.txt&lt;/span&gt;&lt;br /&gt;are just source files to create the binary file versions needed (via &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dtc&lt;/span&gt; and &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;mkimage&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;, on Linux host).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The files&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;boot2.txt&lt;/span&gt; and &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;boot2.cmd&lt;/span&gt; (binary)&lt;br /&gt;are not anymore used (U-BOOT is doing the device tree modification which is now in file &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;boot.scr&lt;/span&gt;).&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Options:&lt;br /&gt;You have the option, after you have &lt;strong&gt;partitioned and formatted the SSD&lt;/strong&gt; module (as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;ext4&lt;/span&gt;), to &amp;quot;&lt;em&gt;copy&lt;/em&gt;&amp;quot; the entire Linux &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;rootfs&lt;/span&gt; file system,&lt;br /&gt;the content of the SD card partition 2, visible as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/dev/mmcblk0p2&lt;/span&gt;, to the SSD module:&lt;br /&gt;- SSD &lt;span style="text-decoration:underline;"&gt;cannot&lt;/span&gt; have a boot partition, so you create just one primary &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;ext4&lt;/span&gt; partition for the Linux files system&lt;br /&gt;&amp;nbsp; &amp;nbsp;(we could not boot anyway from SSD, so no boot partition needed)&lt;br /&gt;- best is &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; to use &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;cp&lt;/span&gt; - instead &lt;strong&gt;use &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;tar&lt;/span&gt;&lt;/strong&gt;, at &lt;strong&gt;best &lt;span style="color:#0000ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dd&lt;/span&gt;&lt;/strong&gt;, with keeping symbolic links correct in tar archive or &amp;quot;copy&amp;quot; directly as it is&lt;br /&gt;- &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;ATTENTION&lt;/strong&gt;&lt;/span&gt;: &lt;br /&gt;&amp;nbsp; &amp;nbsp;you &lt;span style="text-decoration:underline;"&gt;cannot&lt;/span&gt; &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;tar&lt;/span&gt;&amp;nbsp;or &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dd&lt;/span&gt; the entire active root directory, starting from /, when you want to store also the tar file on the same device in use&lt;br /&gt;&amp;nbsp; &amp;nbsp;(a recursive tar!)&lt;br /&gt;&amp;nbsp; &amp;nbsp;==&amp;gt; use an &lt;strong&gt;USB memory stick&lt;/strong&gt; as &lt;em&gt;temporary storage&lt;/em&gt;:&lt;br /&gt; - format the USB memory stick as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;ext4&lt;/span&gt; (for large file size and Linux file system)&lt;br /&gt; - &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;tar&lt;/span&gt; the entire &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;rootfs&lt;/span&gt; / to a tar file on USB stick&lt;br /&gt;- now you can use &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;tar&lt;/span&gt; to unpack the USB stick tar file into the SSD partition&lt;br /&gt;- BTW: instead of &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;tar&lt;/span&gt;, better to use:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dd if=... of=... ...&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; to do it.&lt;br /&gt;- after the SSD has now the same &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;rootfs&lt;/span&gt; - check if you see the / and all files on SSD device, &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;nvme0n1&lt;/span&gt;, after you have mounted the SSD&lt;br /&gt;&amp;nbsp; &amp;nbsp;you have to boot but &lt;strong&gt;stop the U-Boot&lt;/strong&gt; (by hitting keys right at the beginning of the boot process, watch the UART terminal)&lt;br /&gt;- now you have to set the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bootargs&lt;/span&gt; for the U-Boot to use the &lt;strong&gt;SSD&lt;/strong&gt; for the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;rootfs&lt;/span&gt;:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;setenv bootargs &amp;quot;console=ttyPS0,115200 earlycon clk_ignore_unused uio_pdrv_genirq.of_id=generic-uio &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;root=/dev/nvme0n&lt;/span&gt;&lt;/strong&gt;1 rw rootwait cma=512M&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp;saveenv&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp;boot&lt;/span&gt;&lt;br /&gt;- now, it should boot from SD card but it uses the main Linux filesystem &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;rootfs&lt;/span&gt; &lt;strong&gt;on SSD&lt;/strong&gt; - &lt;strong&gt;&lt;span style="color:#008000;"&gt;much faster!&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp; The SD card is still needed to boot (partition 1 with BOOT files) but their second partition &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;mmcblk0p2&lt;/span&gt; is now free as a regular device.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;REMARK:&lt;br /&gt;For me, only one specific SSD/M.2 module works on ZUBOARD:&lt;br /&gt;- try to find the &lt;strong&gt;KingSpec 256G module with B+M key&lt;/strong&gt;&lt;br /&gt;- it must have a B (+M) key, as PCIe &lt;strong&gt;Gen3x2&lt;/strong&gt; (2-lanes, &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; 4! and not just an M key!)&lt;/p&gt;
&lt;p&gt;The correct way is actually:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;update the Petalinux BSP in PYNQ&lt;/li&gt;
&lt;li&gt;add the PCIe and NVME to it&lt;/li&gt;
&lt;li&gt;build a new PYNQ image and&lt;/li&gt;
&lt;li&gt;provide a newer ZUBoard PYNQ image - &lt;span style="color:#008000;"&gt;&lt;strong&gt;thank you&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard with SSD (M.2) and PYNQ - WORKS</title><link>https://community.element14.com/thread/56223?ContentTypeID=0</link><pubDate>Wed, 01 Oct 2025 04:16:45 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:50cd6235-00a4-40d9-ae43-96ccb33d65df</guid><dc:creator>tjaekel</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/56223?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56223/zuboard-with-ssd-m-2-and-pynq---works/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have the &lt;strong&gt;SSD&lt;/strong&gt; module (the AVNET module with the M.2 SSD memory) &lt;span style="color:#008000;"&gt;&lt;strong&gt;working&lt;/strong&gt;&lt;/span&gt; on the official&amp;nbsp;&lt;span style="color:#008000;"&gt;&lt;strong&gt;PYNQ&lt;/strong&gt;&lt;/span&gt; image (which does not support eMMC, neither SSD).&lt;br /&gt;It works to boot from SD card (&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;mmcblk0&lt;/span&gt;) and to have the SSD module available as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;nvme0n1&lt;/span&gt; device.&lt;br /&gt;It works also to load an FPGA Overlay, even using INT signals (e.g. from &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;axi_gpio&lt;/span&gt;, as&amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;axi_gpio_0/ip2intc_irpt&lt;/span&gt; and&amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;axi_intc_0/intr&lt;span style="font-family:inherit;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The only &lt;strong&gt;drawback&lt;/strong&gt;:&lt;br /&gt;If loading an FPGA Overlay &lt;span style="text-decoration:underline;"&gt;using&lt;/span&gt; such &lt;span style="text-decoration:underline;"&gt;INT signals -&lt;/span&gt; it needs &lt;span style="color:#ff00ff;"&gt;&lt;strong&gt;two manual steps&lt;/strong&gt;&lt;/span&gt; done by the user.&lt;br /&gt;Loading an FPGA Overlay &lt;span style="text-decoration:underline;"&gt;without&lt;/span&gt; using an INT signal &lt;span style="color:#008000;"&gt;works as intended&lt;/span&gt; in the regular way.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;How to modify PYNQ image for using SSD?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Here is what you would need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;have two SD cards which you can flash with images&lt;/li&gt;
&lt;li&gt;have also an USB stick, formatted as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;ext4&lt;/span&gt;, to use on the ZUBoard PYNQ system (&lt;em&gt;we need just as temporary storage device&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Steps to &lt;strong&gt;modify the PYNQ image&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;flash one SD card with the original &lt;strong&gt;PYNQ image&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;flash the second SD card with the &lt;strong&gt;TEST image&lt;/strong&gt;:&lt;br /&gt;get it from here (&lt;em&gt;download the image via the link there&lt;/em&gt;):&lt;br /&gt;&lt;a id="" href="https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;boot the Petalinux TEST image first (first SD card):&lt;br /&gt;- copy the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;BOOT.BIN&lt;/span&gt; and &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;image.ub&lt;/span&gt; to USB device (&lt;em&gt;to keep it there temporarily&lt;/em&gt;)&lt;br /&gt;- &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;tar&lt;/span&gt; the directory in: &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/lib/modules&lt;/span&gt;, seen as&amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;5.15.36-xilinx-v2022.2&lt;/span&gt;&amp;nbsp;, to USB, as a tar file keeping the symbolic links&lt;/li&gt;
&lt;li&gt;now boot the SD card with the original PYNQ image:&lt;br /&gt;- copy the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;BOOT.BIN&lt;/span&gt; and &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;image.ub&lt;/span&gt; (from USB device) into the SD card &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/boot&lt;/span&gt; folder&lt;br /&gt;- extract the tar file with the&amp;nbsp;/lib/modules/&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;5.15.36-xilinx-v2022.2&lt;/span&gt;&amp;nbsp;folder into &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/lib/modules&lt;/span&gt;&lt;br /&gt;&amp;nbsp; Remark: this makes sure that the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;image.ub&lt;/span&gt; fits to the version of the dynamic modules (petalinux build 2022.2, not 2022.1 as PYNQ!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have done this, you can boot now again. Now it should be possible to load an FPGA Overlay in the usual way,&lt;br /&gt;as long as it does &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; use &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;axi_intc&lt;/span&gt;, &lt;span style="text-decoration:underline;"&gt;not using&lt;/span&gt; interrupt signals in Overlay.&lt;br /&gt;Otherwise, see the further steps below what to do.&lt;/p&gt;
&lt;p&gt;The SSD module is visible as device &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/dev/nvme0n1&lt;/span&gt; and can be mounted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Using FPGA Overlay with interrupts&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Info: the Petalinux &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;image.ub&lt;/span&gt; loads an FPGA bit file, in order to initialize the PCIe (the two GP lanes needed, on the PS system).&lt;br /&gt;Unfortunately, it comes as a full FPGA bit file (like an Overlay but already loaded during boot), which has also GPIO, I2C blocks in it.&lt;br /&gt;One of the I2Cs (&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;i2c@ff030000&lt;/span&gt;) uses also interrupts via &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/amba_pl@0/i2c@a0030000&lt;/span&gt;!&lt;br /&gt;So, the index 70 in command:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;cat /proc/interrupts&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;is already used for vector number &lt;strong&gt;121&lt;/strong&gt;. The same vector we would need for &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;our&lt;/span&gt;&lt;/strong&gt; interrupts.&lt;br /&gt;In addition: the device tree does &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; have the node &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;fabric&lt;/span&gt;&amp;nbsp;defined (which we need to map this vector 121 to it as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;generic-uio&lt;/span&gt;).&lt;br /&gt;Otherwise, if the vector 121 is still in use - we get errors when loading the device tree overlay or the UIO device for it will not be found.&lt;/p&gt;
&lt;p&gt;So,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;we have to &lt;em&gt;move&lt;/em&gt; the used vector &lt;strong&gt;121&lt;/strong&gt; away:&lt;br /&gt;we do it by modifying the device tree during &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;u-boot&lt;/span&gt;:&lt;br /&gt;&lt;strong&gt;stop&lt;/strong&gt; &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;u-boot&amp;nbsp;&lt;/span&gt;(&lt;em&gt;hit a key during boot&lt;/em&gt;), execute commands to modify the device tree (e.g. via a &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;u-boot&lt;/span&gt; command script &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;boot.cmd&lt;/span&gt;)&lt;br /&gt;and boot from memory after the device tree modification was done - via &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bootm&lt;/span&gt;&lt;br /&gt;&lt;em&gt;We assign a different INT vector number to the I2C block which is using it already, we give it a new vector number.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Now the vector 121 is fee.&lt;br /&gt;But we have to load a &lt;strong&gt;device tree overlay&lt;/strong&gt; which defines and adds the node &lt;span style="font-size:150%;"&gt;&lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;fabric&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;, using this vector &lt;strong&gt;121&lt;/strong&gt;:&lt;br /&gt;this is done via using a device tree blob file as overlay, &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dt.dtbo&lt;/span&gt;, which we load via Python &lt;span style="color:#ff0000;text-decoration:underline;"&gt;before&lt;/span&gt; we load the FPGA Overlay.&lt;/li&gt;
&lt;li&gt;Unfortunately, in this mode the load of the FPGA overlay does not work anymore in the regular way:&lt;br /&gt;the directory &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/dev/dri/by-path&lt;/span&gt; is not available.&lt;br /&gt;we have to create this directory path (&lt;em&gt;just to make Python happy&lt;/em&gt;) and we have to load the FPGA Overlay &lt;span style="text-decoration:underline;"&gt;manually&lt;/span&gt;!&lt;br /&gt;We can do it via a shell script &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;create_dri.sh&lt;/span&gt;, located in &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/etc/profiled.d&lt;/span&gt; directory, creating this directory path on startup in case&lt;br /&gt;it does not exist (&lt;em&gt;Python wants to see it, even we specify&lt;/em&gt; &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;downlad=False&lt;/span&gt; - &lt;span style="color:#ff00ff;"&gt;a bug&lt;/span&gt;?).&lt;/li&gt;
&lt;li&gt;copy the BIT file into the folder &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;/lib/firmware&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;do the commands:&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; su root&amp;nbsp; &amp;nbsp;#password is xilinx - we can only do as root!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; echo BIT &amp;gt; /sys/class/fpga_manager/fpga0/firmware&amp;nbsp; &amp;nbsp;#BIT is the name of the BIT file&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:inherit;"&gt;now you can start the Jupyter Notebook with the Python script related to use the FPGA bit file.&lt;br /&gt;&lt;/span&gt;But:&lt;br /&gt;You cannot load the BIT file (it is already done via this &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;echo BIT...&lt;/span&gt; command).&lt;br /&gt;So, your Python scripts should like this:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;dt = devicetree.DeviceTreeSegment(&amp;quot;/home/xilinx/pynq/overlays/MY_OVERLAY/dt.dtbo&amp;quot;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;dt.insert()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if dt.is_dtbo_applied():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; print(&amp;quot;&lt;strong&gt;&lt;span style="color:#008000;"&gt;APPLIED&lt;/span&gt;&lt;/strong&gt;&amp;quot;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print(&amp;quot;NOT applied&amp;quot;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ol = Overlay(&amp;quot;MY_OVERLAY.xsa&amp;quot;, download=&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;False&lt;/span&gt;&lt;/strong&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now, the FPGA Overlay bit file should be loaded, working, including using interrupt signals.&lt;/p&gt;
&lt;p&gt;You can check if the interrupt vector was properly moved and the fabric with vector 121 was properly added via:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;cat /proc/interrupts&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The SSD is still working, check it via mounting and using it (via UART console):&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;mkdir ssd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;sudo mount /dev/nvme0n1 ~/sdd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ls sdd&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Remarks&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The correct way to support PYNQ with SDD is actually to merge a &lt;strong&gt;newer Petalinux BSP&lt;/strong&gt; version (at least 2022_2) to the &lt;strong&gt;PYNQ build repository&lt;/strong&gt;.&lt;br /&gt;Not sure, but it looks like, enabling SSD (PCIe) is a bit more complex, e.g. the TEST image is different as the BSP files (&lt;em&gt;I assume, the BSP files do not enable PCIe/SSD&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;If we want to keep going with this &amp;quot;&lt;em&gt;patch&lt;/em&gt;&amp;quot; approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;best is to modify the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;boot.scr&lt;/span&gt; file and add the commands we need to modify the device tree before we boot via &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bootm&lt;/span&gt; command&lt;br /&gt;(should be possible)&lt;/li&gt;
&lt;li&gt;how to load the FPGA BIT file, requiring &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;su root&lt;/span&gt; login (with password)?&lt;br /&gt;(not possible, sudo does not work: the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/sys/class/...&lt;/span&gt; path is &lt;span style="color:#ff0000;"&gt;just writable for &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;root&lt;/span&gt;!&lt;/span&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But:&lt;/p&gt;
&lt;p&gt;If you do not need interrupt signals - this approach works fine to &lt;span style="color:#339966;"&gt;load FPGA overlay bit files in the regular way&lt;/span&gt;.&lt;br /&gt;And:&lt;br /&gt;&lt;strong&gt;It keeps the SSD, M.2 device, working - &lt;span style="color:#0000ff;"&gt;COOL&lt;/span&gt;!&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard memory speeds - results</title><link>https://community.element14.com/thread/56194?ContentTypeID=0</link><pubDate>Thu, 25 Sep 2025 00:24:58 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:0735f2b8-5872-436c-ba8c-6bcfdb7e4ddc</guid><dc:creator>tjaekel</dc:creator><slash:comments>3</slash:comments><comments>https://community.element14.com/thread/56194?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56194/zuboard-memory-speeds---results/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;For all interested in the memory speeds possible (&lt;em&gt;what to expect&lt;/em&gt;) and comparing the options to use the fastest memory,&lt;br /&gt;e.g. for recording or transferring live data to a fast media.&lt;/p&gt;
&lt;p&gt;I have measured the &lt;strong&gt;ZUBoard&lt;/strong&gt; &lt;em&gt;memory speeds&lt;/em&gt; (plus ETH speed):&lt;/p&gt;
&lt;table width="663" height="116"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;eMMC&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;SD card (boot)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;USB&amp;nbsp; &amp;nbsp; 1) 4)&lt;/td&gt;
&lt;td&gt;SSD&amp;nbsp; &amp;nbsp; 2) 5)&lt;/td&gt;
&lt;td&gt;RAM (&lt;span style="color:#0000ff;"&gt;&lt;em&gt;as ref.&lt;/em&gt;&lt;/span&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;span style="color:#800080;"&gt;wr&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;4.6&lt;/strong&gt; &lt;/span&gt;MB/s&lt;/td&gt;
&lt;td&gt;21 MB/s - best &lt;span style="color:#800080;"&gt;26&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;8 MB/s - best &lt;span style="color:#008000;"&gt;38&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;span style="color:#00ff00;"&gt;174&lt;/span&gt;&lt;/strong&gt; MB/s&lt;/td&gt;
&lt;td&gt;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;395&lt;/strong&gt;&lt;/span&gt; MB/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;rd&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;span style="color:#008000;"&gt;85&lt;/span&gt;&lt;/strong&gt; MB/s&lt;/td&gt;
&lt;td&gt;23 MB/s - best &lt;span style="color:#800080;"&gt;35&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;7 MB/s - best &lt;span style="color:#008000;"&gt;40&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&lt;span style="color:#00ff00;"&gt;427&lt;/span&gt;&lt;/strong&gt; MB/s&lt;/td&gt;
&lt;td&gt;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;805&lt;/strong&gt;&lt;/span&gt; MB/s - best 883&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Ethernet speed:&lt;/p&gt;
&lt;table width="247" height="61"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;ETH to host (&lt;em&gt;iperf3&lt;/em&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tx&lt;/td&gt;
&lt;td&gt;&lt;span style="color:#008000;font-size:150%;"&gt;&lt;strong&gt;860 .. 910&lt;/strong&gt; &lt;/span&gt;MB/s&amp;nbsp; 3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;rx&lt;/td&gt;
&lt;td&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;&lt;span style="color:#008000;"&gt;860 .. 905&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; MB/s&amp;nbsp; 3)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;1) depends on USB stick type, USB 3.x etc.&lt;br /&gt;2) on &lt;em&gt;Petalinux image&lt;/em&gt; (not PYNQ), with 256GB SSD and AVNET SSD/M.2 module&lt;br /&gt;3) depends a bit where the rootfs is running on, e.g. a faster SD card vs. eMMC module&lt;br /&gt;4) ATT: even &lt;span style="color:#008000;"&gt;faster as SD card&lt;/span&gt; - it is &lt;span style="color:#ff0000;"&gt;not possible&lt;/span&gt; to boot from USB: boot still via SD card (&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/boot&lt;/span&gt;) and change to&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; /dev/sda&lt;/span&gt; as rootfs and main filesystem)? - possible?:&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Not possible to change during boot to USB (as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/dev/sda&lt;/span&gt;) for the rootfs, to continue there!&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style="color:#000000;"&gt;5) I had a lot of trouble to use an &lt;strong&gt;SSD inside an USB enclosure&lt;/strong&gt;:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp; &amp;nbsp; - most of the time the ZUBoard does not see &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/dev/sda&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; - if it sees it: often with size 0&lt;br /&gt;&amp;nbsp; &amp;nbsp; - if it sees it properly with a valid size - I can &amp;quot;&lt;em&gt;damage&lt;/em&gt;&amp;quot; quickly the SSD USB memory&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ATT: it looks also dead as USB SSD on&amp;nbsp; Windows PC! Hard to recover such a &amp;quot;&lt;em&gt;bricked&lt;/em&gt;&amp;quot; USB SDD! &lt;/span&gt;&lt;/strong&gt;&lt;span style="color:#0000ff;"&gt;(just via Windows host)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Conclusion:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="color:#000000;"&gt;the &lt;span style="color:#0000ff;"&gt;SD card is OK (&lt;strong&gt;20 MB/s&lt;/strong&gt;)&lt;/span&gt;, but an&amp;nbsp;&lt;span style="color:#008000;"&gt;USB memory can be faster&lt;/span&gt; (up to &lt;span style="color:#008000;"&gt;&lt;strong&gt;2x faster as SD card&lt;/strong&gt;&lt;/span&gt;):&lt;br /&gt;unfortunately, we cannot mount the rootfs to USB (/dev/sda) during boot:&lt;br /&gt;the USB (/dev/sda) seems to enabled later, boot will hang&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;the &lt;strong&gt;&lt;span style="color:#008000;"&gt;eMMC module is faster on READ (85 MB/s)&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;compared to SD card,&lt;br /&gt;but &lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:#ff0000;text-decoration:underline;"&gt;very&lt;/span&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style="text-decoration:underline;"&gt;bad on WRITE&lt;/span&gt; to eMMC (the worst: 4.5 MB/s)&lt;/span&gt;&lt;/strong&gt;:&lt;br /&gt;not an option when we need a lot of WRITE data on rootfs (yes, eMMC can host and run rootfs,&lt;br /&gt;possible to change from SD card boot to continue on eMMC)&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;USB memory sticks can be faster as SD card (2x faster as SD card):&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;but I have &lt;span style="color:#ff0000;"&gt;trouble&lt;/span&gt; to use &lt;span style="color:#ff0000;"&gt;SSD in USB enclosure&lt;/span&gt; as USB stick (often not seen or &amp;quot;&lt;em&gt;bricked&lt;/em&gt;&amp;quot; after use)&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#008000;font-size:150%;"&gt;&lt;strong&gt;SSD would be the best option&lt;/strong&gt;&lt;/span&gt;:&lt;br /&gt;BUT: SSD is &lt;span style="color:#ff0000;"&gt;not supported on PYNQ&lt;/span&gt; image (yet)!&lt;br /&gt;It can also host and run the rootfs: boot from SD card, change &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bootargs&lt;/span&gt; and change to &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;nvme0n1&lt;/span&gt; as rootfs device.&lt;br /&gt;Remark: it is not possible to image SSD and boot from SSD (directly, via BOOT.BIN, image.ub, still from SD card needed)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Fasted Speed to transfer data:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The &lt;span style="color:#008000;"&gt;&lt;strong&gt;best option&lt;/strong&gt;&lt;/span&gt; to bring data with &lt;strong&gt;&lt;span style="color:#008000;"&gt;fastest speed&lt;/span&gt;&lt;/strong&gt; is:&lt;br /&gt;use &lt;span style="color:#0000ff;"&gt;&lt;strong&gt;ETH&lt;/strong&gt;&lt;/span&gt; (1G PHY) and transfer the data &lt;span style="text-decoration:underline;"&gt;to a host PC&lt;/span&gt;: &lt;span style="color:#00ff00;font-size:150%;"&gt;&lt;strong&gt;900 MB/s&lt;/strong&gt;&lt;/span&gt; is possible (measured with iperf3).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard with AVNET SSD module and PYNQ</title><link>https://community.element14.com/thread/56184?ContentTypeID=0</link><pubDate>Sun, 21 Sep 2025 21:13:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:6b1c49e1-dda5-43f3-be5d-764e20bd5997</guid><dc:creator>tjaekel</dc:creator><slash:comments>2</slash:comments><comments>https://community.element14.com/thread/56184?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56184/zuboard-with-avnet-ssd-module-and-pynq/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;After getting&amp;nbsp;&lt;span style="color:#008000;"&gt;&lt;strong&gt;AVNET eMMC working&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;fine on &lt;strong&gt;ZUBoard PYNQ&lt;/strong&gt; image (with a modified BSP version, device tree with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;amp;sdhci0&lt;/span&gt; added),&lt;br /&gt;I try still to see also &lt;strong&gt;SSD/M.2 module&lt;/strong&gt; working on a ZUBoard PYNQ image...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What works:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;image the SD card with regular ZUBoard PYNQ image&lt;/li&gt;
&lt;li&gt;boot via SD card, running on SD Card&lt;/li&gt;
&lt;li&gt;take the files:&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;BOOT.BIN&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;image.ub&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;from a Petalinux test image, e.g from here:&lt;br /&gt;&lt;a id="" href="https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;you can flash another SD card with this test image,&lt;br /&gt;after it has booted,&lt;br /&gt;copy these Petalinux files to the USB (&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/dev/sda&lt;/span&gt;), so that you have it available for patching&lt;br /&gt;&lt;br /&gt;boot again the PYNQ SD card,&lt;br /&gt;copy the saved Petalinux files from USB to the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/boot&lt;/span&gt; folder on PYNQ SD card&lt;br /&gt;or: you extract the image file and copy these files from a host PC to ZUBoard&lt;/li&gt;
&lt;li&gt;After you have &amp;quot;patched&amp;quot; the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;BOOT.BIN&lt;/span&gt; and &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;image.ub&lt;/span&gt; - reboot your system with this modified PYNQ SD card:&lt;/li&gt;
&lt;li&gt;if the SSD/M.2 module is connected on J2:&lt;br /&gt;you should see now a device nvme0n1:&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#0000ff;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;lsblk&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Remarks:&lt;/p&gt;
&lt;p&gt;1. The AVNET SSD/M.2 works for me with just &lt;strong&gt;one SSD card type&lt;/strong&gt;: B + M connector, &lt;strong&gt;KingSpec, &lt;span style="color:#0000ff;"&gt;256GB&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color:#ff0000;"&gt;Not&lt;/span&gt; with a similar SSD card, even B + M, e.g. 512GB - I &lt;span style="color:#ff0000;"&gt;cannot&lt;/span&gt; see any other SSD module installed on the AVNET SSD/M.2&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;module.&lt;/p&gt;
&lt;p&gt;2. This Petalinux (test image) kernel does &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;NOT&lt;/span&gt;&lt;/strong&gt; have &lt;strong&gt;FPGA_Manager&lt;/strong&gt; enabled!&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Even I see the correct PYNQ Python boot log, I can open Jupyter Notebook in web browser, &lt;span style="color:#008000;"&gt;regular Python scripts are working&lt;/span&gt;...&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color:#ff0000;"&gt;NOT&lt;/span&gt; possible to load an &lt;strong&gt;overlay&lt;/strong&gt; (obvious, without &lt;strong&gt;FPGA_Manager&lt;/strong&gt;, &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt; enabled in kernel).&lt;/p&gt;
&lt;p&gt;So, at least with a &amp;#39;&lt;em&gt;correct&lt;/em&gt;&amp;#39; BSP (at least version 2022_2) it is possible to see and use the SSD &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;nvme&lt;/span&gt; device.&lt;br /&gt;It is also possible to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;boot from SD card (as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;mmc0&lt;/span&gt;, the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/boot&lt;/span&gt; files loaded from SD card)&lt;/li&gt;
&lt;li&gt;but to mount the rootfs via &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;bootargs&lt;/span&gt; to the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;nvme0n1: root=/dev/nvm0n1&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#800080;"&gt;required&lt;/span&gt;&lt;/strong&gt; to flash the SSD &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;nvme0n1&lt;/span&gt; with the entire rootfs system, e.g. by copying via &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dd&lt;/span&gt; the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;mmcblk0p2&lt;/span&gt; to the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;nvme0n1&lt;/span&gt;&lt;br /&gt;(just one partition, for rootfs, no partition for the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/boot&lt;/span&gt; on SSD: it is anyway not possible to boot from SSD)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, &lt;span style="color:#008000;"&gt;I can use the SSD&lt;/span&gt; as my main file system, running Linux from SSD (SD card just needed for boot).&lt;br /&gt;The &lt;strong&gt;&lt;span style="color:#008000;"&gt;SSD is way faster&lt;/span&gt;&lt;/strong&gt;:&lt;br /&gt;the &lt;strong&gt;write speed&lt;/strong&gt; on SSD: &lt;span style="color:#008000;font-size:150%;"&gt;&lt;strong&gt;&amp;gt;200 MB/s&lt;/strong&gt;&lt;/span&gt; - compared to &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;20 MB/s&lt;/span&gt;&lt;/strong&gt; on a regular SD card (26 MB/s with the best SD card)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Updated BSP needed:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So, we need just an &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;updated BSP&lt;/span&gt;&lt;/strong&gt; (2022_2, not the original &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;zuboard_1cg.bsp&lt;/span&gt;) with the &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;FPGA_Manager enabled&lt;/strong&gt;&lt;/span&gt; (assuming&lt;br /&gt;PCIe support and device tree already enabled in such a newer BSP).&lt;br /&gt;Then we could &amp;quot;patch&amp;quot; the ZUBoard PYNQ image with these two &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;/boot&lt;/span&gt; files and it should work (SSD plus FPGA_Manager for&lt;br /&gt;loading overlays in Python).&lt;br /&gt;Actually, the correct way would be to use a newer BSP during the PYNQ build (remark: the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;buildzu.sh&lt;/span&gt; script loads all the time&lt;br /&gt;the original, old BSP from server: we had to &lt;span style="color:#800080;"&gt;modify the build script&lt;/span&gt;...).&lt;/p&gt;
&lt;p&gt;Just: I am struggling to build such a BSP: even I can build it - it crashes on boot:&lt;br /&gt;I seems to configure the UART (for bootlog) with a wrong baudrate and it hangs afterwards.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/pastedimage1758487183121v1.png"  /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color:#008000;"&gt;Please,&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;who could help&lt;/strong&gt; to generate a newer BSP for ZUBoard, with FPGA Manager enabled?&lt;br /&gt;(e.g. the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;zub1cg_base_base_2022_2&lt;/span&gt; or this &lt;strong&gt;&lt;span style="color:#800080;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;zub1cg_sbc_m2_test_2022_2&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&amp;quot;just&amp;quot; plus&amp;nbsp;&lt;span style="color:#008000;"&gt;FPGA_Manager enabled&lt;/span&gt;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>AVNET ZUBoard eMMC so slow on write...</title><link>https://community.element14.com/thread/56173?ContentTypeID=0</link><pubDate>Fri, 19 Sep 2025 03:45:01 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:60512cd5-f2b0-4d65-8aa6-2703db713038</guid><dc:creator>tjaekel</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/56173?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56173/avnet-zuboard-emmc-so-slow-on-write/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I tried all my best to get a better performance out from the (optional) &lt;strong&gt;AVNET eMMC module&lt;/strong&gt;,&lt;br /&gt;compared to using an SD card...&lt;/p&gt;
&lt;p&gt;The &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;AVNET eMMC module is so SLOW on write!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I get (on command line test and even measuring with Python code):&lt;br /&gt;&lt;strong&gt;WR speed&lt;/strong&gt;: &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;4.2 MB/s&lt;/span&gt;&lt;/strong&gt; (best as &lt;span style="color:#0000ff;"&gt;5.7 MB/s&lt;/span&gt;) - &lt;em&gt;REDICOLOUS SLOW!&lt;/em&gt;&lt;br /&gt;RD speed: 18.75 MB/s&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;eMMC is way SLOWER as any SD card&lt;/strong&gt;&lt;/span&gt; used!&lt;br /&gt;&lt;strong&gt;WR speed&lt;/strong&gt;: &lt;strong&gt;&lt;span style="color:#008000;"&gt;20..26 MB/s&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;RD speed&lt;/strong&gt;:&amp;nbsp; &lt;span style="color:#008000;"&gt;50 MB/s&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;font-size:150%;"&gt;Why is &lt;strong&gt;AVNET eMMC&lt;/strong&gt; with an 8bit interface (compared to 4bit on SD card) so slow??&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard with SSD/M.2 - is so fast...</title><link>https://community.element14.com/thread/56172?ContentTypeID=0</link><pubDate>Fri, 19 Sep 2025 02:32:39 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:dd228479-04fc-47d7-b584-2998cb64315d</guid><dc:creator>tjaekel</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/56172?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56172/zuboard-with-ssd-m-2---is-so-fast/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;Please, support the AVNET&lt;span style="font-size:150%;"&gt; SSD/M.2&lt;/span&gt; module in the latest ZUBoard PYNQ image!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The SSD/M.2 module is so &lt;span style="color:#339966;"&gt;impressive fast&lt;/span&gt; - it would be nice if I can use it as the main storage in my system&lt;br /&gt;(instead of a &lt;em&gt;slow SD card&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Details:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I did a speed measurement via the Petalinux image (supporting SSD/M.2).&lt;br /&gt;ATT: the ZUBoard PYNQ does not support eMMC, neither SSD/M.2.&lt;/p&gt;
&lt;p&gt;I get these &lt;span style="color:#339966;"&gt;IMPRESSIVE results&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;SSD/M.2 (256GB module):&lt;br /&gt;&lt;strong&gt;WRITE speed&lt;/strong&gt;:&amp;nbsp; &amp;nbsp; 207, 206, 205 MB/s - avg: &lt;span style="color:#339966;font-size:150%;"&gt;&lt;strong&gt;206 MB/s&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;READ speed&lt;/strong&gt;:&amp;nbsp; &amp;nbsp; &amp;nbsp; 425, 405 MB/s&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- avg: &lt;span style="color:#339966;font-size:150%;"&gt;&lt;strong&gt;410 MB/s&lt;/strong&gt;&lt;/span&gt; (twice the write speed)&lt;/p&gt;
&lt;p&gt;compare it with the results using a &amp;quot;&lt;em&gt;typical&lt;/em&gt;&amp;quot; SD card (e.g. Sandisk, 32GB):&lt;br /&gt;WRITE speed:&amp;nbsp; &amp;nbsp; &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;22 MB/s&lt;/span&gt;&lt;/strong&gt; - &lt;span style="color:#0000ff;"&gt;better as 26 MB/s I have never seen &lt;span style="color:#000000;"&gt;(&lt;em&gt;Lexar Gold&lt;/em&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;READ speed:&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;24 MB/s&lt;/span&gt;&lt;/strong&gt; - maybe up to 75 MB/s possible&lt;/p&gt;
&lt;p&gt;So, the &lt;span style="color:#008000;"&gt;&lt;strong&gt;SSD/M.2 is so fast&lt;/strong&gt;&lt;/span&gt; that I wish to have these options in ZUBoard PYNQ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;support in AVNET &lt;strong&gt;ZUBoard PYNQ&lt;/strong&gt; image also the (optional) use of the &lt;strong&gt;SSD/M.2 module&lt;/strong&gt;!&lt;/li&gt;
&lt;li&gt;flash the SSD with the &lt;em&gt;rootfs&lt;/em&gt; (the main Linux file system, with working directories, swap device, user space...)&lt;/li&gt;
&lt;li&gt;boot from (slow) SD card: &lt;span style="color:#800080;"&gt;&lt;em&gt;mmcblk0p1&lt;/em&gt;&lt;/span&gt; as boot but changing over to SSD/M.2 (via &lt;em&gt;bootargs&lt;/em&gt;, to &lt;em&gt;&lt;span style="color:#800080;"&gt;nvme0n1&lt;/span&gt;&lt;/em&gt; with &lt;em&gt;rootfs&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;run entire system on SSD/M.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It would be a &lt;span style="color:#008000;text-decoration:underline;"&gt;dramatic speed improvement&lt;/span&gt;. &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;Make the SSD/M.2 available in PYNQ image for ZUBoard!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to measure?&lt;/strong&gt;&lt;br /&gt;If you flash the Petalinux test image (without Python and PYNQ support), you get a command line.&lt;br /&gt;You will see that SSD/M.2 or even if eMMC module is connected.&lt;/p&gt;
&lt;p&gt;No Python, so, you have to test on Linux (UART) command line.&lt;br /&gt;Use these commands:&lt;/p&gt;
&lt;p&gt;WRITE speed test:&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dd if=/dev/zero of=/run/media/nvme0n1/tmpfile bs=1M count=1024&lt;/span&gt;&lt;br /&gt;It will write a 1GB tmpfile to SSD/M.2.&lt;br /&gt;Check the results.&lt;/p&gt;
&lt;p&gt;READ speed test:&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;dd if=/run/media/nvme0n1/tmpfile of=/dev/null bs=1M count=1024&lt;/span&gt;&lt;br /&gt;read back the SSD/M.2 file without to write to another media (SD card as &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;of=...&lt;/span&gt; would limit the speed by its write speed!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br /&gt;The AVNET SSD/M.2 module is so fast, way faster as SD card (or even optional AVNET eMMC module, which is even slower as SD card!),&lt;br /&gt;it would be &amp;quot;&lt;em&gt;cool&lt;/em&gt;&amp;quot; if we could use it for our system memory.&lt;br /&gt;&lt;span style="color:#339966;font-size:150%;"&gt;&lt;strong&gt;Please,&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;font-size:150%;"&gt;&lt;strong&gt;make the SSD/M.2 module available in ZUBoard PYNQ image.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Thank you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Remark:&lt;/strong&gt;&lt;br /&gt;Unfortunately, the AVNET SSD/M.2 modules supports only one type of SSD: I found &lt;strong&gt;only one 256GB&lt;/strong&gt; module&lt;br /&gt;with a B+M key which works. A larger module (e.g. 512GB) and also fitting - does not work.&lt;/p&gt;
&lt;p&gt;Anyway: to have &lt;strong&gt;256GB SSD&lt;/strong&gt; of such a fast system memory in &lt;strong&gt;ZUBoard PYNQ&lt;/strong&gt; would be &lt;span style="color:#008000;"&gt;&lt;strong&gt;great&lt;/strong&gt;&lt;/span&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard PYNQ eMMC vs. SD card speed - eMMC is slower!</title><link>https://community.element14.com/thread/56164?ContentTypeID=0</link><pubDate>Wed, 17 Sep 2025 23:17:49 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:cefa4dbf-0163-493c-8533-e499e295a221</guid><dc:creator>tjaekel</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/56164?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56164/zuboard-pynq-emmc-vs-sd-card-speed---emmc-is-slower/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;em&gt;I am &lt;span style="color:#0000ff;"&gt;surprised&lt;/span&gt; (shocked)&lt;/em&gt;:&lt;br /&gt;The &lt;strong&gt;AVNET eMMC module&lt;/strong&gt; on ZUBoard is way &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;slower as any SD card&lt;/span&gt;&lt;/strong&gt;! Why?&lt;/p&gt;
&lt;p&gt;The eMMC uses an 8bit interface - SD card just a 4bit interface. I have configured eMMC to use &lt;strong&gt;200MHz&lt;/strong&gt; clock.&lt;br /&gt;But the &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;eMMC module is way &lt;span style="text-decoration:underline;"&gt;slower as any&lt;/span&gt; SD card!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Speed Measurement Results:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;eMMC write&lt;/strong&gt;: &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;4..5 MB/s&lt;/strong&gt;&lt;/span&gt; (max., seldom at 5 MB/s) - &lt;span style="color:#ff0000;"&gt;very slow compared to SD cards&lt;/span&gt;&lt;br /&gt;eMMC read: varies a lot, typical 20..58 MB/s&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SD Cards:&lt;/strong&gt;&lt;br /&gt;it depends heavily which SD card manufacturer (and SD card type) you use.&lt;br /&gt;ATT: some SD cards can even fail immediately when using, with an I/O Error, bad blocks... Use a fast and&lt;br /&gt;well known brand.&lt;/p&gt;
&lt;p&gt;Tested:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SanDisk, 32GB&lt;/strong&gt;:&lt;br /&gt;&lt;strong&gt;write:&lt;/strong&gt; &lt;span style="color:#0000ff;"&gt;&lt;strong&gt;10..11&lt;/strong&gt;&lt;/span&gt; MB/s - &lt;em&gt;OK, but &lt;span style="color:#008000;"&gt;Samsung is 2x faster&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;read: 34..80 MB/s&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Samsung EVO, 512GB&lt;/strong&gt;:&lt;br /&gt;&lt;strong&gt;write:&lt;/strong&gt; &lt;span style="color:#008000;"&gt;&lt;strong&gt;19..23&lt;/strong&gt;&lt;/span&gt; MB/s&lt;br /&gt;read: 36..49 (sometimes 121) MB/s&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Samsung Pro Plus, 1TB:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;write:&lt;/strong&gt; &lt;span style="color:#008000;"&gt;&lt;strong&gt;20..24&lt;/strong&gt;&lt;/span&gt; MB/s - a little bit faster, &lt;em&gt;even 180 MB/s read, 130 MB/s write announced&lt;/em&gt;&lt;br /&gt;read: 20..55 (55, 99) MBs&lt;br /&gt;--&amp;gt; a little bit faster&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lexar, 64GB&lt;/strong&gt;:&lt;br /&gt;&lt;strong&gt;write:&lt;/strong&gt; &lt;span style="color:#008000;"&gt;&lt;strong&gt;26&lt;/strong&gt; &lt;/span&gt;MB/s - &lt;span style="color:#008000;"&gt;&lt;strong&gt;the fastest on write&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;read: 49..79 MB/s&lt;br /&gt;&lt;span style="color:#008000;"&gt;&lt;strong&gt;--&amp;gt; this seems to be the fastest&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Anyway, the &lt;span style="color:#ff0000;"&gt;eMMC module is way slower on WRITE&lt;/span&gt;, &lt;span style="color:#ff00ff;"&gt;&lt;strong&gt;just 4 MB/s&lt;/strong&gt;&lt;/span&gt;, compared to achieve &lt;span style="color:#008000;"&gt;&lt;strong&gt;at least 10 MB/s with an SD Card&lt;/strong&gt;&lt;/span&gt;!&lt;br /&gt;So, AVNET &lt;strong&gt;eMMC&lt;/strong&gt; module with Petalinux settings provided is &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;2.5..5 times&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;SLOWER&lt;/span&gt; as SD Card&lt;/strong&gt;! (on write)&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;I assume, some settings for the delay values on SD0/mmc0 are too &amp;quot;strong&amp;quot;, or: the mmc0 driver is not optimized, takes&lt;br /&gt;a lot of time to erase and write sectors on eMMC, or not using INT or DMA...?&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;How to speed up eMMC, so that it is &lt;span style="text-decoration:underline;"&gt;&lt;em&gt;for sure faster&lt;/em&gt;&lt;/span&gt; as any SD card&lt;/strong&gt;&lt;/span&gt; (esp. due to an 8bit interface)?&lt;/p&gt;
&lt;p&gt;I was expecting that eMMC module is at least 2x faster as SD card. But it is not!:&lt;br /&gt;- a write to eMMC module is way slower as to SD card&lt;br /&gt;- maybe, running from eMMC module (reading) is similar to SD card, a bit faster&lt;/p&gt;
&lt;p&gt;Maybe, the eMMC module uses a chip with a large page/sector erase delay or the driver is polling for erase done.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;CONCLUSION&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;if you need fast &lt;span style="color:#0000ff;"&gt;&lt;strong&gt;write performance&lt;/strong&gt;&lt;/span&gt; on the system - use a &lt;strong&gt;good SD Card&lt;/strong&gt; and expect as &lt;strong&gt;max. write speed&lt;/strong&gt; (e.g. to record measurement data) as:&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;font-size:150%;"&gt;&lt;strong&gt;10..20 MB/s&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard PYNQ - patch for eMMC support</title><link>https://community.element14.com/thread/56156?ContentTypeID=0</link><pubDate>Tue, 16 Sep 2025 02:17:09 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:e5530165-47c6-4cc3-bc78-db4db1e3feb0</guid><dc:creator>tjaekel</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/56156?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56156/zuboard-pynq---patch-for-emmc-support/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;So, I do not have yet a general solution to substitute the &lt;span style="color:#800080;"&gt;&lt;em&gt;image.ub&lt;/em&gt;&lt;/span&gt; on a ZUBoard PYNQ image,&lt;br /&gt;&lt;span style="color:#008000;"&gt;&lt;strong&gt;supporting eMMC &lt;span style="text-decoration:underline;"&gt;as well as&lt;/span&gt; SSD/M.2 &lt;/strong&gt;&lt;span style="color:#000000;"&gt;(for now &lt;strong&gt;&lt;span style="color:#008000;"&gt;just eMMC&lt;/span&gt;&lt;/strong&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;But:&lt;/span&gt;&lt;br /&gt;you can &amp;quot;&lt;em&gt;patch&lt;/em&gt;&amp;quot; a &lt;strong&gt;regular ZUBoard PYNQ image&lt;/strong&gt; with my boot files so that - at least - the &lt;span style="color:#339966;font-size:150%;"&gt;&lt;strong&gt;eMMC works&lt;/strong&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;How to enable ZUBoard PYNQ for eMMC?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;(&lt;em&gt;seeing it as device or even booting from it&lt;/em&gt;)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download and flash the &lt;strong&gt;regular ZUBoard PYNQ image&lt;/strong&gt;:&lt;br /&gt;&lt;a id="" href="https://www.pynq.io/boards.html" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.pynq.io/boards.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Boot with this SD card image:&lt;br /&gt;&lt;em&gt;you do not see yet eMMC...&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Download the ZIP with the modified &lt;span style="color:#800080;"&gt;BOOT.BIN&lt;/span&gt; and &lt;span style="color:#800080;"&gt;image.ub&lt;/span&gt;:&lt;br /&gt;&lt;a id="" href="http://www.tjaekel.com/emmc_boot.zip" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;http://www.tjaekel.com/emmc_boot.zip&lt;br /&gt;&lt;/a&gt;(there is a virus warning - no idea why) or see below attached here&lt;/li&gt;
&lt;li&gt;Extract this ZIP so that you have:&lt;br /&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;&lt;span style="color:#800080;"&gt;BOOT.BIN&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;&lt;span style="color:#800080;"&gt;image.ub&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;when booted via original SD card with ZUBoard PYNQ image:&lt;br /&gt;copy the two files to SD card on the ZUBoard (regular, via SAMBA and file manager)&lt;/li&gt;
&lt;li&gt;now you can copy / overwrite the original files on SD card:&lt;br /&gt;copy &lt;span style="color:#800080;"&gt;BOOT.BIN&lt;/span&gt; and &lt;span style="color:#800080;"&gt;image.ub&lt;/span&gt; into:&lt;br /&gt;&lt;strong&gt;mmcblk0p1&lt;/strong&gt; - potentially mounted as &lt;strong&gt;/boot&lt;br /&gt;&lt;/strong&gt;in the UART terminal session&lt;/li&gt;
&lt;li&gt;Do a:&lt;br /&gt;&lt;span style="color:#800080;"&gt;sync &amp;amp;&amp;amp; sync&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;and reboot the system (still with SD card boot):&lt;br /&gt;you should see now also &lt;strong&gt;mmcblk1&lt;/strong&gt;:&lt;br /&gt;use command:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;em&gt;lsblk&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/pastedimage1757986390683v1.png"  /&gt;&lt;/p&gt;
&lt;p&gt;The two boot files needed...:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-discussions-components-files/366/emmc_5F00_boot.zip"&gt;community.element14.com/.../emmc_5F00_boot.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unzip and copy the two files into the &lt;strong&gt;SD card &lt;span style="color:#0000ff;"&gt;/boot&lt;/span&gt; &lt;/strong&gt;directory, reboot the system, ... see if you have the emmc as &lt;strong&gt;mmcblk1&lt;/strong&gt;,&lt;br /&gt;via&amp;nbsp;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;&lt;em&gt;lsblk&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;Afterwards, you should be able to configure (&lt;em&gt;fdisk&lt;/em&gt;, &lt;em&gt;fsck&lt;/em&gt;) the eMMC module, flash it with &amp;quot;same&amp;quot; files (flash the boot and rootfs partition),&lt;br /&gt;just set the bootargs for &lt;strong&gt;mmcblk1&lt;/strong&gt; boot properly (see other threads in this forum).&lt;br /&gt;It should also &lt;span style="color:#339966;"&gt;&lt;strong&gt;boot and run from eMMC&lt;/strong&gt;&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Booting from eMMC:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;In general, you do the same:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="color:#000000;"&gt;you image the original PYNQ image to the eMMC (&lt;span style="color:#0000ff;"&gt;mmcblk1&lt;/span&gt;, both partitions)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#000000;"&gt;you boot from SD card and you see the &lt;span style="color:#0000ff;"&gt;mmcblk1&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#000000;"&gt;you mount &lt;span style="color:#0000ff;"&gt;mmcblk1p1&lt;/span&gt; and overwrite the (&lt;span style="color:#800080;"&gt;BOOT.BIN&lt;/span&gt; and) &lt;strong&gt;&lt;span style="color:#800080;"&gt;image.ub&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#000000;"&gt;You change boot switches (now eMMC mode)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#000000;"&gt;you interrupt the boot process (u-boot command line)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#000000;"&gt;and set the &lt;span style="color:#0000ff;"&gt;bootargs &lt;em&gt;&lt;span style="color:#000000;"&gt;(see in forum how)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;em&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#ff00ff;font-size:150%;"&gt;It would be cool, if anybody could generate a (BOOT.BIN and) &lt;strong&gt;image.ub&lt;/strong&gt; which would support&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff00ff;font-size:150%;"&gt;eMMC &lt;span style="text-decoration:underline;"&gt;as well as&lt;/span&gt; SSD/M.2, with &lt;strong&gt;FPGA manager&lt;/strong&gt; (from a PetaLinux project with a newer BSP),&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff00ff;"&gt;&lt;span style="font-size:150%;"&gt;so that we can patch original/official ZUBoard PYNQ image with it&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;(and have the options to use eMMC or SSD/M.2 AVNET modules working with PYNQ on ZUBoard).&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;em&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;Thank you.&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard PYNQ with eMMC and SSD - an easier way?</title><link>https://community.element14.com/thread/56154?ContentTypeID=0</link><pubDate>Mon, 15 Sep 2025 00:17:30 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:369bc234-f577-4eac-9d8d-02b2b0de4ddc</guid><dc:creator>tjaekel</dc:creator><slash:comments>3</slash:comments><comments>https://community.element14.com/thread/56154?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56154/zuboard-pynq-with-emmc-and-ssd---an-easier-way/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I was thinking...:&lt;br /&gt;is there an &lt;span style="color:#008000;"&gt;&lt;strong&gt;easier way&lt;/strong&gt; &lt;/span&gt;to &lt;strong&gt;add and enable eMMC&lt;/strong&gt; (and even &lt;span style="color:#008000;"&gt;&lt;strong&gt;SSD/M.2 module&lt;/strong&gt;&lt;/span&gt;) for &lt;strong&gt;ZUBoard running PYNQ&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;Potentially, there is!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tests done:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If I image SD card with PYNQ image, boot it, afterwards I copy/overwrite the &lt;span style="color:#800080;"&gt;&lt;em&gt;BOOT.bin&lt;/em&gt;&lt;/span&gt; and &lt;span style="color:#800080;"&gt;&lt;em&gt;image.ub&lt;/em&gt;&lt;/span&gt; with the one from a PetaLinux image&lt;br /&gt;(used to demonstrate that eMMC and SSD/M.2 works):&lt;br /&gt;- &lt;span style="color:#008000;"&gt;oh, yes&lt;/span&gt;, I see eMMC and even nvme device&lt;br /&gt;- I can mount and use: all looks fine&lt;/p&gt;
&lt;p&gt;BUT:&lt;br /&gt;the &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;FPGA Manager is not enabled!&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;So, even PYNQ seems to boot fine - just: it cannot load any &lt;em&gt;overlay.bit&lt;/em&gt; file!&lt;br /&gt;&lt;em&gt;Obvious&lt;/em&gt;: the &lt;span style="color:#ff0000;"&gt;FPGA Manager is not enabled&lt;/span&gt;, not added in the (BSP and) PetaLinux kernel.&lt;/p&gt;
&lt;p&gt;So, what about to build a &lt;strong&gt;new PetaLinux kernel for the ZUBoard&lt;/strong&gt; (only the kernel, not all, not the entire PYNQ image)?&lt;/p&gt;
&lt;p&gt;I assume,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;if you use a newer BSP, e.g. &amp;quot;&lt;em&gt;&lt;span style="color:#800080;"&gt;zub1cg_sbc_base_2022_2.bsp&lt;/span&gt;&lt;/em&gt;&amp;quot;, &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;not&lt;/span&gt;&lt;/strong&gt; the original one used in ZUBoard PYNQ build as &amp;quot;&lt;em&gt;&lt;span style="color:#800080;"&gt;zuboard_1cg.bsp&lt;/span&gt;&lt;/em&gt;&amp;quot;&lt;/li&gt;
&lt;li&gt;you build just the PetaLinux kernel and u-boot&lt;/li&gt;
&lt;li&gt;but before the build: you configure the PetaLinux project to &lt;span style="color:#008000;"&gt;enable/add the FPGA Manager&lt;/span&gt; (&lt;em&gt;petalinux-config&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;maybe, it is enough to exchange the kernel (&lt;em&gt;&lt;span style="color:#800080;"&gt;image.ub&lt;/span&gt;&lt;/em&gt;, and &lt;em&gt;&lt;span style="color:#800080;"&gt;UBOOT.BIN&lt;/span&gt;&lt;/em&gt;) so that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a PYNQ SD Card (with &lt;em&gt;&lt;strong&gt;patched&lt;/strong&gt;&lt;/em&gt; &lt;em&gt;BOOT.BIN&lt;/em&gt; and &lt;em&gt;&lt;span style="color:#800080;"&gt;image.ub&lt;/span&gt;&lt;/em&gt;) boots fine&lt;/li&gt;
&lt;li&gt;sees also if eMMC module is connected&lt;/li&gt;
&lt;li&gt;sees also if SSD/M.2 module is connected instead (and you can mount SSD/M.2 as a drive in system)&lt;/li&gt;
&lt;li&gt;and you can also load dynamically custom &lt;em&gt;overlay.bit&lt;/em&gt; files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, I think:&lt;/p&gt;
&lt;p&gt;supporting eMMC or SSD/M.2 is &lt;strong&gt;&lt;span style="color:#800080;"&gt;just an issue with the PetaLinux kernel&lt;/span&gt;&lt;/strong&gt; (&lt;em&gt;image.ub&lt;/em&gt;) itself:&lt;br /&gt;changing the kernel with one supporting both (optional) devices, but having also &lt;span style="color:#008000;"&gt;&lt;strong&gt;FPGA Manager enabled&lt;/strong&gt;&lt;/span&gt; in it...&lt;br /&gt;should do the job.&lt;/p&gt;
&lt;p&gt;Just: build a PetaLinux image based on a &lt;span style="color:#008000;"&gt;&lt;strong&gt;newer BSP&lt;/strong&gt;&lt;/span&gt; repository, change the files on the PYNQ image (e.g. after system has booted,&lt;br /&gt;to overwrite the &lt;em&gt;BOOT.BIN&lt;/em&gt; and esp. &lt;em&gt;image.ub&lt;/em&gt;)... and it should be done.&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;I am testing this approach right...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Please:&lt;br /&gt;can anybody &lt;strong&gt;generate a PetaLinux kernel&lt;/strong&gt; (&lt;em&gt;&lt;span style="color:#800080;"&gt;image.ub&lt;/span&gt;&lt;/em&gt;) which would support eMMC and SSD/M.2?&lt;br /&gt;It should be OK to image SD card with original PYNQ image but after it has booted - to overwrite (patch) these files,&lt;br /&gt;so that is sees both devices and still works to load custom &lt;em&gt;overlay.bit&lt;/em&gt; files in Python.&lt;br /&gt;It should not be big deal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>AVNET ZUBoard PYNQ with eMMC - WORKS!</title><link>https://community.element14.com/thread/56152?ContentTypeID=0</link><pubDate>Fri, 12 Sep 2025 22:36:53 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:94862497-70ee-41f7-af20-65d3f810b62d</guid><dc:creator>tjaekel</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/56152?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56152/avnet-zuboard-pynq-with-emmc---works/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have the &lt;strong&gt;AVNET ZUBoard&lt;/strong&gt; working with &lt;strong&gt;PYNQ&lt;/strong&gt; and &lt;span style="color:#008000;"&gt;&lt;strong&gt;eMMC&lt;/strong&gt;&lt;/span&gt;:&lt;br /&gt;- to boot from and run on &lt;span style="color:#008000;"&gt;&lt;strong&gt;AVNET eMMC module&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;- also using the &lt;em&gt;axi_intc&lt;/em&gt; component and an INT signal in FPGA a overlay - works now&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Enable eMMC in ZUBoard PYNQ image&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The official ZUBoard PYNQ image, download via:&lt;br /&gt;&lt;a id="" href="https://www.pynq.io/boards.html" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.pynq.io/boards.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;does &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;NOT&lt;/strong&gt;&lt;/span&gt; support &lt;strong&gt;SD0&lt;/strong&gt; (as mmc1, mmcblk1), needed for &lt;strong&gt;eMMC&lt;/strong&gt;!&lt;br /&gt;You have to checkout the ZUBoard PYNQ GitHub project and build a &lt;span style="color:#ff0000;"&gt;MODIFIED&lt;/span&gt; version (on Linux):&lt;br /&gt;&lt;a id="" href="https://github.com/Avnet/ZUBoard_1CG-PYNQ" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://github.com/Avnet/ZUBoard_1CG-PYNQ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Remark: do not forget to install the BDF files for the ZUBoard after installing Vivado (not mentioned there as a mandatory step to do)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Steps to do&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;setup a Linux system (or Ubuntu VM on Windows) as required:&lt;br /&gt;go really with the right/mentioned Vivado, Petalinux tool and Linux versions (otherwise the build process is broken or must be modified)&lt;br /&gt;Remark:&lt;br /&gt;it can take up to &lt;span style="color:#0000ff;"&gt;TWO DAYS&lt;/span&gt; just to setup a VM, the tools, the Git repositories and to build the original PYNQ image!&lt;br /&gt;BTW:&lt;br /&gt;I could &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt; generate the custom overlay: it results in errors to generate the &amp;quot;&lt;em&gt;ZUBoard_1CGOverlay&lt;/em&gt;&amp;quot;:&lt;br /&gt;- I assume, the BDF files are not matching, they do not find some user I/O pins:&lt;br /&gt;- you can comment this step in the &amp;quot;&lt;em&gt;&lt;span style="color:#800080;"&gt;buildzu.sh&lt;/span&gt;&lt;/em&gt;&amp;quot; script (the overlay is not really needed for booting)&lt;br /&gt;- forget the generated image: it will &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt; work for eMMC, anyway&lt;/li&gt;
&lt;li&gt;check if all is correct by building the &amp;quot;original&amp;quot; ZUBoard PYNQ image (and test it) - before we modify the build source&lt;/li&gt;
&lt;li&gt;Download the &lt;strong&gt;latest ZUBoard BSP&lt;/strong&gt;, a link can be found here:&lt;br /&gt;&lt;a id="" href="https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Now: add a device tree node in file:&lt;br /&gt;&lt;em&gt;&lt;span style="color:#800080;"&gt;~/ZUBoard_1CG-PYNQ/ZUBoard_1CG/petalinux_bsp/meta-user/recipes-bsp/device-tree/files/system-user.dtsi&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;Add the node and aliases for mmc0, mmc1 and node sdhci0.&lt;br /&gt;Remark: SD0 is for eMMC (8bit interface, it appears as mmcblk1), SD1 is SD Card (default, as mmcblk0)&lt;/li&gt;
&lt;li&gt;If you would compile now - and it goes well:&lt;br /&gt;it is not yet enough!&lt;br /&gt;During boot it will complain with something about:&lt;br /&gt;&lt;em&gt;mmc1 cannot be connected to PM manager domain, domain9, error -13&lt;/em&gt;&lt;br /&gt;Reason:&lt;br /&gt;The BSP file used during build as &amp;quot;&lt;em&gt;&lt;span style="color:#800080;"&gt;zuboard_1cg.bsp&lt;/span&gt;&lt;/em&gt;&amp;quot; is &lt;span style="color:#ff0000;"&gt;too old&lt;/span&gt; and does not have anything for SD0:&lt;br /&gt;check the file &lt;em&gt;&lt;span style="color:#800080;"&gt;psu_init.c&lt;/span&gt;&lt;/em&gt;&amp;nbsp;as different versions of the BSP files and you will see:&lt;br /&gt;- original BSP does &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt; enable anything for SD0 (needed for eMMC, sdhci0)&lt;br /&gt;- &lt;span style="color:#339966;"&gt;&lt;strong&gt;newer BSP&lt;/strong&gt;&lt;/span&gt; (e.g. used for the Petalinux projects to demo eMMC) has much more &lt;strong&gt;config for SD0&lt;/strong&gt; (power, SD0 itself, MDIO_PINs...)&lt;/li&gt;
&lt;li&gt;Change to the newer BSP:&lt;br /&gt;modify script &lt;em&gt;&lt;span style="color:#800080;"&gt;buildzu.sh&lt;/span&gt;&lt;/em&gt; (and &lt;em&gt;&lt;span style="color:#800080;"&gt;ZUBoard_1CG.spec&lt;/span&gt;&lt;/em&gt;) to use the newer BSP&lt;/li&gt;
&lt;li&gt;Potentially, you have to patch also some other directories to use the newer &lt;em&gt;&lt;span style="color:#800080;"&gt;psu_init.c&lt;/span&gt;&lt;/em&gt; - and other files! - in other&lt;br /&gt;directories where these files are used (e.g. &lt;em&gt;&lt;span style="color:#800080;"&gt;.../petalinux_project/project-spec/hw-description/&lt;/span&gt;&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;build the PYNQ again with &lt;span style="color:#800080;"&gt;&lt;em&gt;buildzu.sh&lt;/em&gt;&lt;/span&gt;:&lt;br /&gt;hope it will go through and generate a new &lt;em&gt;&lt;span style="color:#800080;"&gt;ZUBoard_1CG-3.0.1.img&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;flash this image to a SD card (16GB or larger!), e.g. via &lt;em&gt;Etcher&lt;/em&gt; (on Windows, &lt;em&gt;dd&lt;/em&gt; on Linux)&lt;/li&gt;
&lt;li&gt;Boot it, test it...:&lt;br /&gt;it should now see the eMMC (when it is connected), as &lt;em&gt;&lt;span style="color:#339966;"&gt;mmcblk1&lt;/span&gt;&lt;/em&gt; (SD card is mmcblk0)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;OK, almost done...&lt;/span&gt; Now you have a ZUBoard PYNQ image which runs on/from SD card but sees also the (optional) eMMC module (if connected).&lt;/p&gt;
&lt;p&gt;You might think: &amp;quot;&lt;em&gt;OK, let me image eMMC with the same one&lt;/em&gt;&amp;quot;.&lt;br /&gt;Technically yes, but:&lt;br /&gt;- you have to modify the &lt;strong&gt;bootargs&lt;/strong&gt; when booting such an (identical) image from eMMC (otherwise it does not work).&lt;br /&gt;- see at the end how to set the &lt;strong&gt;bootargs&lt;/strong&gt; for booting and running from eMMC.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Flash my image for ZUBoard PYNQ with eMMC&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If you want to save time (instead to setup, build, modify, rebuild... the ZUBoard PYNQ image - it is &amp;quot;painful&amp;quot;, very time consuming...,&lt;br /&gt;a new build after all installed properly takes still 2..3 hours!),&lt;br /&gt;you can try to download and flash &lt;strong&gt;my&lt;/strong&gt; generated, modified &lt;strong&gt;ZUBoard PYNQ image with eMMC&lt;/strong&gt; support:&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="http://www.tjaekel.com/ZUBoard_1CG_emmc.zip" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;http://www.tjaekel.com/ZUBoard_1CG_emmc.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ATT: there is a virus warning! (no idea why)&lt;/p&gt;
&lt;p&gt;Now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;unzip the file so that you get the &amp;quot;&lt;em&gt;&lt;span style="color:#800080;"&gt;ZUBoard_1CG_emmc.img&lt;/span&gt;&lt;/em&gt;&amp;quot;&lt;/li&gt;
&lt;li&gt;flash this to a SD card (16GB)&lt;/li&gt;
&lt;li&gt;boot this image, and check if you see also mmcblk1&lt;/li&gt;
&lt;li&gt;if so, now you can image the eMMC module:&lt;/li&gt;
&lt;li&gt;copy the file &amp;quot;ZUBoard_1CG_emmc.img&amp;quot; to your SD card (so that you have it as a separate file)&lt;/li&gt;
&lt;li&gt;if mmcblk1 partitions are there and mounted: unmount (they are potentially not mounted on an unformatted eMMC module)&lt;/li&gt;
&lt;li&gt;flash this copied file &amp;quot;&lt;em&gt;&lt;span style="color:#800080;"&gt;ZUBoard_1CG_emmc.img&lt;/span&gt;&lt;/em&gt;&amp;quot; to the eMMC module (which is &lt;strong&gt;mmcblk1&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;afterwards, you might want to resize/enlarge the file system (it will flash eMMC so that it has just 9GB of user space, instead of approx. 29GB usable)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Change the &lt;strong&gt;BOOT switches&lt;/strong&gt; (to eMMC: &lt;strong&gt;ON - OFF - OFF - ON&lt;/strong&gt;), boot from eMMC now, but hit immediately any key on UART to interrupt to boot process!&lt;br /&gt;You have to &lt;span style="color:#800080;"&gt;&lt;strong&gt;modify&lt;/strong&gt;&lt;/span&gt; the &lt;strong&gt;bootargs&lt;/strong&gt;!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;we have to tell the bootloader that it also should mount and use the rootfs from eMMC (mmcblk1p2)&lt;/li&gt;
&lt;li&gt;So, we have to set the u-boot &lt;strong&gt;bootarg&lt;/strong&gt;s.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If u-boot has paused, change the bootargs:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;setenv bootargs &amp;quot;console=ttyPS0,115200 earlycon clk_ignore_unused &lt;span style="color:#ff0000;"&gt;uio_pdrv_generic.of_id=generic-uio&lt;/span&gt; root=/dev/mmcblk1p2 rw rootwait cma=512M&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;saveenv&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;boot&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;Now, watch the boot (from mmc0): it should end up in a similar boot log (dmesg), ending up on the PYNQ user command line.&lt;br /&gt;Check via:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;lsblk&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;if you see now that mmcblk0 (the SD card) and mmcblk1 (eMMC) are there, potentially already mounted.&lt;br /&gt;Even if not mounted - try to mount one or the other and check if you can see the files on it.&lt;br /&gt;Now, you should be fine to use eMMC (running from it, having user space on it, e.g. for your Python scripts, overlays, SD card&lt;br /&gt;now available as optional memory storage...).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;BTW:&lt;br /&gt;In the &lt;strong&gt;bootargs&lt;/strong&gt; the option &amp;quot;&lt;span style="color:#ff0000;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;uio_pdrv_generic.of_id=generic-uio&lt;/span&gt;&amp;quot; is &lt;strong&gt;important&lt;/strong&gt;.&lt;br /&gt;If you forget to add this:&lt;br /&gt;- you cannot use axi_intc, interrupt signals in your custom overlay (but an y overlay without interrupts and w/o axi_intc should be fine)&lt;br /&gt;- it will complain with &amp;quot;&lt;em&gt;&lt;span style="color:#800000;"&gt;missing UIO&amp;quot;, &amp;quot;I/O error interrupt 121&lt;/span&gt;&lt;/em&gt;&amp;quot; etc,&lt;br /&gt;So, even flashing the same image working for SD card needs a different and correct &lt;strong&gt;bootargs&lt;/strong&gt; for the u-boot!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:inherit;"&gt;Next to enable&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;So, my &lt;span style="color:#339966;"&gt;&lt;strong&gt;eMMC works now&lt;/strong&gt;&lt;/span&gt; on &lt;strong&gt;ZUBoard PYNQ with eMMC module&lt;/strong&gt;.&lt;br /&gt;The next step would be to add - in a similar way - also the SSD/M.2 module, with the 256GB memory module on it.&lt;br /&gt;I hope, in the BSP (and &lt;em&gt;&lt;span style="color:#800080;"&gt;psu_init.c&lt;/span&gt;&lt;/em&gt;) is already the support for it, just the device-tree nodes missing and to add.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#ff0000;font-size:150%;"&gt;&lt;strong&gt;&lt;span style="font-family:inherit;"&gt;Please, add eMMC and SSD/M.2 to ZUBoard PYNQ image&lt;br /&gt;&lt;span style="font-size:inherit;"&gt;(build an image for official download with eMMC)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:inherit;"&gt;It would be great, if anybody, AVNET, AVNET-TRIA, ... could update the AVNET GitHub for PYNQ image build and&lt;br /&gt;publish an &lt;strong&gt;updated PYNQ image&lt;/strong&gt; file for this ZUBoard.&lt;br /&gt;It would be great, if ZUBoard PYNQ image supports directly the (optional) eMMC and SSD/M.2 modules&lt;br /&gt;(without a need to modify and build the PYNQ GitHub).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;&lt;strong&gt;&lt;span style="font-family:inherit;"&gt;Thank you.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard PYNQ not supporting eMMC - WHY?</title><link>https://community.element14.com/thread/56145?ContentTypeID=0</link><pubDate>Thu, 11 Sep 2025 00:32:39 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:0e79bf28-3d2d-483e-b94a-3def8681111e</guid><dc:creator>tjaekel</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/56145?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56145/zuboard-pynq-not-supporting-emmc---why/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Issue: the official AVNET ZUBoard PYNQ image does &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt; support the &lt;strong&gt;&lt;span style="color:#008000;"&gt;AVNET&lt;/span&gt;&lt;/strong&gt; &lt;strong&gt;eMMC&lt;/strong&gt; module!&lt;/p&gt;
&lt;p&gt;AVNET offers an eMMC module (also an SSD/M.2 module for nvme),&lt;br /&gt;but:&lt;br /&gt;it is &lt;span style="color:#ff0000;"&gt;not enabled&lt;/span&gt;, it is&amp;nbsp;&lt;span style="color:#ff0000;"&gt;not supported&lt;span style="color:#0000ff;"&gt; to see and use&amp;nbsp;&lt;/span&gt;&lt;/span&gt;the eMMC in the ZUBoard &lt;strong&gt;PYNQ&lt;/strong&gt; image - &lt;span style="font-size:150%;"&gt;&lt;strong&gt;Why NOT?&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;It just works with the AVNET Petalinux image, but this does not have the FPGA Manager enabled&lt;br /&gt;and no Python support (not a PYNQ system, but working fine with eMMC and even SSD/M.2).&lt;/p&gt;
&lt;p&gt;So, technically, the &lt;span style="color:#339966;"&gt;eMMC module should work as HW extension (on header J2), on the ZUBoard,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;even with PYNQ image booted &lt;span style="color:#000000;"&gt;(from SD or even better to flash PYNQ to eMMC).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The reason, why ZUBoard PYNQ image does &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt;&amp;nbsp;support the AVNET &lt;strong&gt;eMMC module&lt;/strong&gt;:&lt;br /&gt;--&amp;gt; the mmc@ff160000&amp;nbsp;device (which is sd0) is &amp;quot;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;DISABLED&lt;/strong&gt;&lt;/span&gt;&amp;quot; !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;WHY?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can see it if you display, de-compile... the device-tree view on a running ZUBoard PYNQ image,&lt;br /&gt;running on SD card.&lt;br /&gt;It give you this:&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/pastedimage1757549645633v1.png"  /&gt;&lt;/p&gt;
&lt;p&gt;The mmc@ff160000&amp;nbsp;is set to &amp;quot;&lt;span style="color:#ff0000;"&gt;disabled&lt;/span&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;You can also see the same, if you unzip the ZUBoard PYNQ image for SD card, you open the &lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;image.ub&lt;/span&gt;&lt;/strong&gt; file&lt;br /&gt;in a Hex Editor (on Windows e.g. HxD) and you see:&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/pastedimage1757549729416v2.png"  /&gt;&lt;/p&gt;
&lt;p&gt;You see here also that mmc@ff160000&amp;nbsp;is &amp;quot;&lt;span style="color:#ff0000;"&gt;disabled&lt;/span&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;BTW:&lt;br /&gt;I tried to patch this &amp;quot;&lt;em&gt;disabled&lt;/em&gt;&amp;quot; into an &amp;quot;&lt;em&gt;okay&lt;/em&gt;&amp;quot; (plus zeros to fill the string, in Hex Editor):&lt;br /&gt;It does &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt; work: booting from SD card with this &amp;#39;&lt;em&gt;patch&lt;/em&gt;&amp;#39;: I get many errors and at the end it stops booting.&lt;/p&gt;
&lt;p&gt;So, it tells me also:&lt;br /&gt;even I would be able to rebuild the ZUBoard PYNQ image - not sure if just adding such a node in device tree or setting&lt;br /&gt;this node to &amp;quot;okay&amp;quot; would work... ? (e.g. the fabric, the PS engine, is not configured to use the MIO pins for the eMMC (SD0)&lt;br /&gt;interface, potentially the &amp;quot;system&amp;quot; (XSA) will not have SD0 enabled or MIO configured.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;BTW: it looks to me, when I try to build the AVNET PYNQ image: this node for mmc (sd0) is not there.&lt;br /&gt;(therefore no eMMC as mmcblk0, sd0, ...!)&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#ff0000;"&gt;&lt;em&gt;&amp;quot;rrrrr&amp;quot;....&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;How to enable eMMC for AVNET ZUBoard with AVNET eMMC module attached and running PYNQ?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard PYNQ version and build</title><link>https://community.element14.com/thread/56144?ContentTypeID=0</link><pubDate>Wed, 10 Sep 2025 23:49:19 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:cfde75d4-61c2-49c7-95c0-94f62915cfdf</guid><dc:creator>tjaekel</dc:creator><slash:comments>1</slash:comments><comments>https://community.element14.com/thread/56144?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56144/zuboard-pynq-version-and-build/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am so confused. I try to build the official ZUBoard PYNQ image...&lt;br /&gt;But: it results in &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;errors&lt;/strong&gt;&lt;/span&gt;!&lt;br /&gt;When building the Overlay - it complains about &lt;strong&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;axi_iic_1&lt;/span&gt;&lt;/strong&gt; (not available).&lt;/p&gt;
&lt;p&gt;When I download, flash and boot the ZUBoard PYNQ image from official PYNQ web-site:&lt;br /&gt;it says: &amp;quot;&lt;span style="color:#0000ff;"&gt;PYNQ Linux, based on Ubuntu 22.04&lt;/span&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;But building the ZUBoard PYNQ via AVNET GitHub does &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt; work on Ubuntu &lt;span style="color:#ff0000;"&gt;22.04&lt;/span&gt; (unless&lt;br /&gt;you would modify all the build scripts checking for this 22.04 version).&lt;/p&gt;
&lt;p&gt;So, it tells me this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the AVNET ZUBoard GitHub repository is &lt;span style="color:#ff0000;"&gt;not the latest version&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;the official ZUBoard PYNQ image, published on PYNQ, is a newer version (Ubuntu &lt;span style="color:#0000ff;"&gt;22.04&lt;/span&gt;, not 20.04!)&lt;/li&gt;
&lt;li&gt;getting errors when building the AVNET ZUBoard PYNQ as described on GitHub - does not work beacuse&lt;br /&gt;it seems to be an outdated repository&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Where is the GitHub for the correct (working) and latest version?&lt;/strong&gt;&lt;br /&gt;Why AVNET does not update their GitHub?&lt;br /&gt;Why ZUBoard PYNQ image does &lt;span style="color:#ff0000;"&gt;not&lt;/span&gt; enable the eMMC?&lt;br /&gt;(the mmc@ff160000&amp;nbsp;= sd0 for eMMC module&amp;nbsp;is set to &amp;quot;disabled&amp;quot; in device tree - WHY?)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dear AVNET team&lt;/strong&gt;:&lt;br /&gt;&lt;em&gt;Please, please&lt;/em&gt;, improve your support for your AVNET ZUBoard (actually an AVNET-TRIA board),&lt;br /&gt;fix the GitHub, provide a working procedure to re-build this image... (e.g. the BDF seems to mismatch with the repository and&lt;br /&gt;worth mentioning the BDF must be installed on AMD/Xilinx Vivado...)&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Please, update ZUBoard PYNQ by adding &lt;span style="color:#008000;"&gt;YOUR!&lt;/span&gt; eMMC and SSD/M.2 cards.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard PYNQ with eMMC device - how to build modified PYNQ repository?</title><link>https://community.element14.com/thread/56130?ContentTypeID=0</link><pubDate>Thu, 04 Sep 2025 03:47:50 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:1cfec23e-ae65-4143-a17f-770e7e36730b</guid><dc:creator>tjaekel</dc:creator><slash:comments>5</slash:comments><comments>https://community.element14.com/thread/56130?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56130/zuboard-pynq-with-emmc-device---how-to-build-modified-pynq-repository/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;My approach to &amp;quot;patch&amp;quot; the PYNQ image with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;image.ub&lt;/span&gt; (using a modified device_tree) does &lt;span style="text-decoration:underline;"&gt;not&lt;/span&gt; work.&lt;br /&gt;(almost all works, just using Interrupts in overlay bit file (AXI IntC), fails: it does not find OUI and the interrupt vector 121 needed for it)&lt;br /&gt;Now I am building a complete PYNQ image for the ZUBoard, from scratch.&lt;/p&gt;
&lt;p&gt;Why is it so &amp;#39;&lt;em&gt;painful&lt;/em&gt;&amp;#39;?&lt;br /&gt;I have to check the build log, try to figure out what is missing, what is not set, even modifying the build scripts (e.g. &lt;em&gt;xcst was not found&lt;/em&gt;) ... &lt;br /&gt;It takes &amp;gt;10 hours just to setup the build environment (assume one entire day just to setup all properly for a clean build).&lt;/p&gt;
&lt;p&gt;And when it was running once completely to the end - I want to change now just my device tree in &amp;#39;&lt;em&gt;system_user.dtsi&lt;/em&gt;&amp;#39;, in order to add&lt;br /&gt;a node for mmcblk1 (eMMC module, mmcblk0 is the SD card).&lt;/p&gt;
&lt;p&gt;Why is the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;buildzu.sh&lt;/span&gt; loading, compiling, installing ... all the time &amp;quot;all&amp;quot; again?&lt;br /&gt;It takes hours (a half day) just to make a small modification in just one device_tree file.&lt;br /&gt;(few lines of text added to device tree and the build process takes hours again - WHY?)&lt;/p&gt;
&lt;p&gt;What is the fastest way just to compile PYNQ for ZUBoard again?&lt;br /&gt;(&lt;em&gt;make&lt;/em&gt; should realize what is unchanged, but the script seems to run almost all again, &amp;quot;&lt;em&gt;rrrrr&lt;/em&gt;&amp;quot;&lt;br /&gt;and it seems to fetch a lot of stuff again from Internet, including to fetch/submit something from/to GitHub - &lt;em&gt;what is this build process doing?)&lt;/em&gt;&lt;br /&gt;(&lt;em&gt;unless just wasting my time&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;Please,&lt;br /&gt;who does have or could generate a &lt;strong&gt;PYNQ SD card image&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;which would see, support the &lt;strong&gt;eMMC module&lt;/strong&gt; (or even the &lt;strong&gt;SSD M.2 module,&lt;/strong&gt; alternatively)&lt;br /&gt;&lt;span style="color:#008000;"&gt;as the PetaLinux does&lt;/span&gt; (but this PetaLinux image does not enable FPGA Manger or has Python (PYNQ) support integrated)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Please, please, ...&lt;/em&gt;&lt;br /&gt;just merge the eMMC (and SSD M.2) module into a ZUBoard PYNQ image. THANK YOU!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color:#ff00ff;font-size:150%;"&gt;&lt;strong&gt;How get a ZUBoard PYNQ image which would &amp;quot;see&amp;quot; (support) eMMC (and/or SSD M.2) module?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>I'm trying to use IOBUF in Vivado on AVNET ZU1CG board, but I'm getting placement error.</title><link>https://community.element14.com/thread/56092?ContentTypeID=0</link><pubDate>Thu, 21 Aug 2025 06:11:03 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:bc77d1fc-92fb-45db-a55f-8eba0ea279df</guid><dc:creator>Niru_10</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/56092?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56092/i-m-trying-to-use-iobuf-in-vivado-on-avnet-zu1cg-board-but-i-m-getting-placement-error/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I added IOBUFG component in the vivado and trying to connect the input to pin R1(from J1) and output to N4(From J6), during placement I&amp;#39;m facing error saying it can&amp;#39;t be connected as there is no possibility to connect.&lt;br /&gt;How can i drive the IOBUFG in vivado.&lt;/p&gt;
&lt;p&gt;Below is my design.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/pastedimage1755756456613v1.png"  /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;My constraints are:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;set_property PACKAGE_PIN N4 [get_ports BUFG_O_0]&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;set_property IOSTANDARD SSTL12 [get_ports BUFG_O_0]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;set_property PACKAGE_PIN A8 [get_ports BUFG_I_0]&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;set_property IOSTANDARD LVCMOS18 [get_ports BUFG_I_0]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The error I&amp;#39;m facing is below:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;[Place 30-675] Sub-optimal placement for a global clock-capable IO pin and BUFG pair.If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule. &amp;lt; set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets BUFG_I_0_IBUF[0]_inst/O] &amp;gt; BUFG_I_0_IBUF[0]_inst/IBUFCTRL_INST (IBUFCTRL.O) is locked to IOB_X0Y32 design_1_i/util_ds_buf_0/U0/USE_BUFG.GEN_BUFG[0].BUFG_U (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y19 The above error could possibly be related to other connected instances. Following is a list of all the related clock rules and their respective instances. Clock Rule: rule_bufgce_bufg_conflict Status: PASS Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be used at the same time and design_1_i/util_ds_buf_0/U0/USE_BUFG.GEN_BUFG[0].BUFG_U (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y19&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I would appreciate any suggestions.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Nirupama.T&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ZUBoard PYNQ with eMMC and/or SSD extension?</title><link>https://community.element14.com/thread/56091?ContentTypeID=0</link><pubDate>Thu, 21 Aug 2025 02:10:03 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4383fc1a-e2c4-4356-b3d3-dc78d7cbb889</guid><dc:creator>tjaekel</dc:creator><slash:comments>10</slash:comments><comments>https://community.element14.com/thread/56091?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56091/zuboard-pynq-with-emmc-and-or-ssd-extension/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;My &lt;strong&gt;ZUBoard&lt;/strong&gt; is working fine with the &lt;strong&gt;PYNQ SD card imag&lt;/strong&gt;e.&lt;br /&gt;Get it from here:&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://www.pynq.io/boards.html" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.pynq.io/boards.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &amp;#39;&lt;em&gt;problem&lt;/em&gt;&amp;#39;:&lt;br /&gt;There are also an&amp;nbsp;&lt;strong&gt;eMMC extension&lt;/strong&gt; board (32GB eMMC, with option to boot from it) and&lt;br /&gt;an extension board to use a &lt;strong&gt;M.2 SSD drive&lt;/strong&gt; (but just as &lt;strong&gt;Gen3x2&lt;/strong&gt;, &lt;strong&gt;max. 256GB&lt;/strong&gt;, and not an option to boot from it,&lt;br /&gt;the ZUBoard does not have a boot option for SSD):&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://www.tria-technologies.com/product/dp-emmc-high-speed-io-module/" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.tria-technologies.com/product/dp-emmc-high-speed-io-module/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://www.avnet.com/americas/product/avnet-engineering-services/aes-acc-hsio-m2-g/evolve-64660440/" target="_blank" data-e14adj="t"&gt;https://www.avnet.com/americas/product/avnet-engineering-services/aes-acc-hsio-m2-g/evolve-64660440/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Both boards are working fine&lt;/strong&gt;, even flashing the eMMC and booting from it works fine (with a PetaLinux image, not PYNQ!)&lt;br /&gt;More details to find here:&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id="" href="https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So, all the HW is fine.&lt;br /&gt;The &amp;#39;&lt;em&gt;problem&lt;/em&gt;&amp;#39; is:&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;PYNQ SD card&lt;/strong&gt; image for the &lt;strong&gt;ZUBoard does NOT support&lt;/strong&gt; these optional and additional interfaces (it does not see it as devices),&lt;br /&gt;such as mmcblk1 seen as the eMMC card or the nvme device for the M.2 SSD.&lt;br /&gt;BTW: you have to buy an SSD M.2 module with a &lt;strong&gt;B+M key&lt;/strong&gt;! (the B-key is needed, as &lt;strong&gt;Gen3x2&lt;/strong&gt;, not M-key as&lt;br /&gt;Gen4x4!&lt;/p&gt;
&lt;p&gt;The only SSD module which works for me (sometimes referenced as SATA) is a KingSpec M.2 NVME, 256GB, able to order via:&lt;br /&gt;&lt;a href="https://www.amazon.com/dp/B08TTDQ5WH?ref_=ppx_hzod_title_dt_b_fed_asin_title_2_0&amp;amp;th=1" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.amazon.com/dp/B08TTDQ5WH?ref_=ppx_hzod_title_dt_b_fed_asin_title_2_0&amp;amp;th=1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A larger one, e.g. 512GB or larger does not work: make sure your SSD module has a &lt;strong&gt;M.2 B-key&lt;/strong&gt; (or &lt;strong&gt;B+M key&lt;/strong&gt;, but larger as&lt;br /&gt;256GB seems to fail, even it has B+M)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So, &lt;strong&gt;eMMC, M.2 SSD are working&lt;/strong&gt; with a PetaLinux SD card image (as test Linux image):&lt;br /&gt;Best references to replicate:&lt;br /&gt;&lt;a id="" href="https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447&lt;/a&gt;&lt;br /&gt;&lt;a id="" href="https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;My needs:&lt;br /&gt;I want to have a &lt;strong&gt;ZuBoard PYNQ SD card image&lt;/strong&gt; which also &amp;#39;sees&amp;#39; the &lt;strong&gt;eMMC module or the M.2 SDD module&lt;/strong&gt;.&lt;br /&gt;I need an additional fast memory device (not just the SD card or USB memory stick - works) to record fast&lt;br /&gt;sensor data.&lt;/p&gt;
&lt;p&gt;Is there anybody:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;which has a PetaLinux setup for &lt;strong&gt;ZUBoard PYNQ image generation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;where he could add support for eMMC and/or SSD&lt;/li&gt;
&lt;li&gt;and publish this image&lt;/li&gt;
&lt;li&gt;?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What is the fastest way to get ZUBoard PYNQ Linux image extended by eMMC (mmcblk1) or SSD (nvme)?&lt;br /&gt;As I understand: it is necessary to get the PYNQ repository, to install and use PetaLinux and to modify the project, generate...&lt;/p&gt;
&lt;p&gt;&lt;em&gt;But not an easier way?&lt;/em&gt;, e.g. to extend the working PetaLinux (test) image with the PYNQ extension?&lt;br /&gt;(as I understand: these PetaLinux images see the other boards and devices, but it does not have the PYNQ extension,&lt;br /&gt;esp. not the FPGAManager integrated, and the image.ub file at the end does not enable these devices on PYNQ).&lt;/p&gt;
&lt;p&gt;What happens if I &amp;#39;&lt;em&gt;mix&lt;/em&gt;&amp;#39; the PetaLinux with the PYNQ image (e.g. use the PYNQ image.ub file instead):&lt;br /&gt;It works fine to boot, but loading an overlay does not work. Also: the PYNQ image.ub does not enable the&lt;br /&gt;eMMC driver nor the M.2 SSD nvme driver. I cannot load a *.bit file (assuming in the PetaLinux image the FPGA manager&lt;br /&gt;is not enabled).&lt;/p&gt;
&lt;p&gt;So, it should be a small effort to add to ZUBoard PYNQ Linux image project to add and enable these devices.&lt;/p&gt;
&lt;p&gt;If anybody has a ZUBoard &lt;strong&gt;PYNQ image supporting also the AVNET extensions board&lt;/strong&gt; - I appreciate if you can share&lt;br /&gt;the *.IMG file or help to setup the PetaLinux PYNQ project in order to add and modify. Thank you.&lt;/p&gt;
&lt;p&gt;Dear AVNET team:&lt;br /&gt;please, provide a ZUBoard PYNQ SD card image which would support your extensions boards. Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>SSTL12 I/O standard compatible pins on Avnet ZUBoard 1CG</title><link>https://community.element14.com/thread/56075?ContentTypeID=0</link><pubDate>Tue, 19 Aug 2025 06:13:18 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9156d287-f05a-4cba-880a-d2c28879bac4</guid><dc:creator>Niru_10</dc:creator><slash:comments>7</slash:comments><comments>https://community.element14.com/thread/56075?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/56075/sstl12-i-o-standard-compatible-pins-on-avnet-zuboard-1cg/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am using AVNET ZUBoard 1CG and trying to figure out the pins compatible with I/O standard SSTL12 and i found J6 supports the standard, but when i try in vivado .xdc file making a pin SSTL12, its throwing error at bitstream.&lt;br /&gt;Please help me to find out the proper IO that supports SSTL12.&lt;/p&gt;
&lt;p&gt;Below is the command i used.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;set_property PACKAGE_PIN N3 [ct_out_0]&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;set_property IOSTANDARD SSTL12 [ct_out_0]&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Nirupama.T&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Failed to create platform.
Failed to generate bsp for application zynqmp_pmufw</title><link>https://community.element14.com/thread/55983?ContentTypeID=0</link><pubDate>Tue, 22 Jul 2025 08:40:04 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:021862f6-9a0a-48d2-9317-eb33326b4b6b</guid><dc:creator>Niru_10</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/55983?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/55983/failed-to-create-platform-failed-to-generate-bsp-for-application-zynqmp_pmufw/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have tried one of the example designs on ZU board and during application creation, I&amp;#39;m getting the mentioned error.&lt;/p&gt;
&lt;p&gt;Appreciate any suggestion!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Nirupama&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DQ &amp; DQS Signal Probing</title><link>https://community.element14.com/thread/55978?ContentTypeID=0</link><pubDate>Mon, 21 Jul 2025 11:46:59 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f46b56e2-7ea2-42c7-a403-f8a1159475a0</guid><dc:creator>Ravi_V</dc:creator><slash:comments>0</slash:comments><comments>https://community.element14.com/thread/55978?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/55978/dq-dqs-signal-probing/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p data-start="80" data-end="230"&gt;I am measuring the DQ (AA9) and DQS signals (V3 and W3 pins off LPDDR4) of the S43LQ32256EA-062B2L using the default design. I am observing the following signals.&lt;/p&gt;
&lt;p data-start="232" data-end="330"&gt;Are these signals expected? I am probing with the default design/application (QSPI image) of the board and with the continuous run mode at oscilloscope.&lt;br /&gt;&lt;br /&gt;Please let me know if I am missing anything.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;" src="https://community.element14.com/resized-image/__size/1280x720/__key/communityserver-discussions-components-files/366/pastedimage1753096713086v1.png"  /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DDR example Design</title><link>https://community.element14.com/thread/55976?ContentTypeID=0</link><pubDate>Mon, 21 Jul 2025 08:06:43 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:85c64c44-bdb6-4eae-b760-b38ea7c13bec</guid><dc:creator>Niru_10</dc:creator><slash:comments>2</slash:comments><comments>https://community.element14.com/thread/55976?ContentTypeID=0</comments><wfw:commentRss>https://community.element14.com/products/devtools/avnetboardscommunity/avnetboard-forums/f/zuboard/55976/ddr-example-design/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I have the AVNET board and i tried the OOB example.&lt;/p&gt;
&lt;p&gt;I need to work on DDR and i need an example DDR design which can do some read and write transactions.&lt;/p&gt;
&lt;p&gt;Can anyone help me with this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>