I was thinking...:
is there an easier way to add and enable eMMC (and even SSD/M.2 module) for ZUBoard running PYNQ?
Potentially, there is!
Tests done:
If I image SD card with PYNQ image, boot it, afterwards I copy/overwrite the BOOT.bin and image.ub with the one from a PetaLinux image
(used to demonstrate that eMMC and SSD/M.2 works):
- oh, yes, I see eMMC and even nvme device
- I can mount and use: all looks fine
BUT:
the FPGA Manager is not enabled!
So, even PYNQ seems to boot fine - just: it cannot load any overlay.bit file!
Obvious: the FPGA Manager is not enabled, not added in the (BSP and) PetaLinux kernel.
So, what about to build a new PetaLinux kernel for the ZUBoard (only the kernel, not all, not the entire PYNQ image)?
I assume,
- if you use a newer BSP, e.g. "zub1cg_sbc_base_2022_2.bsp", not the original one used in ZUBoard PYNQ build as "zuboard_1cg.bsp"
- you build just the PetaLinux kernel and u-boot
- but before the build: you configure the PetaLinux project to enable/add the FPGA Manager (petalinux-config)
maybe, it is enough to exchange the kernel (image.ub, and UBOOT.BIN) so that:
- a PYNQ SD Card (with patched BOOT.BIN and image.ub) boots fine
- sees also if eMMC module is connected
- sees also if SSD/M.2 module is connected instead (and you can mount SSD/M.2 as a drive in system)
- and you can also load dynamically custom overlay.bit files
So, I think:
supporting eMMC or SSD/M.2 is just an issue with the PetaLinux kernel (image.ub) itself:
changing the kernel with one supporting both (optional) devices, but having also FPGA Manager enabled in it...
should do the job.
Just: build a PetaLinux image based on a newer BSP repository, change the files on the PYNQ image (e.g. after system has booted,
to overwrite the BOOT.BIN and esp. image.ub)... and it should be done.
I am testing this approach right...
Please:
can anybody generate a PetaLinux kernel (image.ub) which would support eMMC and SSD/M.2?
It should be OK to image SD card with original PYNQ image but after it has booted - to overwrite (patch) these files,
so that is sees both devices and still works to load custom overlay.bit files in Python.
It should not be big deal.