uboot 移植出现Verifying Checksum ... Bad Data CRC
橘色的喵 2011-02-23 10:00:19 移植uboot时,将内核通过tftp下载到内存可以正常启动.
可是当我尝试将内核烧写到nandflash时,就出现了Verifying Checksum ... Bad Data CRC的错误,我想应该是没有读到内核或者只读到了部分内核.
我是参考 牛人"黄刚"的日志来做的,用的开发板完全和他的一样.我也试过完全按照他的博客日志来做,可是还是起不来.很是苦恼,哪位GG知道的,恳请指点一下,不胜感激...
黄刚的日志:http://blogold.chinaunix.net/u3/101649/showart_2126764.html
有关信息如下:
====================================================================================
环境变量:
[MY2440]#printenv
bootdelay=3
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
ethact=dm9000
filesize=1D2D34
fileaddr=30008000
gatewayip=192.168.1.1
netmask=255.255.255.0
ipaddr=192.168.1.105
serverip=192.168.1.2
stdin=serial
stdout=serial
stderr=serial
bootcmd=nand read 0x30008000 0x50000 0x00200000;bootm 0x30008000
Environment size: 294/65532 bytes
================================================================================
正常启动信息:
[MY2440]#bootm 0x30008000
## Booting kernel from Legacy Image at 30008000 ...
Image Name: linux-2.6.30.4
Created: 2011-02-22 1:47:22 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1912052 Bytes = 1.8 MB
Load Address: 30008000
Entry Point: 30008040
Verifying Checksum ... OK
XIP Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux.............................................................
............................................................. done, booting the
kernel.
Linux version 2.6.30.4 (root@stallion) (gcc version 4.4.3 (ctng-1.6.1) ) #4 Mon
Feb 21 09:47:01 CST 2011
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=00007177
CPU: VIVT data cache, VIVT instruction cache
Machine: SMDK2440
Warning: bad configuration page, trying to continue
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
====================================================================
再次将内核镜像拷贝到内存,擦除nandflash并将内核写到nandflash
[MY2440]#tftp 0x30008000 uImage.img
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
operating at unknown: 0 mode
Using dm9000 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.105
Filename 'uImage.img'.
Load address: 0x30008000
Loading: T T #T ################################################################
#################################################################
#
done
Bytes transferred = 1912116 (1d2d34 hex)
[MY2440]#nand erase 0x50000 0x200000
NAND erase: device 0 offset 0x50000, size 0x200000
Erasing at 0x2 -- 2408448% complete.ete.
OK
[MY2440]#nand write 0x30008000 0x50000 0x200000
NAND write: device 0 offset 0x50000, size 0x200000
Writing at 0x4000 -- 2097152 bytes written: OK
=========================================================================
重新启动开发板时,信息为:
U-Boot 2009.08 ( 2鏈?16 2011 - 17:32:06)
DRAM: 64 MB
Flash: 0 kB
NAND: NAND_ECC_NONE selected by board driver. This is not recommended !!
64 MiB
In: serial
Out: serial
Err: serial
Net: dm9000
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x50000, size 0x200000
2097152 bytes read: OK
## Booting kernel from Legacy Image at 30008000 ...
Image Name: linux-2.6.30.4
Created: 2011-02-22 1:47:22 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1912052 Bytes = 1.8 MB
Load Address: 30008000
Entry Point: 30008040
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!