We can load the FSBL, the U-Boot followed by a FitImage of our Kernel and ramfs.
But sometimes, we have a problem with the dfu command:
Regularly the U-Boot image fails to fully set up the DFU command on the Xilinx side, resulting in the ZynqMP not enumerating on the host side. I traced the process back to the USB Gadget level where I see a missing IRQ_WAKE_THREAD and the dwc interrupt checking again and again, but that wakeup never occurs. At that point I can access the U-Boot shell, abort & restart the DFU Command, and it will lead to a successful enumeration on the second try most times.
We can reproduce this error with 2020.2 and 2019.1 Versions of Petalinx and there are no changes in the used code-paths from the default U-Boot. I’ve attached two logs comparing the successful / failure cases, maybe this rings a bell on something that was already seen in other cases? If there is any other info we can provide that would help narrow this down, feel free to ask.