logo资料库

rockchip DDR 常见问题简单排查.pdf

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
福州瑞芯微电子有限公司 DDR 常见问题简单排查 Version 1.0 2012/12/05 版本 V1.0 日期 2012/12/05 初稿 描述 作者 审核 cym 第 1 页 共 9 页 12/5/2012
福州瑞芯微电子有限公司 目录 1、概述 ........................................................................................................................... 3 2、DDR 常见问题及分析排查........................................................................................... 3 2.1、如何查看 DDR 容量、行、列信息...................................................................... 3 2.2、如何查看当前 DDR 驱动版本号 ......................................................................... 3 2.3、如何查看当前 DDR 运行频率............................................................................. 4 2.4、如何设置 DDR 运行频率.................................................................................... 4 2.5、如何开启一级待机 DDR 变频功能...................................................................... 5 2.6、烧写工具,下载 Boot Code 失败或者下载 Boot Code 成功后测试设备失败 .......... 5 2.7、开机运行到 loader 阶段,概率性报错死机或者在 loader 中不停地重启................ 7 2.8、开机过程或者拷机过程 kernel 概率性跑飞,且每次跑飞的点都不同 ................... 7 2.9、开启一级待机 DDR 变频功能后,一级待机死机................................................. 8 2.10、二级待机待机过程或者唤醒过程中死机 ........................................................... 9 第 2 页 共 9 页 12/5/2012
福州瑞芯微电子有限公司 1、概述 本文档整理了一些常见的 DDR 问题和排查分析建议,仅供参考,水平有限, 如有错误,敬请提出,不甚感激。 2、DDR 常见问题简单排查 2.1、如何查看 DDR 容量、行、列信息 有两个地方可以查看这些信息: 一个是 loader 信息,在刚开机的 log 中有打印,如下: 另一个是 kernel 刚开始的 log 信息,如下: 这 2 个地方都详细的列出了 DDR 的信息,可以根据实际贴的颗粒 datasheet, 对照打印出来的信息,查找有没有硬件出错。 2.2、如何查看当前 DDR 驱动版本号 1)Loader 阶段的 DDR 驱动版本号,在刚开机的 loader log 上有打印,如下: 2)Kernel 中的 DDR 驱动版本号,是在 kernel 刚开始的 log 信息处有打印, 如下: 第 3 页 共 9 页 12/5/2012
福州瑞芯微电子有限公司 2.3、如何查看当前 DDR 运行频率 1)查看 loader 中的 DDR 频率 刚开机的 log 是 Lodaer 打印出来的,其中有 DDR 频率,如下 2)查看 DDR 当前运行频率 有两种方法可以查看系统运行中的 DDR 的频率, 一种是,看刚开机的 log,如下: 另一种是,输入 cat /proc/clocks,找到 ddr_pll 也可以查看,如下: 2.4、如何设置 DDR 运行频率 DDR 的配置位于 kernel 的 make menuconfig System Type ---> 设置系统运行中的 DDR 频率,如下 第 4 页 共 9 页 12/5/2012
福州瑞芯微电子有限公司 Note: a、DDR 频率与速率是两个概念,频率单位是 MHz,速率单位 Mbps。其中频 率=速率/2,如:颗粒速率为 1066Mbps,最高频率也就是 1066/2=533MHz。一般 颗粒的 datasheet 上写出的都是速率,而我们这里需要设置的是频率,请自己折 算。 b、DDR 最高频率受到颗粒本省速率的限制,这里设置频率时,不能超过颗 粒本省的最大频率,具体最大频率得见颗粒的 datasheet。如:颗粒的速率为 1066Mbps,则该颗粒能跑的最高频率为 533MHz,不能跑比这个高。 2.5、如何开启一级待机 DDR 变频功能 开启一级待机 DDR 频率功能方法,如下: make menuconfig System Type ---> [*] Enable DDR frequency scaling 2.6、烧写工具,下载 Boot Code 失败或者下载 Boot Code 成功后 测试设备失败 【现象】 1)烧写工具下载 Boot Code 失败表现为,工具右测提示框提示“Error: 下 载 boot 失败”,“Error: 执行失败”。 2)烧写工具下载 Boot Code 成功后测试设备失败,同居右侧提示框提示 “Error: 测试设备失败”,“Error: 执行失败”。 【分析】 第 5 页 共 9 页 12/5/2012
福州瑞芯微电子有限公司 系统各部分供电不足,主控焊接,USB 信号不好,DDR 问题等都有可能造成 这类问题的出现,这里只给出 DDR 部分的排查方法,其他部分请查看相应的文档。 在 Maskrom 状态下烧写固件,烧写工具会将 Boot Code 下载到 DDR,并在 DDR 上执行,此时如果 DDR 存在问题,就会造成“下载 boot 失败”或者“测试设备 失败”。这种情况下,如果是 DDR 造成的一般是属于供电异常、走线错误、虚焊、 颗粒问题等比较严重的错误,DDR 的这类严重错误使用 DDR 测试工具基本上都可 以测试到。 【排查方法】 1)确认 DDR 供电电压是否正常。下面三份表格分别是 DDR3,DDR3L,LPDDR3 的 DDR 部分供电要求。 Table 1 — DDR3 (1.5V) Voltage Symbol Parameter/Condition Min Typ Max Unit s VDD VDDQ VRefDQ(DC) Reference Voltage for DQ,DM Supply voltage Supply voltage for Output inputs VRefCA(DC) Reference Voltage for ADD,CMD inputs 1.425 1.5 1.425 1.5 0.49 * VDD 0.49 * VDD Table 2 — DDR3L (1.35V) Voltage Symbol Parameter/Condition Min Typ VDD VDDQ VRefDQ(DC) Reference Voltage for DQ,DM Supply voltage Supply voltage for Output inputs VRefCA(DC) Reference Voltage for ADD,CMD inputs 1.283 1.35 1.283 1.35 0.49 * VDD 0.49 * VDD 1.575 V 1.575 V 0.51 V * VDD 0.51 * VDD V Max Unit s 1.45 V 1.45 V 0.51 V * VDD 0.51 * VDD V Table 3 — LPDDR2 Voltage Min Symbol Parameter/Condition Typ Max Unit s VDD1 VDD2 VDDQ VRefDQ(DC) Reference Voltage for DQ,DM Core Power 1 Core Power 1 I/O Buffer Power inputs VRefCA(DC) Reference Voltage for ADD,CMD inputs 1.70 1.80 1.14 1.20 1.14 1.20 0.49 * VDD 0.49 * VDD V V 1.95 V 1.3 1.3 0.51 * VDD 0.51 * VDD V 第 6 页 共 9 页 12/5/2012
福州瑞芯微电子有限公司 2)使用 DDR 测试工具测试 DDR 焊接和走线是否正常。DDR 焊接问题和走 线问题基本上都可以通过 DDR 测试工具测试出来,如果检测到焊接有问题,可以 将芯片吹下来后植球再重新焊接。如果焊接检测没有问题,可以再使用工具测试 下 DDR 的稳定性,并分析 PCB DDR 走线部分,是否有不符合布板规范的影响到 DDR 性能的走线。 3)确认 DDR 颗粒是否能正常工作。如果用 DDR 测试工具连续测试几块贴同 批次 DDR 颗粒的板子均提示板上所有 DDR 颗粒 CK/CKN 异常和供电异常,实测 DDR 各路供电却都在正常范围内,则需要确认 DDR 颗粒本身是否有问题。可以将板上 的 DDR 颗粒吹下,更换在其他项目上确认过的 DDR 颗粒,或者将吹下来的 DDR 颗粒焊到确认过能正常运行的板子上,进行 DDR 颗粒的确认。 4)确认该 DDR 颗粒是否在发布的对应主控的 DDR 支持列表中。 2.7、开机运行到 loader 阶段,概率性报错死机或者在 loader 中不 停地重启 【现象】 开机运行在 lodaer 阶段,串口打印的 log 信息报错,机器死机或者重启。 如:打印完 DDR 信息“bus width=32 col=10 bank=8 row=15 CS=1 size=1024MB” 后,报错“failed! ERR”,且机器重启。 【分析】 这类问题 DDR 部分的排查,需要先确认 PCB DDR 走线部分是否有不符合布板 规范的影响到 DDR 性能的问题。在 loader 阶段 DDR 频率跑 300Mhz,且没有打开 ODT,如果板子 PCB DDR 部分的走线有问题,会影响到 DDR 性能,导致在 loader 阶段 DDR 不稳定。 【排查方法】 先使用 DDR 测试工具测试 DDR 稳定性,由于 DDR 测试工具的局限性并不能测 试出所有影响 DDR 性能和稳定性的问题,但测试工具测试出存在问题的板子基本 上都是有问题的需要硬件同事配合分析 PCB DDR 走线部分是否有不符合布板规 范的影响到 DDR 性能的走线,并进行改板。如果 DDR 测试工具检测不出问题,可 以将 loader 通过串口打印的 DDR 出错 log 发给何灿阳帮忙分析。 2.8、开机过程或者拷机过程 kernel 概率性跑飞,且每次跑飞的点都 不同 【现象】 1)开机过程中,在进入到 android 界面前,概率性跑飞,且从每次跑飞的 log 看,跑飞的点都不一样。 2)拷机或者跑分过程,概率性跑飞,且从每次跑飞的 log 看,跑飞的点都 不一样。 【分析】 此类随机性跑飞,且从跑飞的 log 上找不出规律的的问题有可能是 VCC_ARM、 第 7 页 共 9 页 12/5/2012
福州瑞芯微电子有限公司 VCC_LOGIC 电压过低或者 DDR 不稳定造成,可以从这两方面入手分别排查。 【排查方法】 1)确认是否是 VCC_ARM、VCC_LOGIC 电压不足造成。如果跑飞死机后,机器 没有重启,此时可以量取死机时候对应的 VCC_ARM、VCC_LOGIC 电压。如果每次 死机时对应的 VCC_ARM、VCC_LOGIC 都是同一两组,可以尝试在 DVFS 表中抬高对 应档位的电压值,DVFS 电压修改方法请参考 DVFS 相关文档,看是否有改善。 如果每次死机量取的电压没有规律,或者跑飞后机器会重启无法量取死机时 对应电压,可以将 CPU 频率固定在 1Ghz,GPU 最高频率限定在 266Mhz 进行测试。 此时,如果没有出现死机,则可以基本确定是 VCC_ARM、VCC_LOGIC 电压不足造 成,需要调整 DVFS 表中的各项电压值。如果还是会出现死机,可以尝试抬高 CPU 频率 1Ghz 档对应的 VCC_ARM、VCC_LOGIC,仍然没有改善的话,再进行 DDR 稳定 性的排查。 2)确认是否与 DDR 稳定性有关。在上面 CPU 频率固定在 1Ghz,GPU 最高频 率限定在 266Mhz,且抬高过 CPU 频率 1Ghz 档对应的 VCC_ARM、VCC_LOGIC 的基 础上,尝试让 DDR 频率跑 200Mhz 或者 336Mhz(DDR 频率在 333Mhz 以上,会开启 ODT,提高 DDR 稳定性)。DDR 频率跑 200Mhz 或者 336Mhz 下有所改善的话,可以 基本确认是 DDR 不稳定造成死机跑飞,需要硬件同事配合分析 PCB DDR 走线部 分是否有不符合布板规范的影响到 DDR 性能的走线,如果 DDR 走线确认没有问题, 再进行 DDR 信号问题和 DDR 颗粒问题的排查。 3)DDR 稳定性问题,同样可以使用 DDR 测试工具进行稳定性测试,设置对 应的 DDR 频率,进行测试,常见的一些问题可以通过 DDR 测试工具快速定位到, 同样 DDR 测试工具稳定性测试也有局限,并不能测试出所有影响稳定性的问题。 2.9、开启一级待机 DDR 变频功能后,一级待机死机 现象: 开启一级待机 DDR 变频功能后,一级待机阶段在 DDR 变频过程中或者变频后 死机,关闭 DDR 变频功能后,一级待机唤醒正常。 【分析】 这类问题,可能是 DDR 变频驱动的 bug 造成变频死机或者某些 DDR 颗粒的限 制不能在较低频率下稳定运行(DDR 在较低频率下,DLL 关闭)所致。 【排查方法】 1)DDR 变频稳定性测试。在 make menuconfig 中打开 System Type--->[*] DDR Test , 然 后 通 过 串 口 或 者 ADB , 输 入 “ echo a:160M-400M-10000T >/proc/driver/ddr_ts”,进行 DDR 变频测试,此时 DDR 变频测试会在 150Mhz-400Mhz 频率之间随机变频,并重复执行 10000T。也可调 整上面的参数进行针对性测试,如增加变频测试次数进行 DDR 变频的拷机测试, 拷机时机器可以运行捕鱼或者播放视频等。 2)提高一级待机 DDR 频率。少数 DDR 颗粒存在在低频率阶段关闭 DLL 后运 行不稳定的问题,当前 DDR 驱动是在 125Mhz 以下关闭颗粒 DLL,150Mhz 以下关 闭控制器 DLL。因此,可以将一级待机 DDR 频率提高到 160Mhz 以上的频率进行 测试。DDR 变频代码位于 ddr_freq.c 中。 第 8 页 共 9 页 12/5/2012
分享到:
收藏