DDR4内存调试经验分享

1. 文档目的

本文档适用于DDR4调试验证,按照DDR4初始化的过程及Linux平台下压力测试顺序总结常见几类问题,卡在获取内存频率处->找不到内存->内存tranning fail->压力测试内核崩溃 ,为板级调试过程中遇到的DDR4问题提供排查方向及相关指导。

2. 基础硬件排查

2.1 电源测试

万用表测量DDR各部分电源指标参数,需要满足DDR4协议规范要求,示波器测试电源的纹波,建议控制在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阻抗要求(单端45Ω,差分75Ω),损耗要求。

3. 常见问题定位指导

3.1 启动过程中卡在DDR frequency config...

3.1.1 问题现象

如下图所示,启动卡在DDR frequency config...

DDR4内存调试经验分享_第1张图片

3.1.2 分析定位

1)软件分析得知,该部分在进行如下操作:CPU在读取DIMM0上的SPD信息,结果没有读到;

2)鉴于没读到SPD信息,排查方向转移到CPU与DDR的DIMM0的SPD信息获取的II2链上;

3)排查图纸及对照实物的方式,锁定到I2C电平装换芯片的左右两端上拉电阻(4.7K)NC了;

4)补焊之后,问题得到解决;

DDR4内存调试经验分享_第2张图片

 

3.2 无法找到内存

3.2.1 问题现象

启动过程中,固定通道找不到内存

DDR4内存调试经验分享_第3张图片

 3.2.1 分析定位

1)软件上可以先用不读SPD信息的固件进行分析验证,SPD信息可以找到内存,问题基本上集中在IIC链路上面;

2)CPU到IIC Level shift,IIC Level shift到内存这段链路是否正常,定位内存的SPD地址和其他外设产生了冲突;

3.3 内存Training Fail

3.3.1 问题现象

如下图所示,DDR在Training 过程中会不断的Training fail;

DDR4内存调试经验分享_第4张图片 

3.3.2 定位分析

1)根据log打印信息显示,DM信号未生效,重新编译固件版本,问题解决;

3.4 进系统内核崩溃

3.4.1 问题现象

如下图所示,内核打印Internal error; 

DDR4内存调试经验分享_第5张图片

3.4.2 定位分析

1)硬件怀疑:初步怀疑信号质量差,通过降主频和DDR频率的策略来佐证猜想,实验结果为依旧内存报错;

2)硬件排查:用示波器测量Vcore电压及纹波,测试正常;

3)关DDR通道测试:客户主板的内存为板载颗粒,内存通道仅有0246,通过软件的手段手动选择通道测试,发现只要存在DIMM4,内核就会报错,重点排查DIMM4的各部分电压;

4)DIMM4的VDDQ电压通过磁珠提供,实测VDDQ纹波在150mv左右,降低VDDQ的纹波到25mv左右,三块主板可通过500次重启测试,24h的ltp测试,24h的稳定性测试;

你可能感兴趣的:(硬件工程,arm)