主题 : 分析一下tiny210v2的16bitECC校验(已经实现u-boot for tiny210v2) 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 62235
精华: 0
发帖: 51
金钱: 255 两
威望: 51 点
贡献值: 0 点
综合积分: 102 分
注册时间: 2012-01-18
最后登录: 2015-08-28
20楼  发表于: 2013-06-27 14:54
感谢楼主
级别: 新手上路
UID: 94028
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
贡献值: 0 点
综合积分: 38 分
注册时间: 2013-07-07
最后登录: 2015-06-08
21楼  发表于: 2013-07-07 16:59
谢谢楼主
级别: 新手上路
UID: 78664
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
贡献值: 0 点
综合积分: 34 分
注册时间: 2012-09-23
最后登录: 2016-05-01
22楼  发表于: 2013-07-09 09:36
谢谢lz分享
级别: 新手上路
UID: 94470
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
贡献值: 0 点
综合积分: 20 分
注册时间: 2013-07-17
最后登录: 2013-08-09
23楼  发表于: 2013-07-17 22:55
引用第1楼mindee于2013-06-05 17:51发表的  :
不错,厉害!
级别: 新手上路
UID: 21909
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
贡献值: 0 点
综合积分: 44 分
注册时间: 2010-05-23
最后登录: 2016-01-22
24楼  发表于: 2013-07-18 13:02
谢楼主分享
简单也是一种美
级别: 新手上路
UID: 417
精华: 0
发帖: 26
金钱: 140 两
威望: 26 点
贡献值: 0 点
综合积分: 52 分
注册时间: 2008-03-29
最后登录: 2013-12-07
25楼  发表于: 2013-07-21 10:15
谢谢分享
级别: 新手上路
UID: 11846
精华: 0
发帖: 39
金钱: 195 两
威望: 39 点
贡献值: 0 点
综合积分: 78 分
注册时间: 2009-12-22
最后登录: 2014-02-12
26楼  发表于: 2013-07-23 16:01

 回 25楼(long_ming) 的帖子

楼主,这个U-BOOT不能起动内核呀!~
级别: 新手上路
UID: 93759
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
贡献值: 0 点
综合积分: 40 分
注册时间: 2013-06-30
最后登录: 2014-03-26
27楼  发表于: 2013-07-23 16:30
看看
级别: 新手上路
UID: 93759
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
贡献值: 0 点
综合积分: 40 分
注册时间: 2013-06-30
最后登录: 2014-03-26
28楼  发表于: 2013-07-23 19:12

 回 2楼(kangear) 的帖子

楼主说oob区翻转会导致出现错误的校正,这与我做的测试不符。
也和手册里的描述不符:
The parity codes have self-correctable information including parity code itself.

大致看了下楼主的代码,发现了问题所在。

手册中对翻转位置寄存器的描述如下
MLC ECC Error Byte Location Status Register (NFECCERL0~7, R, Address = 0xB0E2_00C0 ~ 0xB0E2_00DC)
ErrByteLoc1
[9:0]
Error byte location of 1st bit error
0x000

可以看到手册里描述的 ErrByteLoc 长度是10位,也就是Mask应该是0x3FF, 而楼主代码中用的mask为0x1FF。
这会有什么问题呢?

这个ECC引擎,不仅用来纠正数据错误,也用来纠正ECC错误,如果ECC本身发生翻转,ErrByteLoc 就会指向出错的ECC字节。
楼主用的这个MASK,屏蔽掉了最高1位,当数据长度为512时,导致把指向ECC的位置误认为指向数据的位置。
在ECC出错时错误地纠正了数据,这才出现了楼主描述的这种奇怪的现象。
                             ErrByteLoc
                                           |
                                          V
0 1 2 。。。 511 |  ECC0 ECC1 。。。 ECCLast
    DATA                             ECC
级别: 新手上路
UID: 11846
精华: 0
发帖: 39
金钱: 195 两
威望: 39 点
贡献值: 0 点
综合积分: 78 分
注册时间: 2009-12-22
最后登录: 2014-02-12
29楼  发表于: 2013-07-24 15:10
有朋友放出一个U-BOOT支持16bit ecc写的吗?!~