I am building a Yocto Linux image for the MicroZed using the official meta-xilinx layer (Yocto branch "rocko" + meta-xilinx layer with branch "rel-v2018.3").
Using MACHINE = "microzed-zynq7" in my local.conf generates an image that fails to boot from SD card:
- At startup, the blue LED indicates that the PL is configured.
- The USB-UART port does not output anything.
As a workaround, I have created a custom machine configuration based on the official microzed-zynq7.conf with the following modifications:
# Use the ZedBoard configuration for U-Boot instead of MicroZed
UBOOT_MACHINE = "zynq_zed_config"
# Keep the device tree of the MicroZed KERNEL_DEVICETREE = "zynq-microzed.dtb"
# Enable the "u-boot-xlnx" recipe (with U-Boot 2018.3)
# instead of the "u-boot" recipe (that provides U-Boot 2017.09).
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-xlnx"
The bootloader generated with this machine definition works correctly and I get a fully working Linux system.
In both attempts, the u-boot.elf file from the Yocto build is added to the same bitstream and FSBL generated by Vivado + SDK using the officiel MicroZed board files.
- Do you know why the microzed-zynq7 machine definition does not generate a working bootloader in my case?
- Do you think my workaround is safe to use? Should I try something else?