06-08-2016 01:59 AM
petalinux-package utility produces the following BOOT.BIN header when I use Zynq 7035. The data at offset 0x30 is incorrectly pointing to the header itself [0]. Therefore, the Zynq 7035 Bootrom does not boot from QSPI. I am not sure how many other fields are missing from the boot header. Please note that Vivado/SDK bootgen utility generates this correctly for 7035 (but not Petalinux utility).
Incorrect boot header
:~$ hexdump -C /tftpboot/BOOT.BIN -n 1000
00000000 fe ff ff ea fe ff ff ea fe ff ff ea fe ff ff ea |................|
*
00000020 66 55 99 aa 58 4e 4c 58 00 00 00 00 00 00 01 01 |fU..XNLX........|
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000040 00 00 00 00 01 00 00 00 40 5c 19 fc 00 00 00 00 |........@\......|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000090 00 00 00 00 00 00 00 00 c0 08 00 00 80 0c 00 00 |................|
000000a0 ff ff ff ff 00 00 00 00 ff ff ff ff 00 00 00 00 |................|
However, when I use petalinux-package utility for Zynq 7020, the header is correct always and is as expected.
Correct boot header
:~$ hexdump -C /tftpboot/BOOT_7020.BIN -n 1000
00000000 fe ff ff ea fe ff ff ea fe ff ff ea fe ff ff ea |................|
*
00000020 66 55 99 aa 58 4e 4c 58 00 00 00 00 00 00 01 01 |fU..XNLX........|
00000030 00 17 00 00 0c 40 01 00 00 00 00 00 00 00 00 00 |.....@..........|
00000040 0c 40 01 00 01 00 00 00 28 c5 16 fc 00 00 00 00 |.@......(.......|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000090 00 00 00 00 00 00 00 00 c0 08 00 00 80 0c 00 00 |................|
000000a0 ff ff ff ff 00 00 00 00 ff ff ff ff 00 00 00 00 |................|