如果flash 容易出现ECC 校验错误导致wince 系统不启动,有可能是
发布时间:2020-12-15 07:09:42 所属栏目:百科 来源:网络整理
导读:问题现象,不是所有机器都这样的。有一批机器是这样,客户用了一段时间就不启动了,甚至有些在仓库放一段时间就不动了,后来回来拆机发现很多ecc 错误。 这个机器已经量产了有一年多,以前卖很多都没有问题。现在突然频繁出现,超过30% 的机器会出现。 首先
问题现象,不是所有机器都这样的。有一批机器是这样,客户用了一段时间就不启动了,甚至有些在仓库放一段时间就不动了,后来回来拆机发现很多ecc 错误。 这个机器已经量产了有一年多,以前卖很多都没有问题。现在突然频繁出现,超过30% 的机器会出现。 首先怀疑是来料问题,因为别的一个同CPU的机器不会,果然换掉nandflash 就不会了,出问题的机器换到不出问题的机器也会有这种现象。 所以第一步是换料 第二步是重新格式化整个flash,把坏块处理一下。 是否也有一些是硬件原因呢? 这个帖子里面说的现象和我的太像了,虽然我的是SLC nandflash http://topic.csdn.net/u/20100709/11/74da915c-d800-404e-bd5f-f6a996c3099c.html?seed=1778424306&r=79669232#r_79669232 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自带的数值就不会有错。 所以麻烦大家指点一下可能是什么原因。 硬件上可能会导致这样的问题,但是估计不会这么严重,是否其它的一些寄存器配置还需要注意呢?比如一些时钟配置之类的? 谢谢! 结帖了,是VDD_SRAM的电压不足导致的,因为NAND相应的读写控制信号是GPA,而GPA的相应电压与VDD_SRAM有关。 这位兄弟的现象和我的很像,现在先测试一下看是否对先。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |