之前使用的flash是1bit/512,现在换成4bit/512的flash,容量不变.
对于ecc选择使用BCH8
uboot (U-Boot SPL 2011.09)中修改如下
board_nand_init
-> ti81xx_nand_switch_ecc(NAND_ECC_HW, 0)改成ti81xx_nand_switch_ecc(NAND_ECC_HW, 2)
->__ti81xx_nand_switch_ecc
->nand->ecc.mode = NAND_ECC_HW_SYNDROME;改成 nand->ecc.mode = NAND_ECC_HW;
kernel中
board_am335xevm.c
evm_nand_init
-> pdata->ecc_opt =OMAP_ECC_HAMMING_CODE_DEFAULT; 改成 pdata->ecc_opt =OMAP_ECC_BCH8_CODE_HW;
nandflash烧录MLO uboot uImage rootfs时候全部指定nandecc hw 2
启动的时候打印如下信息
NAND read: device 0 offset 0x280000, size 0x300000
NAND read from offset 280000 failed -74
0 bytes read: ERROR
## Booting kernel from Legacy Image at 80200000 ...
Image Name: Linux-3.2.0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2691656 Bytes = 2.6 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
请帮忙分析一下原因.