- 10
- 0
- 约1.07万字
- 约 13页
- 2023-02-20 发布于上海
- 举报
.
DDR内存子系统常见硬件错误及Uboot中检测流程
在 U-Boot中,Denx(U-Boot的开发商)针对常见的DDR
内存故障进行了严格的检测处理,下图描述了该检测处理过程的
三个步骤:检测数据线、地址线和DDR物理存储部件,主要涉
及这三个步骤的处理过程和方法,对于DDR子系统,是很容易
出故障并且是很难debug检测出来的,而Denx所针对 DDR
内存故障设计的检测方法是非常严谨,值得学习研究的。
.
.
下面主要是相关的检测处理思路及问题:
.
.
1、为什么先检测数据线?
因为如果数据线是断开的,那么一切无从谈起!接下来是检测地
址线,只有数据线和地址线都通过,检测内存的存储单元才有意
义,这样的流程也利于分割定位问题。上面testing sequence
框图将整个检测过程分成三大步,用三个虚线方框表示。
2、数据线的连接错误
数据线的连接可能存在两种错误,一种是被断开,另一种布线或
生产造成互相短路。
3、如何检测数据线的连接错误
Denx 设计的数据线检测算法还是很Tricky 和精秒的,整个处
理流程如下例子:如果是两根数据线,只需要写入并读出一个
pattern=0b01 (0b 开头表示二进制数)就能判断它们是否短
路或断开。很明显,大部分的嵌入式平台不止两根数据线,我们
以64 位地址线为例,pattern = 0
能检测出奇偶位之间的数据错误。如果这个错误被排除,每两根
数据线组成一组(这是理解下一个pattern 的关键),再用相同
的办法,检测每相邻两组之间是否有短路,就得到第二个
.
.
pattern,就是 0b110011001100 依次类推,以4 根数
据线为一组,8 根线为一组,相继得到共6 个pattern,分别是
0xaaaaaaaaaaaaaaaa,0xcccccccccccccccc,
0xf0f0f0f0f0f0f0f0,0xff00ff00ff00ff00,
0xffff0000ffff0000,0xfffffff只要相继写入并读
出这6 个pattern 就能验证是否存在数据线交叉短路错误。
4、如何检测数据线与板上其它信号线交叉短路或断路
取以上6 个pattern 的反码,总共12 个pattern 就能检测到每
一位都可以写入和读出0 和 1。
5、什么是floating buses 错误
floating buses 会“欺骗”测试软件,如果测试软件写入并很快读
出一个值的时候,写操作会给数据线上的电容充电,总线会短暂
的保持它的状态。当测试软件读操作时,总线会返回刚写入的值,
即使实际上该数据线是断路的。
6、如何检测数据线的floating buses 错误
.
.
检测floating buses 错误的算法不复杂,在写入和读回之间再
插入一次对不同地址写入不同值的操作。例如,X 写入X1 位置,Y
写入Y1 位置,再从X1 位置读出X 值则表示floating buses 错
误不存在。
7、地址线的错误
如果地址线存在错误,其症状是地址空间中的两个不同位置被映
射到同一物理存储位置。更通俗地讲,就是写一个位置 “改变”
了另一个位置。
8、地址线的错误
您可能关注的文档
最近下载
- 798180_Leica_Viva_GS14_GS16_UM_v4-0-0_zh-徕卡实用说明书.pdf VIP
- 2025年江苏省苏州市吴中、吴江、相城区中考二模历史试题.pdf VIP
- 2025年6月10日浙江省事业单位统考《综合应用能力类》考试真题.docx VIP
- 水利水电工程建筑专业毕业论文设计.doc VIP
- 移动通信(第六版)(章坚武)课件章-(4).pptx VIP
- 【模板资料】企业新版生产安全事故应急预案汇编((依据GBT29639-2020编制,89页修订版).docx VIP
- 2026年春季学期校园“1530”安全教育记录表.docx VIP
- 童趣风学习文明礼仪主题教育.pptx VIP
- 审美鉴赏与创造智慧树知到课后章节答案2023年下南昌大学.docx VIP
- 16bj7-1楼梯平台栏杆及扶手.pdf VIP
原创力文档

文档评论(0)