0
votes

Actually i am trying to boot linux on mine Zedboard(having zync SoC with ARM cortex-A9 processor). But getting no success. Here i will share the story till now:-

1- I have done first partition of mine SD card and given it name Boot and i copied following things here:-

BOOT.bin

uEnv.txt

devicetree.dtb

uImage

uramdisk.image.gz

2- Now i am trying to boot it from SD card but it is not happening and i am getting the following message. In this message i have highlighted the error message specially along with other relevant message that i have got in mine tty terminal.

U-Boot 2014.01 (Oct 08 2016 - 12:33:09) 

I2C:   ready

Memory: ECC disabled

DRAM:  512 MiB

MMC:   zynq_sdhci: 0

SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB

*** Warning - bad CRC, using default environment



In:    serial

Out:   serial

Err:   serial

Net:   Gem.e000b000

Hit any key to stop autoboot:  3  2  1  0 

Device: zynq_sdhci

Manufacturer ID: 27

OEM: 5048

Name: SD04G

Tran Speed: 50000000

Rd Block Len: 512

SD version 3.0

High Capacity: Yes

Capacity: 3.7 GiB

Bus Width: 4-bit

reading uEnv.txt

226 bytes read in 7 ms (31.3 KiB/s)

Loaded environment from uEnv.txt

Importing environment from SD ...

Running uenvcmd ...

Device: zynq_sdhci

Manufacturer ID: 27

OEM: 5048

Name: SD04G

Tran Speed: 50000000

Rd Block Len: 512

SD version 3.0

High Capacity: Yes

Capacity: 3.7 GiB

Bus Width: 4-bit

reading uImage

4150864 bytes read in 399 ms (9.9 MiB/s)

reading devicetree.dtb

9275 bytes read in 16 ms (565.4 KiB/s)

reading uramdisk.image.gz

18047061 bytes read in 1698 ms (10.1 MiB/s)

**Wrong Image Format for bootm command**

**ERROR: can't get kernel image!**

Copying Linux from SD to RAM...

reading uImage

4150864 bytes read in 399 ms (9.9 MiB/s)

reading devicetree.dtb

9275 bytes read in 16 ms (565.4 KiB/s)

reading uramdisk.image.gz

18047061 bytes read in 1698 ms (10.1 MiB/s)

**Wrong Image Format for bootm command**

**ERROR: can't get kernel image!**

zynq-uboot> 

3- The content of mine uenv.txt file is as follows:-

boot_Zed=mmcinfo;fatload mmc 0 0x3000000 ${kernel_image}; fatload mmc 0 0x2A00000 ${devicetree_image}; fatload mmc 0 0x2000000 ${ramdisk_image}; bootm 0x3000000 0x2000000 0x2A00000
uenvcmd=run boot_Zed 

4- I have created the ramdiskimage by following command:-

mkimage -A ARM -T ramdisk -C gzip -n 'ZED filesystem' -d ramdisk.image.gz uramdisk.image.gz

Upon execution of above command i got the following message:-

Image Name:   ZED filesystemCreated: 

Mon Oct 24 10:40:13 2016

Image Type:   ARM Linux RAMDisk Image (gzip compressed)

Data Size:    18046997 Bytes = 17624.02 kB = 17.21 MB

Load Address: 00000000

Entry Point:  00000000

5- So Here is my printenv list as requested in the comments:-

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_size=0x20000

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 0x3000000 ${kernel_image} && tftpboot 0x2A00000 ${devicetree_image} && tftpboot 0x2000000 ${ramdisk_image} && bootm 0x3000000 0x2000000 0x2A00000

kernel_image=uImage

kernel_size=0x500000

loadbit_addr=0x100000

loadbootenv=fatload mmc 0 ${loadbootenv_addr} ${bootenv}

loadbootenv_addr=0x2000000

mmc_loadbit_fat=echo Loading bitstream from SD/MMC/eMMC to RAM.. && mmcinfo && fatload mmc 0 ${loadbit_addr} ${bitstream_image} && fpga load 0 ${loadbit_addr} ${filesize}

modeboot=sdboot

nandboot=echo Copying Linux from NAND flash to RAM... && nand read 0x3000000 0x100000 ${kernel_size} && nand read 0x2A00000 0x600000 ${devicetree_size} && echo Copying ramdisk... && nand read 0x2000000 0x620000 ${ramdisk_size} && bootm 0x3000000 0x2000000 0x2A00000

norboot=echo Copying Linux from NOR flash to RAM... && cp.b 0xE2100000 0x3000000 ${kernel_size} && cp.b 0xE2600000 0x2A00000 ${devicetree_size} && echo Copying ramdisk... && cp.b 0xE2620000 0x2000000 ${ramdisk_size} && bootm 0x3000000 0x2000000 0x2A00000

qspiboot=echo Copying Linux from QSPI flash to RAM... && sf probe 0 0 0 && sf read 0x3000000 0x100000 ${kernel_size} && sf read 0x2A00000 0x600000 ${devicetree_size} && echo Copying ramdisk... && sf read 0x2000000 0x620000 ${ramdisk_size} && bootm 0x3000000 0x2000000 0x2A00000

ramdisk_image=uramdisk.image.gz

ramdisk_size=0x5E0000

rsa_jtagboot=echo TFTPing Image to RAM... && tftpboot 0x100000 ${boot_image} && zynqrsa 0x100000 && bootm 0x3000000 0x2000000 0x2A00000

rsa_nandboot=echo Copying Image from NAND flash to RAM... && nand read 0x100000 0x0 ${boot_size} && zynqrsa 0x100000 && bootm 0x3000000 0x2000000 0x2A00000

rsa_norboot=echo Copying Image from NOR flash to RAM... && cp.b 0xE2100000 0x100000 ${boot_size} && zynqrsa 0x100000 && bootm 0x3000000 0x2000000 0x2A00000

rsa_qspiboot=echo Copying Image from QSPI flash to RAM... && sf probe 0 0 0 && sf read 0x100000 0x0 ${boot_size} && zynqrsa 0x100000 && bootm 0x3000000 0x2000000 0x2A00000

rsa_sdboot=echo Copying Image from SD to RAM... && fatload mmc 0 0x100000 ${boot_image} && zynqrsa 0x100000 && bootm 0x3000000 0x2000000 0x2A00000

sdboot=if mmcinfo; then run uenvboot; echo Copying Linux from SD to RAM... && fatload mmc 0 0x3000000 ${kernel_image} && fatload mmc 0 0x2A00000

${devicetree_image} && fatload mmc 0 0x2000000 ${ramdisk_image} && bootm 0x3000000 0x2000000 0x2A00000; fi

serverip=10.10.70.101

stderr=serial

stdin=serial

stdout=serial

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... && fatload usb 0 0x3000000 ${kernel_image} && fatload usb 0 0x2A00000 ${devicetree_image} && fatload usb 0 0x2000000 ${ramdisk_image} && bootm 0x3000000 0x2000000 0x2A00000; fi

Environment size: 3368/131068 bytes

So based on mine above information please can u please tell/suggest me the solution of mine problem.

1
You need to stop the autoboot, and print out the environment variables of U-Boot. - sawdust
Thanks for reply.Actually i have done it just now. Please tell me what should i look for in this environmental variables to get a grip on mine problem. - aditya kumar chaudhary
So edit your post, and show the output of the printenv command so the complete U-Boot environment is reported. - sawdust
I have added mine printenv variables. Please have a look. - aditya kumar chaudhary
Newer u-boot (2012+) support bootz which is probably easier to use. - artless noise

1 Answers

0
votes

You have not passed a load address to mkimage. Try to add -a 0x2000000 parameter to it. Also -C gzip parameter may be wrong because you take input file that is already compressed. Try to use -C none instead.