×
单片机 > 单片机程序设计 > 详情

关于S3C2440 u-boot支持nand hw ecc

发布时间:2021-04-22 发布时间:
|



一开始我是看到了文章1,按照那个代码来修改自己的代码,结果还是不成功,总是在读取的时候出现如下错误。

S3C NAND: ECC uncorrectable errordetected. Not correctable.

NAND read from offset 0 failed -74


1,在写入和读出数据完成时,如果没有锁定NFMECC0寄存器将会更新,为写入或读出的数据的ecc code。

2,写入数据时,只需要读出,NFMECC0,然后存放到spare区。

3,读出数据时,需要将第2步存放到spare区的ecc code读取出来,然后写入NFMECCD0。

在做第3步时,

3.1 NFMECC0中的值是读取之后,计算的读出数据的ecc code。

3.2 nand controller会将写入NFMECCD0的值,与NFMECC0中的值进行比较来计算校验结果,并将结果存入NFESTAT0。

发现关键的操作就在于读取NFMECC0的值,如果读取正确了,校验流程应该是没有问题了。

对比文章1和文章2,在函数中s3c2440_nand_calculate_ecc中,读取NFMECC0方式不一样。

改用文章2的方式,就可以正确读取nand数据了。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM基础知识八