LS1046ARDB DDR 校准 作为一个教程项目,我尝试在 ls1046ardb 板上使用 CodeWarrior 工具用上市并通过 DDR 校准。 我创建了一个 QoriQ 配置项目->LS1046A->DDR 内存控制器控制器配置。 成功读取 mta18adf2g72az-3g2r1 模块的 SPD。之后我用上市了 " Centering the clock 测试 "。 第一阶段顺利通过: #################### Result for: wrlvl_searcher ###### Run 1 ###################################### 测试结果:[ ============================================================ 已更新:WRLVL_CNTL = 0x86550605,WRLVL_CNTL_2 = 0x00000000,WRLVL_CNTL_3 = 0x00000000,SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated:WRLVL_CNTL = 0x86550608, WRLVL_CNTL_2 = 0x0A0B0C0F, WRLVL_CNTL_3 = 0x100A0B0D, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated:WRLVL_CNTL = 0x86550608, WRLVL_CNTL_2 = 0x0A0B0C0F, WRLVL_CNTL_3 = 0x1012130D, SDRAM_CLK_CNTL = 0x02800000 <> 呃......捕获寄存器: 0xE20、0x00000000 0xE24、0x00000000 0xE28、0x00000000 0xE40、0x00000000 0xE44、0x00000000 0xE48、0x0000001D 0xE4C、0x00000000 0xE50、0x00000000 0xE54、0x00000000 0xE58、0x000000000 0xE58、0x 00010000 转储: 0xF00, 0x00000000 0xF04, 0x00000002 0xF08, 0x0000000A 0xF0C, 0x14000C20 0xF10, 0x00000000 0xF14, 0x00000000 0xF18, 0x00000000 0xF1C, 0x00000000 0xF20、0x00000000 0xF24, 0x3B003E00 0xF28, 0x41004200 0xF2C, 0x4A004D00 0xF30, 0x4E005100 0xF34, 0x45007000 0xF38, 0x00000000 0xF3C, 0x00000000 0xF40、0x00000000 0xF44, 0x00000000 0xF48, 0x00000001 0xF4C, 0xD4000000 0xF50, 0x11001400 0xF54, 0x16001800 0xF58, 0x1F002100 0xF5C, 0x24002700 0xF60、0x1A000000 0xF64, 0x00009000 0xF68, 0x00000020 0xF6C, 0x00000000 0xF70, 0x0060007B 0xF74, 0x00000000 0xF78, 0x00000000 0xF7C, 0x00000000 0xF80、0x00000000 0xF84, 0x00000000 0xF88, 0x00000000 0xF8C, 0x00000000 0xF90, 0x00000000 0xF94, 0x80000000 0xF98, 0x00000000 0xF9C, 0x2A002B00 0xFA0、0x2D002C00 0xFA4, 0x2E002D00 0xFA8, 0x2A002E00 0xFAC, 0x2D000000 0xFB0, 0x00000003 0xFB4, 0x1E1B1A1C 0xFB8, 0x1D1B1C1A 0xFBC, 0x1E1C1B1D 0xFC0、0x1D1C1D1A 0xFC4, 0x1E1C1D1E 0xFC8, 0x1B1D1E1C 0xFCC, 0x1E1C1B1D 0xFD0, 0x1C1A1D1B 0xFD4, 0x1F1D1C1E 0xFD8, 0x1D1E1D1B 0xFDC, 0x1E1E1B1E 0xFE0、0x1D1F1D1C 0xFE4, 0x1E1C1A1D 0xFE8, 0x1D1D1C19 0xFEC, 0x1F1E1D20 0xFF0, 0x1D1E1F1D 0xFF4, 0x1E1D1B1E 0xFF8, 0x1D1E1E1C 0xFFC, 0x1F000000 数据: 0x00000008 0x0000000a 0x0000000b 0x0000000c 0x0000000f 0x00000010 0x00000012 0x00000013 0x0000000d ] 但下一阶段(clk_adj)失败: #################### Result for: wrc ###### Run 1 ################################################# 测试结果:[ < > {{DDR initialization failed: D_INIT was not cleared by hardware!}} 呃......捕获寄存器: 0xE20、0x00000000 0xE24、0x00000000 0xE28、0x00000000 0xE40、0x00000080 0xE44、0x00000000 0xE48、0x0000001D 0xE4C、0x00000000 0xE50、0x00000000 0xE54、0x00000000 0xE58、0x 00010000 转储: 0xF00, 0x00000000 0xF04, 0x00002100 0xF08, 0x0000000A 0xF0C, 0x14000C20 0xF10, 0x00000000 0xF14, 0x00000000 0xF18, 0x00000000 0xF1C, 0x00000000 0xF20、0x00000000 0xF24, 0x10101010 0xF28, 0x10101010 0xF2C, 0x10101010 0xF30, 0x10101010 0xF34, 0x10104000 0xF38, 0x00000000 0xF3C, 0x00000000 0xF40、0x00000000 0xF44, 0x00000000 0xF48, 0x00000001 0xF4C, 0x11000000 0xF50, 0x00000000 0xF54, 0x00000000 0xF58, 0x00000000 0xF5C, 0x00000000 0xF60、0x00000000 0xF64, 0x00009000 0xF68, 0x00000020 0xF6C, 0x00000000 0xF70, 0x0060007B 0xF74, 0x00000000 0xF78, 0x00000000 0xF7C, 0x00000000 0xF80、0x00000000 0xF84, 0x00000000 0xF88, 0x00000000 0xF8C, 0x00000000 0xF90, 0x00000000 0xF94, 0x80000000 0xF98, 0x00000000 0xF9C, 0x00000000 0xFA0、0x00000000 0xFA4, 0x00000000 0xFA8, 0x00000000 0xFAC, 0x00000000 0xFB0, 0x00000000 0xFB4, 0x00000000 0xFB8, 0x00000000 0xFBC, 0x00000000 0xFC0、0x00000000 0xFC4, 0x00000000 0xFC8, 0x00000000 0xFCC, 0x00000000 0xFD0, 0x00000000 0xFD4, 0x00000000 0xFD8, 0x00000000 0xFDC, 0x00000000 0xFE0, 0x00000000 0xFE4, 0x00000000 0xFE8, 0x00000000 0xFEC, 0x00000000 0xFF0, 0x00000000 0xFF4, 0x00000000 0xFF8, 0x00000000 0xFFC, 0x00000000 ] 假设校准是在全新的、完全组装的参考 ls1046ardb 板上进行的,而不是在定制主板上进行的,那可能有什么问题。 Re: ls1046ardb ddr calibration 你好
能否分享问题的截图? Re: ls1046ardb ddr calibration 我创建了一个新的 DDR 配置项目。将 SYSCLOCK 更改为 100 Mhz。 之后,我阅读了模块的 SPD。已成功读取 SPD。 CodeWarrior 所描述的 DDR 的 DQ 映射: 之后我启动校准。第一阶段顺利通过: 下一阶段(时钟调整)失败: 在失败阶段的日志中,我 起初我以为 DQ 映射出错了,但现在看来映射是正确的,否则第一阶段也会失败。 对这种情况有什么建议吗? Re: ls1046ardb ddr calibration 您的板能够使用预编译映像在主机上启动和打印 u-boot 日志吗?还请您分享一下日志。 Re: ls1046ardb ddr calibration 不幸的是,我现在无法提供来自 uboot 的日志(在纽约假期之后是可能的),但我可以说 Uboot 和 Linux 一切都很好 —— 它们在我的 ls1046ardb 上启动和运行得非常完美。唯一的问题是 DDR 校准过程失败。 Re: ls1046ardb ddr calibration 日安 继续进行 ls1046ardb 失败的 DDR 校准。 这是成功的 uboot 日志: 这是 linux 启动日志: 可以看出,Uboot和Linux的正常启动。我认为这意味着硬件和 DDR 模块一切正常,但 DDR 校准过程仍在上述相同步骤中失败。 Re: ls1046ardb ddr calibration 板按预期启动,因此 ddr 已正确校准,问题可能与使用该工具时的测试配置错误有关。 Re: ls1046ardb ddr calibration 日安奥斯瓦格 请说明测试配置中可能存在哪些错误? 让我展示一下我在做什么: 我的 CodeWarrior 版本 1) 首先我创建一个 DDR 配置项目并从 RDB 板读取 SPD 数据: 2) 成功读取 SPD 后,我将项目默认系统时钟从 66.7 Mhz 改为 100 Mhz 3) 在这里,我们可以看到完整的项目设置: 4) 测试设置: 5) 之后,我开始测试: 第一次测试成功通过。 下一次测试(CLK_ADJ)失败,结果如下: 那么问题出在哪里呢? Re: ls1046ardb ddr calibration 使用适用于 Windows 的 CodeWarrior 开发工作室可以解决这个问题。Windows 版本要比 Linux 下的二手垃圾喷气机好用得多。
查看全文