[meta-xilinx] Problem with generating uImage via meta-xilinx

Nathan Rossi nathan at nathanrossi.com
Fri Jul 10 04:07:12 PDT 2015


On Fri, Jul 10, 2015 at 8:26 PM, avallash <avallash at o2.pl> wrote:
> Hi,
> I am trying to run linux on zc706 xilinx dev board and I get this error
> while u-boot tries to boot uImage:
>
> Board:  Xilinx Zynq
> I2C:   ready
> DRAM:  ECC disabled 1 GiB
> MMC:   zynq_sdhci: 0
> SF: Detected S25FL128S_64K with page size 512 Bytes, erase size 128 KiB,
> total 32 MiB
> *** Warning - bad CRC, using default environment
>
> In:    serial
> Out:   serial
> Err:   serial
> Board:  Xilinx Zynq
> Net:   Gem.e000b000
> Hit any key to stop autoboot:  0
> Copying Linux from QSPI flash to RAM...
> SF: Detected S25FL128S_64K with page size 512 Bytes, erase size 128 KiB,
> total 32 MiB
> SF: 5242880 bytes @ 0x100000 Read: OK
> SF: 131072 bytes @ 0x600000 Read: OK
> Copying ramdisk...
> SF: 6160384 bytes @ 0x620000 Read: OK
> Wrong Image Format for bootm command
> ERROR: can't get kernel image!
> zynq-uboot> <INTERRUPT>
> zynq-uboot>
>

It looks like the uImage is correct and the partitioning and addresses are fine.

Can you confirm whether or not the expected content was actually
stored into the QSPI flash correctly? you should be able to do with
with a mix of iminfo and md in u-boot.

e.g. load the kernel section of flash into memory and do iminfo (to
see if it is correctly read and that u-boot sees it as a image), if
not use md to dump the memory and see whether it looks correct or not.

Regards,
Nathan

>
> I am using fsbl from petalinux, u-boot from meta-xilinx (u-boot-xlnx) and
> building core-image-minimal and core-image-minimal-initramfs
> yocto version poky-dizzy-12.0.2
>
> I think uImage header is correct:
>
> 00000000   27 05 19 56  AA D0 FC AC  55 9B EB 70  00 30 46 E8
> '..V....U..p.0F.
> 00000010   00 00 80 00  00 00 80 00  92 CC BB 0D  05 02 02 00
> ................
> 00000020   4C 69 6E 75  78 2D 33 2E  31 34 2E 32  2D 78 69 6C
> Linux-3.14.2-xil
> 00000030   69 6E 78 00  00 00 00 00  00 00 00 00  00 00 00 00
> inx.............
>
>
> What am I missing? Can someone point me to materials that can help me fix
> this issue? Was this problem addressed in the past?
>
> printenv:
>
> zynq-uboot> printenv
> baudrate=115200
> bitstream_image=system.bit.bin
> boot_image=BOOT.bin
> boot_size=0xF00000
> bootcmd=run $modeboot
> bootdelay=3
> bootenv=uEnv.txt
> devicetree_image=devicetree.dtb
> devicetree_load_address=0x2000000
> devicetree_size=0x20000
> dfu_mmc=run dfu_mmc_info && dfu 0 mmc 0
> dfu_mmc_info=set dfu_alt_info ${kernel_image} fat 0 1\\;${devicetree_image}
> fat 0 1\\;${ramdisk_image} fat 0 1
> dfu_ram=run dfu_ram_info && dfu 0 ram 0
> dfu_ram_info=set dfu_alt_info ${kernel_image} ram 0x3000000
> 0x500000\\;${devicetree_image} ram 0x2A00000 0x20000\\;${ramdisk_image} ram
> 0x2000000 0x600000
> ethact=Gem.e000b000
> ethaddr=00:0a:35:00:01:22
> fdt_high=0x20000000
> importbootenv=echo Importing environment from SD ...; env import -t
> ${loadbootenv_addr} $filesize
> initrd_high=0x20000000
> ipaddr=10.10.70.102
> jtagboot=echo TFTPing Linux to RAM... && tftpboot ${kernel_load_address}
> ${kernel_image} && tftpboot ${devicetree_load_address} ${devicetree_image}
> && tftpboot ${ramdisk_load_address} ${ramdisk_image} && bootm
> ${kernel_load_addres
> s} ${ramdisk_load_address} ${devicetree_load_address}
> kernel_image=uImage
> kernel_load_address=0x2080000
> kernel_size=0x500000
> loadbit_addr=0x100000
> loadbootenv=load mmc 0 ${loadbootenv_addr} ${bootenv}
> loadbootenv_addr=0x2000000
> mmc_loadbit=echo Loading bitstream from SD/MMC/eMMC to RAM.. && mmcinfo &&
> load mmc 0 ${loadbit_addr} ${bitstream_image} && fpga load 0 ${loadbit_addr}
> ${filesize}
> modeboot=qspiboot
> nandboot=echo Copying Linux from NAND flash to RAM... && nand read
> ${kernel_load_address} 0x100000 ${kernel_size} && nand read
> ${devicetree_load_address} 0x600000 ${devicetree_size} && echo Copying
> ramdisk... && nand read ${ramdis
> k_load_address} 0x620000 ${ramdisk_size} && bootm ${kernel_load_address}
> ${ramdisk_load_address} ${devicetree_load_address}
> norboot=echo Copying Linux from NOR flash to RAM... && cp.b 0xE2100000
> ${kernel_load_address} ${kernel_size} && cp.b 0xE2600000
> ${devicetree_load_address} ${devicetree_size} && echo Copying ramdisk... &&
> cp.b 0xE2620000 ${ramdisk_
> load_address} ${ramdisk_size} && bootm ${kernel_load_address}
> ${ramdisk_load_address} ${devicetree_load_address}
> preboot=if test $modeboot = sdboot && env run sd_uEnvtxt_existence_test;
> then if env run loadbootenv; then env run importbootenv; fi; fi;
> qspiboot=echo Copying Linux from QSPI flash to RAM... && sf probe 0 0 0 &&
> sf read ${kernel_load_address} 0x100000 ${kernel_size} && sf read
> ${devicetree_load_address} 0x600000 ${devicetree_size} && echo Copying
> ramdisk... && sf r
> ead ${ramdisk_load_address} 0x620000 ${ramdisk_size} && bootm
> ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
> ramdisk_image=uramdisk.image.gz
> ramdisk_load_address=0x4000000
> ramdisk_size=0x5E0000
> rsa_jtagboot=echo TFTPing Image to RAM... && tftpboot 0x100000 ${boot_image}
> && zynqrsa 0x100000 && bootm ${kernel_load_address} ${ramdisk_load_address}
> ${devicetree_load_address}
> rsa_nandboot=echo Copying Image from NAND flash to RAM... && nand read
> 0x100000 0x0 ${boot_size} && zynqrsa 0x100000 && bootm
> ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
> rsa_norboot=echo Copying Image from NOR flash to RAM... && cp.b 0xE2100000
> 0x100000 ${boot_size} && zynqrsa 0x100000 && bootm ${kernel_load_address}
> ${ramdisk_load_address} ${devicetree_load_address}
> rsa_qspiboot=echo Copying Image from QSPI flash to RAM... && sf probe 0 0 0
> && sf read 0x100000 0x0 ${boot_size} && zynqrsa 0x100000 && bootm
> ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
> rsa_sdboot=echo Copying Image from SD to RAM... && load mmc 0 0x100000
> ${boot_image} && zynqrsa 0x100000 && bootm ${kernel_load_address}
> ${ramdisk_load_address} ${devicetree_load_address}
> sd_uEnvtxt_existence_test=test -e mmc 0 /uEnv.txt
> sdboot=if mmcinfo; then run uenvboot; echo Copying Linux from SD to RAM...
> && load mmc 0 ${kernel_load_address} ${kernel_image} && load mmc 0
> ${devicetree_load_address} ${devicetree_image} && load mmc 0
> ${ramdisk_load_address} ${r
> amdisk_image} && bootm ${kernel_load_address} ${ramdisk_load_address}
> ${devicetree_load_address}; fi
> serverip=10.10.70.101
> stderr=serial
> stdin=serial
> stdout=serial
> thor_mmc=run dfu_mmc_info && thordown 0 mmc 0
> thor_ram=run dfu_ram_info && thordown 0 ram 0
> uenvboot=if run loadbootenv; then echo Loaded environment from ${bootenv};
> run importbootenv; fi; if test -n $uenvcmd; then echo Running uenvcmd ...;
> run uenvcmd; fi
> usbboot=if usb start; then run uenvboot; echo Copying Linux from USB to
> RAM... && load usb 0 ${kernel_load_address} ${kernel_image} && load usb 0
> ${devicetree_load_address} ${devicetree_image} && load usb 0
> ${ramdisk_load_address}
>  ${ramdisk_image} && bootm ${kernel_load_address} ${ramdisk_load_address}
> ${devicetree_load_address}; fi
>
> Environment size: 4831/131068 bytes
>
>
>
>
> --
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx
>



More information about the meta-xilinx mailing list