element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
ZUBoard ZUBoard PYNQ with eMMC and/or SSD extension?
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 9 replies
  • Answers 1 answer
  • Subscribers 327 subscribers
  • Views 503 views
  • Users 0 members are here
  • avnet boards
  • ssd
  • AVNET ZUB1CG
  • avnet
  • petalinux
  • emmc
  • Zynq Ultrascale+
  • pynq
  • m.2
  • ZUBoard
Related

ZUBoard PYNQ with eMMC and/or SSD extension?

tjaekel
tjaekel 1 month ago

My ZUBoard is working fine with the PYNQ SD card image.
Get it from here:

https://www.pynq.io/boards.html

The 'problem':
There are also an eMMC extension board (32GB eMMC, with option to boot from it) and
an extension board to use a M.2 SSD drive (but just as Gen3x2, max. 256GB, and not an option to boot from it,
the ZUBoard does not have a boot option for SSD):

https://www.tria-technologies.com/product/dp-emmc-high-speed-io-module/

https://www.avnet.com/americas/product/avnet-engineering-services/aes-acc-hsio-m2-g/evolve-64660440/

Both boards are working fine, even flashing the eMMC and booting from it works fine (with a PetaLinux image, not PYNQ!)
More details to find here:

https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447

https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2

So, all the HW is fine.
The 'problem' is:

The PYNQ SD card image for the ZUBoard does NOT support these optional and additional interfaces (it does not see it as devices),
such as mmcblk1 seen as the eMMC card or the nvme device for the M.2 SSD.
BTW: you have to buy an SSD M.2 module with a B+M key! (the B-key is needed, as Gen3x2, not M-key as
Gen4x4!

The only SSD module which works for me (sometimes referenced as SATA) is a KingSpec M.2 NVME, 256GB, able to order via:
https://www.amazon.com/dp/B08TTDQ5WH?ref_=ppx_hzod_title_dt_b_fed_asin_title_2_0&th=1

A larger one, e.g. 512GB or larger does not work: make sure your SSD module has a M.2 B-key (or B+M key, but larger as
256GB seems to fail, even it has B+M)

So, eMMC, M.2 SSD are working with a PetaLinux SD card image (as test Linux image):
Best references to replicate:
https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447
https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2

My needs:
I want to have a ZuBoard PYNQ SD card image which also 'sees' the eMMC module or the M.2 SDD module.
I need an additional fast memory device (not just the SD card or USB memory stick - works) to record fast
sensor data.

Is there anybody:

  • which has a PetaLinux setup for ZUBoard PYNQ image generation
  • where he could add support for eMMC and/or SSD
  • and publish this image
  • ?

What is the fastest way to get ZUBoard PYNQ Linux image extended by eMMC (mmcblk1) or SSD (nvme)?
As I understand: it is necessary to get the PYNQ repository, to install and use PetaLinux and to modify the project, generate...

But not an easier way?, e.g. to extend the working PetaLinux (test) image with the PYNQ extension?
(as I understand: these PetaLinux images see the other boards and devices, but it does not have the PYNQ extension,
esp. not the FPGAManager integrated, and the image.ub file at the end does not enable these devices on PYNQ).

What happens if I 'mix' the PetaLinux with the PYNQ image (e.g. use the PYNQ image.ub file instead):
It works fine to boot, but loading an overlay does not work. Also: the PYNQ image.ub does not enable the
eMMC driver nor the M.2 SSD nvme driver. I cannot load a *.bit file (assuming in the PetaLinux image the FPGA manager
is not enabled).

So, it should be a small effort to add to ZUBoard PYNQ Linux image project to add and enable these devices.

If anybody has a ZUBoard PYNQ image supporting also the AVNET extensions board - I appreciate if you can share
the *.IMG file or help to setup the PetaLinux PYNQ project in order to add and modify. Thank you.

Dear AVNET team:
please, provide a ZUBoard PYNQ SD card image which would support your extensions boards. Thank you.

  • Sign in to reply
  • Cancel

Top Replies

  • tjaekel
    tjaekel 27 days ago +2
    I got it to work : to see mmcblk1 (the AVNET eMMC module), including to image the eMMC in order to boot and run from it. So, my ZUBoard PYNQ runs now all from mmcblk1 (the eMMC module), should be faster…
  • tjaekel
    0 tjaekel 27 days ago

    I got it to work: to see mmcblk1 (the AVNET eMMC module), including to image the eMMC in order to boot and run from it.
    So, my ZUBoard PYNQ runs now all from mmcblk1 (the eMMC module), should be faster instead from SD card.

    The most helpful link:

    https://gist.github.com/yunqu/827862e580a5f9b069eccdfcdcf70398

    It has just the pain to install Ubuntu (e.g. a VM) and to setup all in order to build the original PYNQ image for the ZUBoard.
    We need two files from this build. Therefore we had to setup the PYNQ build for the ZUBoard (see the AVNET GitHub, link below).
    It took me two days to make my Ubuntu PYNQ build working:
    Go really with all the versions mentioned, esp. for the Xilinx tools, Petalinux. Do not mix or go with other versions (the PYNQ build is hard-coded for this version 2022.1.

    You could use a newer Ubuntu version (I have used 22.04) but you get warnings during build process about unsupported OS.
    So, better to use really just Ubuntu 20.04

    The most time consuming part is: even you make sure about all the prerequisites - during the build process you will a lot of errors due to missing linux tools and libraries. Just fix it by installing all the missing stuff (these can take also few hours just to update and make the build working).

    https://github.com/Avnet/ZUBoard_1CG-PYNQ

    Technically, the device tree looks identical with the Petalinux image where the eMMC (and NVME) is support.
    The only change I have done was to comment one line (on the second mmc device tree node):

    #no-1-8-v;

    This was on the 2nd mmc block device enabled, just commented (eMMC runs at 1.8V), building the device tree again, build the image... and now it works.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tjaekel
    0 tjaekel 27 days ago in reply to tjaekel

    Booting and running PYNQ from eMMC works fine.
    Way faster! (8bit interface to eMMC instead of 4bit to 'slow' SD card).

    I can see also a formatted SD card plugged in (not booting from it, BOOT switches for eMMC: ON OFF off on), not mounted yet, but properly seeing the size of those additional devices.

    The only thing I am trying still:
    image an SD card with the 'same' BOOT.BIN, image.ub etc. so that the opposite works:
    boot from SD card the PYNQ and see the eMMC module as device (e.g. for additional memory).

    Unfortunately, no luck yet to get it working: even copying the same BOOT.BIN, image.ub to SD card (ATT: the boot partition is smaller! files are larger on eMMC) - the SD card has a lot of trouble now when booting from it
    (hangs somewhere on USB device, depending if USB stick is connected or not, or sometimes it complains with a lot of FAIL during boot).

    So, I want to have a similar PYNQ boot image for a SD card which can see also the mmcblk1 (as eMMC, or the SSD/nvme card module).

    DEAR AVNET TEAM:

    Please, please, ... can you update your PYNQ build (on GitHub) for:
    - add AVNET eMMC module support for the SD Card image (to see mmcblk1 as device)
    - to see also, when changed eMMC to SSD module (with this M.2 SSD), to see this as nvme device
    Thank you.

    It is so painful to get these two additional AVNET modules to work with a PYNQ image ZUBoard AVNET board (even it works fine with 'your' Petalinux test image, why not with PYNQ image? Just merge the device tree into the AVNET ZUBoard PYNQ image   ;-)   )

    ZUBoard booting and running from eMMC module

    ZUBoard running w/o SD card, booting and running from AVNET eMMC module (as PYNQ)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tjaekel
    0 tjaekel 27 days ago in reply to tjaekel

    It does NOT work to image SD card exactly with the same image working on eMMC!

    It hangs on doing something with USB (sda) during boot.

    The general steps I have done in order to get 'at least' the eMMC module working, to boot PYNQ from it:

    • create an Ubuntu VM, install all tools, repositories (AVNET GitHub) ... build it...
      it creates two files needed later (it takes at least one day to get it setup)
    • take the PYNQ image, extract the device tree, modify it, compile it again and build a new image.ub file
      (I have done on the Ubuntu VM, might not work directly on ZUBoard: tools missing)
    • take the AVNET Petalinux test image (for SD card, it is NOT PYNQ!), image SD card, boot from SD card,
      see the eMMC module connected (only visible with the Petalinux test image, not with PYNQ image)
    • have the modified image.ub on a USB stick (copy the files from host to ZUBoard by mounting USB and Shared VM drive)
    • partition, format, ... the emmc module (two partitions, the first is a FAT32 BOOT partition, 1GB!, the second for the rootfs (all Linux files)
    • copy the /boot files to emmc module, copy or image the second partition for the filesystem, take it from a PYNQ sd card/image!

    it was so painful (wasting days) and a lot of trial and error to get the eMMC working for booting PYNQ.
    If the ZUBoard PYNQ image would already support to see eMMC module - it would be great (and way easier to image eMMC with a
    working SD card image, e.g. cloning the SD card into eMMC).

    Why cloning a working eMMC to an SD card (and booting the same from SD card, even adjusting the U-Boot bootargs...) does NOT work ... no idea.

    Actually, the correct way would be:

    • we have to setup Ubuntu VM for building the PYNQ AVNET GitHub repository - assuming it generates the final sdbuild image
      (my did not: it could not build the demo overlay file - but OK, I could skip it)
    • modify the device tree in order to enable mmcblk1 - but I have not found where and how to do it
    • best is: add also option to support M.2 SSD card module - no idea where to add, modify
    • build the entire PYNQ for ZUBoard again and
    • get the SD card image file generated

    hoping it will now see also other devices like eMMC (or M.2 SDD nvme) when booting this modified PYNQ image.

    Remark:
    Most of the time, when 'mixing' BOOT.BIN and image.ub from working repositories:
    - I could see the other devices, e.g. eMMC as mmcblk1
    - but loading an Overlay was not possible:
      it has complained about a missing directory: potentially due to fact, that the "FPGA Manager" was not contained/not enabled in the image

    So, the final test, if "all" works, is:

    • you should see a nice boot log (on UART), no red errors
    • at the end a password-less login to xilinx for PYNQ: if it asks you about a password - your are running a Petalinux image (not PYNQ)
    • you should be able to use SAMBA, to open ZUboard as a network drive in Windows, to see and copy files (could be also OK on a Petalinux image!)
      Remark: sometimes the \\pynq as network drive does not work or fails again in Windows: close file explorer, try again and use the IP address
      instead: 'ifconfig' on ZUBoard terminal and \\IPaddress on windows file explorer
    • IMPORTANT: you should be able to open Jupyter Notebook (maybe you can and you will see the scripts) - not yet a success
    • VERY IMPORTANT: try if you can load a user overlay (bit file)!
      This has failed for me most of the time, even all other features seemed to work!
      It tells you that the 2nd bootloader file, the image.ub - is not correct (not the right one or having issues to be loaded, mainly it does not
      have the "FPGA Manager" integrated - the file size of this image.ub is very different (PYNQ much larger!))
      (remark: a Petalinux image, even booting and 'working', extended by PYNQ rootfs files... does not work for loading overlays dynamically!
      We need a full PYNQ image, including all the BSP and boot files!)

    Good luck.
    If anybody has a better way to:

         Extend ZUBoard PYNQ for eMMC (and/or SSD/nvme) - device tree

    ... cool, if we could use ZUBoard PYNQ with all the (optional) AVNET extension boards (esp. eMMC).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • tjaekel
    0 tjaekel 23 days ago in reply to tjaekel

    ATT: my approach (eMMC image) has one issue:
    I cannot use a PL block diagram with axi_intc_0!

    It works fine with PYNQ imaged and booted from SD card: my INT via axi_intc_0 (signal axi_gpio_0/ip2intc_irpt used) works fine.

    But booting my (modified image) from eMMC complains with an error about "Interrupt ip2intc_irpt not created" and "Could not find UIO device for interrupt pin for IRQ number 121"

    image

    I assume, the device tree is still not correct (even it sees the eMMC module, but not this signal from block diagram (in overlay bit file)).

    OK, what to do?
    Potentially: I'd like to get a ZUBoard PYNQ image which supports the AVNET eMMC module and works also for all regular PYNQ features (when booting from eMMC).
    I am not the big expert to figure out how to modify the PYNQ GitHub project for it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tjaekel
    0 tjaekel 18 days ago in reply to tjaekel

    This is WRONG!
    no-1-8-v is needed on SD card, using level shifters! The SD card cannot change into 1V8 signalling mode (this is what the option is about).
    Be also aware of" mmc0 is actually the SD card - but it uses mmc@ff17000 which is the second mmc. The mmc/sdhci are flipped a bit in the device tree!

    So, SD and boot from SD uses mmc0/mmcblk0 but it seems to be connected to the 2nd mmc device. Do not remove no-1-8-v there: the SD card runs after level shifters with 3V3 and cannot go down to 1V8 signalling.
    It does not matter that the FPGA bank 501 for MIO SD card runs always with 1V8. This option specifies just for the driver not to change on external SD card down to 1V8 because it is connected as 3V3.

    So, this approach should not work!
    Why I got it a bit to work - no idea.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tjaekel
    0 tjaekel 18 days ago in reply to tjaekel

    Please, forget and ignore this thread!
    This approach does not work really!

    We have to build a correct PYNQ image supporting BSP, Petalinux and PYNQ with eMMC support.
    No idea why it does not work: I see in device trees that the second MMC is actually enabled, configured.
    But booting PYNQ from SD card does not see the eMMC module.

    Just the Petalinux image is able to see it:

    https://www.hackster.io/tom-curran/zuboard-boot-linux-from-emmc-5d9447

    /technologies/fpga-group/b/blog/posts/zub1cg_5f00_emmc_5f00_display_5f00_port

    best reference to test (with PetaLinux):

    https://www.hackster.io/tom-curran/zuboard-add-wifi-bluetooth-and-nvme-ssd-f90be2

    I do not have it working yet with PYNQ!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tjaekel
    0 tjaekel 10 days ago

    Please, see my thread: ZUBoard eMMC works on PYNQ

     AVNET ZUBoard PYNQ with eMMC - WORKS! 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tjaekel
    0 tjaekel 10 days ago in reply to tjaekel

    Please, see my thread:

     AVNET ZUBoard PYNQ with eMMC - WORKS! 

    if you want to use axi_intc and INT signals - important how you set the bootargs:

    setenv bootargs "console=ttyPS0,115200 earlycon clk_ignore_unused uio_pdrv_generic.of_id=generic-uio root=/dev/mmcblk1p2 rw rootwait cma=512M"

    saveenv

    boot

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tjaekel
    0 tjaekel 7 days ago in reply to tjaekel

    For now, how to patch original ZUBoard PYNQ image with eMMC support:

     ZUBoard PYNQ - patch for eMMC support 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube