cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
abc123wyj
Observer
Observer
3,285 Views
Registered: ‎11-29-2017

how to boot zynq-7000 from nand flash

Jump to solution

hello all,

        my board inculdes XC7Z045-1FFG676C, SD cards and nand flash MT29F4G08ABBDAH4IT, I use petalinux create image.ub, zynq_fsbl.elf, u-boot.elf

1.jpg

then I use SDK create boot.bin

2.jpg

change the board into JTAG Mode, and program flash

3.jpg

after program successful, turn off power, change board into NAND flash Mood, and turn on power again, it shows:

 

In: serial
Out: serial
Err: serial
Net: No ethernet found.
U-BOOT for zynq7045_ps

Hit any key to stop autoboot: 0

NAND read: device 0 offset 0x820000, size 0x6000000
100663296 bytes read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot-PetaLinux>

 

it can not boot linux correctly.

how to solve this problem?

I think it because nand flash does't have image.ub file. How to add image.ub into nand flash

petalinux-config shows below:

123.jpg

4.jpg

5.jpg

 

Looking forward to you reply. Thank you!

 

 

0 Kudos
1 Solution

Accepted Solutions
bog_dan
Visitor
Visitor
3,437 Views
Registered: ‎02-21-2018

If you have the petalinux tools installed, you can use the petalinux-package command to build a boot.bin file with the kernel image built in without the SDK. You'll still use the SDK to program the flash.

 

petalinux-package --boot --fsbl <FSBL image> --fpga <FPGA bitstream> --u-boot --kernel

You should be able to add the image.ub in the create zynq boot with the rest of your files if you place it at the right offset. I've had issues that way, so I stick to the petalinux packager for ease.

 

 

View solution in original post

0 Kudos
5 Replies
bog_dan
Visitor
Visitor
3,438 Views
Registered: ‎02-21-2018

If you have the petalinux tools installed, you can use the petalinux-package command to build a boot.bin file with the kernel image built in without the SDK. You'll still use the SDK to program the flash.

 

petalinux-package --boot --fsbl <FSBL image> --fpga <FPGA bitstream> --u-boot --kernel

You should be able to add the image.ub in the create zynq boot with the rest of your files if you place it at the right offset. I've had issues that way, so I stick to the petalinux packager for ease.

 

 

View solution in original post

0 Kudos
fincs
Adventurer
Adventurer
3,246 Views
Registered: ‎03-21-2016
0 Kudos
abc123wyj
Observer
Observer
3,229 Views
Registered: ‎11-29-2017

hi bog_dan,

 

   thank you for you reply. I use petalinux command to create boot.bin, and program nand flash

petalinux-package --boot --fsbl <FSBL image> --fpga <FPGA bitstream> --u-boot --kernel

   it still shows can't get kernel image

   

   is there any config for linux boot correctly? 

0 Kudos
gudishak
Moderator
Moderator
3,163 Views
Registered: ‎06-27-2017

Hi @abc123wyj,

 

Can you try creating a .bif file  with below syntax and run bootgen command Or you can create boot.bin from SDK tool.

 

the_ROM_image:
{
[bootloader] ./images/linux/zynq_fsbl.elf

./images/linux/download.bit(bitstream file)
./images/linux/u-boot.elf
./images/linux/image.ub
}

 

then try 

bootgen -image newbif.bif -arch zynq -o boot.bin

 

Regards,

Kranthi

 

Best Regards
Kranthi
--------------------------
Don't forget to reply, kudo, and accept as solution.
0 Kudos
abc123wyj
Observer
Observer
3,154 Views
Registered: ‎11-29-2017

thank you for all your reply!

when create boot image in SDK with zynq_fsbl.elf, zynq_wrapper.bit, u-boot.elf, image.ub, I added offset in image.ub. 

The offset calculated from the size of boot.bin add size of bootenv which set in the petalinux-config.

Then the linux can boot correctly!

360截图166107246710978.jpg 

0 Kudos