MLC的NAND FLASH ECC ERR问题
CPU用的是S3C2451,和S3C2450没什么区别,BSP用的是S3C2450的,CE6.0,在烧录BOOTLOADER和OS以及启动OS等过程中,只要涉及到ECC的校验就容易出错。用的是MLC的NAND FLASH。
当我把TACLS、TWRPH0、TWRPH1三个值设置成BSP自带的数值时ECC每次都出错,EBOOT和OS根本无法启动。
// Default NAND Flash timing @HCLK 133MHz (tHCLK = 7.5ns)
#define DEFAULT_TACLS(1)// 1 HCLK (7.5ns)
#define DEFAULT_TWRPH0(4)// 5 HCLK (37.5ns)
#define DEFAULT_TWRPH1(1)// 2 HCLK (15ns)
// for ECC decoding with Dummy Data
#define DUMMY_R_TACLS(0)
#define DUMMY_R_TWRPH0(1)
#define DUMMY_R_TWRPH1(1)
// for ECC encoding with Dummy Data
#define DUMMY_W_TACLS(0)
#define DUMMY_W_TWRPH0(0)
#define DUMMY_W_TWRPH1(0)
---------------------------------------------
而当我把以上9个值都设置成最大值7的时候,ECC出错的问题才能得到一定的改善,但是偶尔仍然会出错导致无法启动OS,7已经是寄存器能够设置的最大值。
在另一个产品中用的是S3C2416,使用同样的MLC NAND FLASH,CE5.0,用BSP自带的数值就不会有错。
所以麻烦大家指点一下可能是什么原因。
硬件上可能会导致这样的问题,但是估计不会这么严重,是否其它的一些寄存器配置还需要注意呢?比如一些时钟配置之类的?
谢谢!
[解决办法]
有情帮顶,这个一个好贴。
[解决办法]
这个东西估计你只能认真的看芯片的数据手册了,至于你的现象,我觉得应该和硬件没有太大关系,估计主要还是设置的问题。
[解决办法]
NANDFLASH驱动是用的微软自带的方案吗?
[解决办法]
你的BSP是支持MLC的吗?
[解决办法]
BSP不支持MLC FLASH,支持的话不会有这些错误
[解决办法]
检查一下各方面电压是否正常吧。供电、读写信号等。
[解决办法]
上面的参数是和FCLK,HCLK有关的,而且是基于HCLK和nandflash的参数来计算出来的。
[解决办法]