TI中文支持网
TI专业的中文技术问题搜集分享网站

请问为何Nand Flash数据正确却不能通过硬件校验

各位高手:

大家好!最近遇到一个问题,想向大家请教。使用Nand Flash存储内核,但是发现运行一段时间,内核启动时就会上报如下错误,导致不能启动:

UncompressingLinux………………………………………………………………………………..

crc error

— System halted

这个问题重烧内核可以解决,但这也不是解决问题的根本方法。

引导程序(armubl-03.20.00.14)中支持对Nand Flash数据进行硬件校验,经过验证,4比特以下错误是可以纠正的。将内核每页数据读取出来,发现和预先写入数据是相同的,但是在校验环节,NANDFSR寄存器上报ECC_STATE为1,表示Errors cannot be corrected (5 or more)。

使用的镁光16比特Flash芯片,页数据大小2048字节,OOB大小64字节,读取每页的ECC,发现所有ECC都变成了FF,通常报错ECC_STATE为1,竟然偶然上报ECC_STATE为2(Error correction complete(errors on bit 8 or 9)),寄存器NANDFSR的ECC_ERRNUM值为3(4 errors found),我真的很无奈,因为此时OOB打印出来仍然是全FF。

关于读取OOB,我使用了三个程序,UBL、NandWriter和uBoot,确实都是FF,而读取其它板子的,确实是正常的。同时板子Flash极易出现比特翻转,大概运行一个月,就会开始出现,使用ECC校验可以解决;但是随后越来越多,最终ECC校验失效,这些问题的出现会不会和板子的硬件电路、时钟配置有关?

请问各位高手有没有遇到过这个问题,明明数据正确,偏偏校验不能通过,请不吝赐教、不胜感激!

Chris Meng:

Peter,

请问你使用的是哪款芯片?

user3877487:

回复 Chris Meng:

您好,我使用OMAPL138,DA850

user3877487:

原来是我的Spare Data完全变成了FF,所以数据正确,却不能校验通过了,不知是真的Spare变成了FF,还是根本读不出来,还需要进一步验证。

赞(0)
未经允许不得转载:TI中文支持网 » 请问为何Nand Flash数据正确却不能通过硬件校验
分享到: 更多 (0)