03-26-2014 01:17 PM
I'm using a Xilinx ZC706 (XC7Z045-ffg900-2) evaluation board. I'm exploring different methods of adding a simple app into the petalinux rootfs and booting the board. So far, I've been able to successfully add an app (petalinux-create), compile the petalinux kernel (petalinux-config, petalinux-build) boot the board in JTAG (petalinux-boot --jtag) and run the app on the board. While everything runs fine, JTAG boots are inherently slow.
In order to boot from the SD card, AFAICT the SD card must have two files: BOOT.BIN and image.ub. I was able to successfully boot the board using the files from the ZC706 TRD. Now, when I try to generate BOOT.BIN using petalinux-package --boot and use that with image.ub created during petalinux-build, the boot process halts after u-boot with the following error:
SF: Detected S25FL129P_64K/S25FL128S_64K with page size 128 KiB, total 32 MiB
SF: 11010048 bytes @ 0xe20000 Read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
I'm not sure what the problem is. I tried mixing-matching BOOT.BIN from the TRD and image.ub from my project's images/linux/ and vice versa, no luck. What's even more puzzling is that the pre-built BOOT.BIN and image.ub in the petalinux sdk (in the pre-built folder) also fails to boot when I put them on the SD card. I also tried loading all the files in the images/linux folder in the SD card with BOOT.BIN, but couldn't get it to boot.
Here is the command I'm using to create BOOT.BIN:
petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --fpga pre-built/linux/implementation/download.bit --uboot=images/linux/u-boot.elf
I have attached a copy of the image.ub that I'm using along with zynq_fsbl.elf and u-boot.elf. Note that the same image.ub boots fine in JTAG. Am I doing something wrong, or is this a bug in petalinux-package? Kindly help.