This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM3358-EP:DDR3软件调平失败

Guru**** 2914580 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/664550/am3358-ep-ddr3-software-leveling-fails

器件型号:AM3358-EP

您好!

我正在尝试使用 TI 工具来调整我的定制板-它始终提供零、如果我尝试使用零来配置寄存器、我无法访问 RAM。  这可能是什么原因?

目前、我正在使用 ICEv2.1A GEL 文件中的 EMIF/DDR 配置、这在我的定制板上非常有用-我可以在 DDR 中运行代码。

我已经尝试 过 ICE 板上的工具 processors.wiki.ti.com/.../AM335x_DDR_PHY_register_configuration_for_DDR3_using_Software_Leveling、以确保我正在正确使用它-它工作正常。

在我的目标硬件上、我得到了以下结果:

[CortxA8]
从电子表格中输入 PHY_INOP_CLKOUT 值(0或1)
0

以十六进制输入种子 RD_DQS_SLAVE_RA比 值、以搜索 RD DQS 比率窗口
40

以十六进制输入 Seed FIFO_WE_SLAVE_RA比 值、以搜索 RD DQS 门窗口
95

在十六进制中输入 Seed WR_DQS_SLAVE_RA比 Write DQS Ratio 值以搜索 Write DQS Ratio 窗口
5.

(小部分
 从器件比率搜索程序值为...
(小部分
参数                      MAX | MIN | Optimum | RANGE  
(小部分
DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
(小部分
RD_DQS_RANGE = 0
FIFO_WE_RANGE = 0
WR_DQS_RANGE = 0
WR_DATA_RANGE = 0

已找到最佳值!!

(小部分
 从器件比率搜索程序值为...
(小部分
参数                      MAX | MIN | Optimum | RANGE  
(小部分
DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
(小部分


我的 SEED 电子表格为:

参数 注释
DDR 时钟频率 400 MHz 您将使用的最大输入频率
PHY_INOP_CLKOUT 0 如果(DDR_CK 长度)<(DDR_DQS 长度)、则使用1。 如果(DDR_CK 长度)>(DDR_DQS 长度)、则使用0。
布线长度(英寸)
字节0 字节1
DDR_CK 迹线 1.451502 2.004549 输入 DDR_CK 和 DDR_CKn 布线的平均值。 如果您有两个 x8存储器、请为每个相应字节使用布线长度。  
DDR_DQSx 跟踪 1.452371 1.45437 x 可以是0或1、对应于每个字节。
中间值(每字节通道)
WR DQS 0 A 这些仅用于以下计算
RD DQS 40 40 这些仅用于以下计算
RD DQS 门 90 9A 这些仅用于以下计算
CCS 代码中使用的种子值
DATAx_PHY_RD DQS_SLAVE_RA比 40
DATAx_PHY_FIFO_WE_SLAVE_RA比 95
DATAx_PHY_WR DQS_SLAVE_RA比 5.
寄存器值
CMDx_PHY_CTRL_SLAVE_RA比 80

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否曾尝试过 PHY_INOP_CLKOUT = 1?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    由于所有值都报告回0x0、因此 SW 调平出现问题。 请按照 Biser 的建议尝试使用 inver_clkout=1。 此外、请确保已按照此处链接中所述设置所有 EMIF 设置:

    http://processors.wiki.ti.com/index.php/AM335x_EMIF_Configuration_tips

     

    此致、Siva

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的快速回复!

    我尝试时钟反相= 1、我还尝试 了示例中的一些随机种子值、以查看会发生什么情况。  在所有情况下、调平工具返回零、请参阅下文。  我已经完成了 EMIF 设置、但如果我错过了任何东西、我将再次进行介绍。

    我想知道该工具的源代码是否可用-也许有一个简单的故障案例会导致零结果。  请记住、DDR 在正常运行时工作正常、因此设置中不会出现任何主要错误。

    [CortxA8]
    从电子表格中输入 PHY_INOP_CLKOUT 值(0或1)
    0

    以十六进制输入种子 RD_DQS_SLAVE_RA比 值、以搜索 RD DQS 比率窗口
    40

    以十六进制输入 Seed FIFO_WE_SLAVE_RA比 值、以搜索 RD DQS 门窗口
    95

    在十六进制中输入 Seed WR_DQS_SLAVE_RA比 Write DQS Ratio 值以搜索 Write DQS Ratio 窗口
    5.

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分
    RD_DQS_RANGE = 0
    FIFO_WE_RANGE = 0
    WR_DQS_RANGE = 0
    WR_DATA_RANGE = 0

    已找到最佳值!!

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分

    === 测试结束===

    从电子表格中输入 PHY_INOP_CLKOUT 值(0或1)
    1

    以十六进制输入种子 RD_DQS_SLAVE_RA比 值、以搜索 RD DQS 比率窗口
    40

    以十六进制输入 Seed FIFO_WE_SLAVE_RA比 值、以搜索 RD DQS 门窗口
    95

    在十六进制中输入 Seed WR_DQS_SLAVE_RA比 Write DQS Ratio 值以搜索 Write DQS Ratio 窗口
    5.

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分
    RD_DQS_RANGE = 0
    FIFO_WE_RANGE = 0
    WR_DQS_RANGE = 0
    WR_DATA_RANGE = 0

    已找到最佳值!!

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分

    === 测试结束===

    从电子表格中输入 PHY_INOP_CLKOUT 值(0或1)
    0

    以十六进制输入种子 RD_DQS_SLAVE_RA比 值、以搜索 RD DQS 比率窗口
    40

    以十六进制输入 Seed FIFO_WE_SLAVE_RA比 值、以搜索 RD DQS 门窗口
    73.

    在十六进制中输入 Seed WR_DQS_SLAVE_RA比 Write DQS Ratio 值以搜索 Write DQS Ratio 窗口
    1

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分
    RD_DQS_RANGE = 0
    FIFO_WE_RANGE = 0
    WR_DQS_RANGE = 0
    WR_DATA_RANGE = 0

    已找到最佳值!!

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分

    === 测试结束===

    [CortxA8]
    从电子表格中输入 PHY_INOP_CLKOUT 值(0或1)
    0

    以十六进制输入种子 RD_DQS_SLAVE_RA比 值、以搜索 RD DQS 比率窗口
    40

    以十六进制输入 Seed FIFO_WE_SLAVE_RA比 值、以搜索 RD DQS 门窗口
    95

    在十六进制中输入 Seed WR_DQS_SLAVE_RA比 Write DQS Ratio 值以搜索 Write DQS Ratio 窗口
    5.

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分
    RD_DQS_RANGE = 0
    FIFO_WE_RANGE = 0
    WR_DQS_RANGE = 0
    WR_DATA_RANGE = 0

    已找到最佳值!!

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分

    === 测试结束===

    从电子表格中输入 PHY_INOP_CLKOUT 值(0或1)
    1

    以十六进制输入种子 RD_DQS_SLAVE_RA比 值、以搜索 RD DQS 比率窗口
    40

    以十六进制输入 Seed FIFO_WE_SLAVE_RA比 值、以搜索 RD DQS 门窗口
    95

    在十六进制中输入 Seed WR_DQS_SLAVE_RA比 Write DQS Ratio 值以搜索 Write DQS Ratio 窗口
    5.

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分
    RD_DQS_RANGE = 0
    FIFO_WE_RANGE = 0
    WR_DQS_RANGE = 0
    WR_DATA_RANGE = 0

    已找到最佳值!!

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分

    === 测试结束===

    从电子表格中输入 PHY_INOP_CLKOUT 值(0或1)
    0

    以十六进制输入种子 RD_DQS_SLAVE_RA比 值、以搜索 RD DQS 比率窗口
    40

    以十六进制输入 Seed FIFO_WE_SLAVE_RA比 值、以搜索 RD DQS 门窗口
    73.

    在十六进制中输入 Seed WR_DQS_SLAVE_RA比 Write DQS Ratio 值以搜索 Write DQS Ratio 窗口
    1

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分
    RD_DQS_RANGE = 0
    FIFO_WE_RANGE = 0
    WR_DQS_RANGE = 0
    WR_DATA_RANGE = 0

    已找到最佳值!!

    (小部分
     从器件比率搜索程序值为...
    (小部分
    参数                      MAX | MIN | Optimum | RANGE  
    (小部分
    DATA_PHY_RD_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_FIFO_WE_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    DATA_PHY_WR_DQS_SLAVE_RA比   0x000 | 0x000 | 0x000  
    DATA_PHY_WR_DATA_SLAVE_RA比  0x000 | 0x000 | 0x000 | 0x000
    (小部分

    === 测试结束===

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否可以获取从器件比率搜索程序的源代码?  如果在公开代码时出现问题、我就该项目与 TI 签订了 NDA。

    我将再次查看 EMIF 设置、但 DDR 工作正常-我在 GEL 文件中运行了 DDR 测试脚本、没有错误。  随附的图片显示了 GEL 测试脚本左侧的"A5"模式-红色值已被从器件比率搜索程序覆盖。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们无法共享此算法的源代码。 您能否在此论坛(或与 TI FAE)上共享 GEL 文件以及其他有助于调试的相关文件?

    此致、Siva

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    您能否告知我们您使用的 CCS 版本、以及在运行此测试时、您是否看到器件处于用户模式或监控器模式?

    此致
    Mukul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mat、我想您会对 CCS 的最新版本中引入的异常情况有所了解

    加载文件后,通过执行脚本 Script->default->AM335xStartState 确保处理器处于管理员模式。

    处理器模式将显示在 CCS 屏幕的右下角

    http://processors.wiki.ti.com/images/2/29/CCS_supervisor.jpg

    此致、

    James

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、我处于主管模式、但我在上图中注意到您关闭了 MMU。  我打开了 MMU、因为我的引导加载程序启用了它。

    我关闭了 MMU、调平程序正常工作。  或许值得将其添加到 wiki 页面。

    感谢你的帮助。