ddr问题分析

目录

一、怎么确认是不是DDR问题

二、引起DDR问题的几个主要原因

三、解决DDR问题的一些手段


一、怎么确认是不是DDR问题


1. 查看串口log
   1. 如果串口log是在loader中的DDR初始化部分报错的话一定是DDR问题。
   2. 查看loader中DDR初始化部分log中的DDR容量行列bank及颗粒类型位宽信息是否正确。如果信息错误可能引起DDR问题。
   3. 如果串口log是系统中的panic log的话,可以多尝试几次看多次panic的地址是否一致,如果一致的话基本不可能是DDR问题,如果不一致的话有可能是DDR问题,也可能是电源问题。
2. 看显示是否正常。如果显示异常是DDR问题的概率比较大。
3. 做排查试验:
   1. arm gpu降频,定频适当抬压,如果有效果的话就不是DDR问题。基本上能确认是电源问题。
   2. 关闭DDR变频功能,有效果则DDR变频导致的问题概率比较大。
   3. 降低DDR频率到稳妥频率(如200M),如果有效果那很大概率是DDR信号质量有问题
 

二、引起DDR问题的几个主要原因

1. 电源问题:
   1. layout上电容不够,电容摆放位置离芯片太远,电容分布不合理
   2. 电源feedback回路没按要求从末端引回到PMU/DC-DC端
   3. 敷铜有没有按照RK的layout规则处理导致电源路径太窄
   4. LQFP封装的芯片正下方的GND需要堆锡保证良好接地,否则会影响芯片内部电源质量以及散热。
2. 信号质量问题
   1. 不等长的走线。RK大部分平台是不带各种eye training的, 不等长的走线会直接牺牲DDR 的setup/hold time。
   2. 过窄的线间距。过窄的线间距将会导致严重的串扰问题。
   3. T型拓扑结构分支不等长。不等长的分支会恶化信号边沿,使边沿非单调。
   4. 信号参考层回路上的不完整。在敷铜时,间隙设置过大导致过孔直接隔断参考层,会导致信号质量下降引起兼容性问题。
3. 颗粒问题
  1. 白牌颗粒,由于没经过测试甚至一些可能是原厂测试淘汰下来的颗粒,良率上无法保证。
  2. 一些特殊渠道的颗粒,可能存在驱动强度偏弱等问题。
  3. hynix 4Gb C die DDR3,如H5TQ4G63CFR ,kernel 3.10早期代码需要打补丁才能用。(后期修复了,判断标准是:只要进入kernel能正常就是fix过的,否则就需要补丁)
 

三、解决DDR问题的一些手段


解决DDR问题总的办法就是找规律,尝试是否能找到死机的规律,如都在某个频率下死机,休眠唤醒死机的是否是和休眠时间多久有关等。尝试各种方法如定频,尝试不同频率,抬压,改驱动强度等逐个排查可能性缩小问题范围。
1. 对于在DDR初始化中报错的问题
   1. 如果有"rd addr 0x... = 0x..."的报错基本上是焊接问题。焊接问题可以用“Rockchip平台DDR测试工具”直接找到问题点。
   2. 如果报”16bit error!!!“,”W FF != R“的话表明DDR基本的读写都是错误的。这种情况焊接问题概率比较大。
   3. 打印"unknow device"说明颗粒基本的读写都不对,无法探测到dram类型。此时应该检查焊接问题。
   4. 对于个别容量不是2的n次幂的颗粒,如768MB,1.5GB,3GB 等特殊颗粒有些版本的代码可能没做好兼容工作,可以更新到最新loader,如果还有异常的话可以联系DDR相关工程师分析。
   5. 对于DDR loader中报错的问题,大部分会是焊接问题,可以尝试使用ddr测试工具焊接专项选择对应容量的测试项测试分析。
2. 查看loader中DDR初始化部分log中的DDR容量行列bank及颗粒类型位宽信息是否正确。如果信息错误可能引起DDR问题。
    如下图第一行为DDR版本号,第3行DDR频率,第4行DDR类型,第五行从左到右分别为系统的位宽数,列数,bank数,行数,片选数,颗粒的位宽数和总容量。第7行“OUT"打印出来后表面DDR初始化成功并退出,再下面就是usbplug或者miniloader 打印的log。这中间Die Bus-Width比实际的大不会有问题,但是比实际的小会引起死机。
3. 看显示是否正常。
   当系统死机时虽然cpu停下来了,但是vop依然会重复着从DDR中取数据并显示在屏幕上。所以死机时可以直接观察显示的情况来初步判断DDR这时候的状态。
  1. 如果显示正常的话,说明这时候DDR的是能够正常访问的, 但是并不能说明死机和DDR无关
  2. 如果显示异常。
如下图,我们称为“花屏”,有可能是DDR变频的过程中死机了导致DDR处于不可访问状态,这
时候可以定频试试。或者可能是电源问题导致DDR控制器逻辑异常。
如下图,我们称为“重影”,之前遇到类似的情况是由于板子参考层不完整,导致DDR3异常。可
尝试提高VCC_DDR电压到1.6V或者将颗粒的dll bypass掉解决。
 

4. 排查是否是电源问题
   1. 固定cpu/gpu到一个较低的频率,适当提高arm/logic电压看看是否有改善。有改善的话可能是电源问题。
   2. 审核layout看是否电源上存在问题。
   3. 测量电源纹波是否存在问题。

5. 排查是否信号质量问题
  1. 降低DDR频率看看是否有明显改善,有改善的话很可能就是信号质量问题。
  2. 让硬件同事审核layout和gerber文件,检查走线是否合理,参考层是否完整。
  3. 适当加强减弱驱强度/odt强度,看是否有改善。
  4. 改变RZQ的阻值看看是否有改善。遇到过个别220ball的lpddr3 需要将RZQ改小或者去掉才能够恢复正常。
6. 对于白牌颗粒
  对于白牌颗粒,如果排查过电源,信号质量等都没问题的情况下只能怀疑可能是存储单元有问题,可以尝试现
有遇到过的白牌颗粒的处理方法。
   1. 尝试关闭pd_idle,sr_idle看看是否有效果。
   2. 对于一些死机时屏幕有“重影”的颗粒可以尝试bypass DRAM DLL看是否有效果。
   3. 一些存储单元有问题的颗粒可以通过DDR测试工具测试出来, 目前遇到的比较多的是DDR测试工具March专项能测出来的概率比较大。 需要注意的是DDR测试工具仅仅是作为一个辅助工具,测试工具
测试pass并不代表颗粒或者板子稳定性一定没问题。
 

谈谈QNX安全之防篡改 (360doc.com)

QNX加密方法-qnx防破解-增加安全功能_锋影Q的博客-CSDN博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值