아래 로고는 제 임베디드 보드 AT91SAM9M10G-45EK 보드의 로그 입니다.

현재 NAND 플래쉬를 이용해서 커널을 부팅 하려고 하는데 아래와 같이

NAND read에서 ERROR가 발생했으며, Bad CRC가 발생해서 커널을 로드하지 못하고 있습니다.

제가 현재 파티션을 bootargs에 나온 것처럼... 아래 테이블 처럼..해당 주소에 bootloader, u-boot, kernel, file system(jffs2)를

넣어 놨으며 u-booot bootargs도 이 테이블에 맞춰서...

bootargs=console=ttyS0,115200 root=/dev/mtdblock5 mtdparts=at91_nand:128k(bootstrap)ro,256k(uboot)ro,128k(env1)ro,128k(env2)ro,2M(linux),-(root) rw rootfstype=jffs2

위와 같이 넣어 놨습니다.

 

table.jpg

 

그런데 uboot에서 커널을 로드할 때 왜 이런 에러가 발생하는지 도저히 모르겠네요 ㅠㅠ;

고수님들의 친절한 답변 부탁드립니다. (혹시 힌트라도 아시면 덧글 부탁드립니다.)

 

===================================U-BOOT LOG ==========================================
U-Boot 1.3.4 (Mar 15 2012 - 14:09:40)

DRAM: 128 MB
NAND: 256 MiB
No Valid Environment Area Found
*** Warning - bad CRC or NAND, using default environment

In: serial
Out: serial
Err: serial
Net: macb0
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0x41e1)
Hit any key to stop autoboot: 0

NAND read: device 0 offset 0xa0000, size 0x200000
2097152 bytes read: ERROR

<== 단지 NAND read에서 왜? 에러가 발생하는 건지 모르겠네요 NAND가 128KB단위기 때문에 문제가 없는데...
## Booting kernel from Legacy Image at 22000000 ...
Image Name: Linux-2.6.30
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1756420 Bytes = 1.7 MB
Load Address: 70008000
Entry Point: 70008000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!

U-Boot> print
bootargs=console=ttyS0,115200 root=/dev/mtdblock5 mtdparts=at91_nand:128k(bootstrap)ro,256k(uboot)ro,128k(env1)ro,128k(env2)ro,2M(linux),-(root) rw rootfstype=jffs2
bootcmd=nand read 0x22000000 0xA0000 0x200000; bootm
bootdelay=3
baudrate=115200
ethaddr=02:80:ae:20:60:6f
ipaddr=192.168.1.252
serverip=192.168.1.246
netmask=255.255.255.0
ethact=macb0

Environment size: 351/131067 bytes

안되니 제가 강제로 uImage를 RAM으로 읽어 와서 아래와 같이 부팅을 하면 잘 됩니다. ㅠㅠ;

그런데 왜? NAND FLASH에 있는

OS를 부팅 하려면 안되는지...무슨 저장할 때 먼가 있는건지 ..............................

================================================================
U-Boot> t 0x22000000 uImage
macb0: link up, 100Mbps full-duplex (lpa: 0x41e1)
Using macb0 device
TFTP from server 192.168.1.246; our IP address is 192.168.1.252
Filename 'uImage'.
Load address: 0x22000000
Loading: #################################################################
#######################################################
done
Bytes transferred = 1756484 (1acd44 hex)
U-Boot> bootm 0x22000000

혹시나 해서 보드의 셋업 코드의 파티션 나누는 부분도 아래와 같이 설정했습니다.

=================== 커널 셋업 코드 ================================

setup.jpg