一、软硬件说明
硬件平台:TI AM335X系类
Linux kernel 版本:linux-3.2.0-psp04.06.00.11
二、修改kernel 的nand ECC校验方式
(1)源文件:
linux-3.2.0-psp04.06.00.11\arch\arm\mach-omap2\board-am335xevm.c
(2)nand 设置ECC校验方式的函数
static void evm_nand_init(int evm_id, int profile)// 函数功能:nand初始化(含有ECC校验设置)
pdata->ecc_opt = OMAP_ECC_BCH8_CODE_HW;
修改 pdata->ecc_opt 的数值(根据用户的实际需要,修改不同的数值),如下
pdata->ecc_opt = OMAP_ECC_HAMMING_CODE_HW;
(4)ECC校验方式说明:
具体 的ECC校验方式,请参考文件: \linux-3.2.0-psp04.06.00.11\arch\arm\plat-omap\include\plat\gpmc.h
以下是ECC校验方式的源码:
enum omap_ecc { /* 1-bit ecc: stored at end of spare area */ OMAP_ECC_HAMMING_CODE_DEFAULT = 0, /* Default, s/w method */ OMAP_ECC_HAMMING_CODE_HW, /* gpmc to detect the error */ /* 1-bit ecc: stored at beginning of spare area as romcode */ OMAP_ECC_HAMMING_CODE_HW_ROMCODE, /* gpmc method & romcode layout */ OMAP_ECC_BCH4_CODE_HW, /* gpmc bch detection & s/w method correction */ OMAP_ECC_BCH8_CODE_HW, /* gpmc bch detection & s/w method correction */ };