1. 文档目的
适用于本文档DDR根据调试验证DDR初始化过程及Linux平台下压力测试顺序总结了几个常见问题,卡在获取内存频率时->找不到内存->内存tranning fail->内核压力试验崩溃 ,在板级调试过程中遇到的情况DDR提供调查方向及相关指导。
2. 基础硬件调查
2.1 电源测试
万用表测量DDR需要满足各部分电源指标参数DDR建议将示波器测试电源的纹波控制在4%以内;
参数 |
符号 |
Typ |
纹波 |
实测值 |
单位 |
DDR IO 电源 |
VDDQ |
1.2 |
v |
||
DDR Vref 电源 |
Vref |
0.6 |
v |
||
DDR VTT 电源 |
VTT |
0.6 |
v |
||
DDR VPP 电源 |
VPP |
2.5 |
v |
2.2 信号质量
在定位问题之前,先确认PCB设计文件DDR4的模拟结果需要满足DDR4阻抗要求(单端455Ω,差分75Ω),损耗要求。
3. 常见问题定位指导
3.1 启动过程中卡在DDR frequency config...
如下图所示,启动卡在DDR frequency config...
1)软件分析得知,该部分正在进行以下操作:CPU在读取DIMM0上的SPD没有读到信息;
2)鉴于未读SPD信息转移到调查方向CPU与DDR的DIMM0的SPD信息获取的II2链上;
3)排查图纸及对照实物的方式,锁定到I2C电平装换芯片左右两端上拉电阻(4.7K)NC了;
4)补焊后,问题得到解决;
3.2 无法找到内存
固定通道在启动过程中找不到内存
1)软件可以先用不读SPD分析验证信息固件,SPD信息可以找到内存,问题基本集中在IIC链路上面;
2)CPU到IIC Level shift,IIC Level shift内存链路是否正常,定位内存SPD地址与其他外设冲突;
3.3内存Training Fail
如下图所示,DDR在Training 这个过程将继续下去Training fail;
1)根据log打印信息显示,DM信号无效,固件版本重新编译,问题解决;
3.4进入系统内核崩溃
如下图所示,内核打印Internal error;
1)硬件怀疑:初步怀疑信号质量差,通过降低主频和DDR频率策略证明猜测,实验结果仍然是内存错误;
2)硬件排查:用示波器测量Vcore正常测试电压和纹波;
3)关DDR通道测试:客户主板的内存为板载颗粒,内存通道仅有0246,通过软件的手段手动选择通道测试发现只要存在DIMM4,内核就会报错,重点排查DIMM4的各部分电压;
4)DIMM4的VDDQ电压通过磁珠提供,实测VDDQ纹波在150mv左右,降低VDDQ的纹波到25mv左右,三块主板可通过500次重启测试,24h的ltp测试,24h的稳定性测试;