AnsweredAssumed Answered

Error message "Verifying Checksum ... Bad Data CRC" appears when uboot load linux kernel

Question asked by Eddy Liu on Apr 1, 2014
Latest reply on Aug 4, 2014 by Yuri Muhin

Hi Guys,

I add initramfs(based on busy box) in linux kernel compiling. uImage becomes bigger than default(no initramfs support):

uImage.PNG.png

Error message generates in the process of downloading uboot and kernel image using Mfgtools:

 

Header 1

 

 

 

 

U-Boot 2009.08 (Aug 16 2013 - 15:02:51)

 

 

CPU: Freescale i.MX6 family TO1.1 at 792 MHz

Thermal sensor with ratio = 188

Temperature:   39 C, calibration data 0x5a34e87d

mx6q pll1: 792MHz

mx6q pll2: 528MHz

mx6q pll3: 480MHz

mx6q pll8: 50MHz

ipg clock     : 66000000Hz

ipg per clock : 66000000Hz

uart clock    : 80000000Hz

cspi clock    : 60000000Hz

ahb clock     : 132000000Hz

axi clock   : 198000000Hz

emi_slow clock: 99000000Hz

ddr clock     : 396000000Hz

usdhc1 clock  : 198000000Hz

usdhc2 clock  : 198000000Hz

usdhc3 clock  : 198000000Hz

usdhc4 clock  : 198000000Hz

nfc clock     : 24000000Hz

Board: i.MX6DL/Solo-SABRESD: unknown-board Board: 0x61011 [POR ]

Boot Device: MMC

I2C:   ready

DRAM:  512 MB

MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3

Using default environment

 

 

In:    serial

Out:   serial

Err:   serial

Net:   got MAC address from IIM: 00:00:00:00:00:00

FEC0 [PRIME]

Hit any key to stop autoboot:  0

## Booting kernel from Legacy Image at 10800000 ...

   Image Name:   Linux-3.0.35-2508-g54750ff

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    9181376 Bytes =  8.8 MB

   Load Address: 10008000

   Entry Point:  10008000

   Verifying Checksum ... Bad Data CRC

ERROR: can't get kernel image!

MX6Solo SABRESD-MFG U-Boot >

 

 

 

 

 

 

 

uboot environment:

Header 1

MX6Solo SABRESD-MFG U-Boot > printenv

bootargs=console=ttymxc0,115200 rdinit=/linuxrc enable_wait_mode=off nosmp

bootcmd=bootm 0x10800000 0x10c00000

bootdelay=0

baudrate=115200

ipaddr=192.168.1.103

serverip=192.168.1.101

netmask=255.255.255.0

loadaddr=0x10800000

rd_loadaddr=(0x10800000 + 0x300000)

netdev=eth0

ethprime=FEC0

uboot=u-boot.bin

kernel=uImage

stdin=serial

stdout=serial

stderr=serial

ethact=FEC0

 

 

Environment size: 371/131068 bytes

 

I enlarged parameter rd_loadaddr, which is 10 times than before:

Header 1

MX6Solo SABRESD-MFG U-Boot > set rd_loadaddr (0x10800000+0x1E00000)

MX6Solo SABRESD-MFG U-Boot > printenv

bootargs=console=ttymxc0,115200 rdinit=/linuxrc enable_wait_mode=off nosmp

bootcmd=bootm 0x10800000 0x10c00000

bootdelay=0

baudrate=115200

ipaddr=192.168.1.103

serverip=192.168.1.101

netmask=255.255.255.0

loadaddr=0x10800000

netdev=eth0

ethprime=FEC0

uboot=u-boot.bin

kernel=uImage

stdin=serial

stdout=serial

stderr=serial

ethact=FEC0

rd_loadaddr=(0x10800000+0x1E00000)

 

 

Environment size: 370/131068 bytes

 

But still same error appears:

Header 1

MX6Solo SABRESD-MFG U-Boot > boot

## Booting kernel from Legacy Image at 10800000 ...

   Image Name:   Linux-3.0.35-2508-g54750ff

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    9181376 Bytes =  8.8 MB

   Load Address: 10008000

   Entry Point:  10008000

   Verifying Checksum ... Bad Data CRC

ERROR: can't get kernel image!

Outcomes