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.

[参考译文] SK-AM62A-LP:DDR 配置参数查看

Guru**** 2431620 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1351830/sk-am62a-lp-ddr-config-parameters-review

器件型号:SK-AM62A-LP

在这篇文章中、我们使 DDR 配置成功引导 am62

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1348901/sk-am62a-lp-emmc-flash-in-uboot

但有时它引导失败。

我们的电路板和 EVM 之间存在一些差异:

板上的 DDR 芯片  

MT53E1G32D2FW-046 AAT:B 与 EVM 的温度范围不同   
MT53E1G32D2FW-046 AUT:B
2.硬件设计中的数据线路图:
我们的:
EVM:
核心电压为0.85V、而 EVM 为0.75V
以下是 DDR 配置工具中的配置:
DDR 数据表:
请帮助我们查看配置。
谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    一些引导日志:

    MSC Firmware Version 9.1.8--v09.01.08 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : eMMC 
    [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
    [BOOTLOADER_PROFILE] Boot Image Size  : 160 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    mcu-r5f0-0
    r5f0-0
    [BOOTLOADER PROFILE] System_init                      :      36510us 
    [BOOTLOADER PROFILE] Board_init                       :          0us 
    [BOOTLOADER PROFILE] Drivers_open                     :      45240us 
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us 
    [BOOTLOADER PROFILE] Sciclient Get Version            :       9896us 
    [BOOTLOADER PROFILE] App_loadImages                   :      22021us 
    [BOOTLOADER PROFILE] App_loadSelfcoreImage            :      23554us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :     137224us 
    
    Image loading done, switching to application ...
    Starting MCU-r5f and 2nd stage bootloader
    
    DMSC Firmware Version 9.1.8--v09.01.08 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : eMMC 
    [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
    [BOOTLOADER_PROFILE] Boot Image Size  : 1102 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    hsm-m4f0-0
    r5f0-0
    a530-0
    c75ss0
    [BOOTLOADER PROFILE] System_init                      :       1782us 
    [BOOTLOADER PROFILE] Board_init                       :          0us 
    [BOOTLOADER PROFILE] Drivers_open                     :      19530us 
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us 
    [BOOTLOADER PROFILE] Sciclient Get Version            :       9978us 
    [BOOTLOADER PROFILE] App_loadImages                   :      21197us 
    [BOOTLOADER PROFILE] App_loadSelfcoreImage            :      23975us 
    [BOOTLOADER PROFILE] App_loadLinuxImages              :      37461us 
    [BOOTLOADER PROFILE] App_loadDSPImages                :      23894us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :     137822us 
    
    Image loading done, switching to application ...
    Starting linux and RTOS/Baremetal applications
    NOTICE:  BL31: v2.9(release):v2.9.0-614-gd7a7135d32-dirty
    NOTICE:  BL31: Built : 09:34:15, Aug 24 2023
    
    U-Boot SPL 2023.04-gb0d717b732 (Dec 06 2023 - 15:11:45 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.8--v09.01.08 (Kool Koala)')
    am62a_init: board_init_f done
    am62a_init: spl_boot_device: devstat = 0x4b bootmedia = 0x9 bootindex = 0
    Trying to boot from MMC1
    ti_sci system-controller@44043000: Message not acknowledgedAuthentication failed!
    ### ERROR ### Please RESET the board ###
    

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

    您好、您可以从 DDR 配置工具发送.syscfg 文件吗?  这样我就可以查看您对 EVM 配置所做的更改。

    您能提供更多有关故障的统计信息吗? 例如:

    -您测试了多少块板,有多少块板出现故障?

    -故障电路板是否总是失败,良好的电路板是否总是通过?  

    -在引导过程中您是否始终看到故障?  

    -是否有任何主板成功引导?

    此致、

    James

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

    那么、现在全部三个电路板是否都出现了类似的故障?  引导似乎已经远远超过了 DDR 初始化、因此这可能是一个更大的软件问题。   

    如果您可以成功进入内核提示符、请尝试运行 Linux memtester (在提示符处键入 memtester 以获取帮助菜单)、并发布测试的几个循环的日志。  这将运行一些存储器测试以查看接口是否稳定。  在您的3块板上运行它。  

    如果出现任何故障、则必须调试 DDR。  如果你没有得到任何故障,那么它很可能是软件问题。

    此致、

    James

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

    存储器速率为8Gb 每个通道、但所有配置均将 DRAM 密度设置为16GB。  需要解决此问题。

    此外、您是否执行过任何电路板仿真?  建议这样做以确保适当的信号完整性、还可用于获得理想的驱动强度和终端配置设置

    由于您在降低界面速度方面取得了一些成功、我甚至建议您向下访问800MHz、看看这是否会进一步改善情况。  这至少会在调试更高频率时让您的软件团队解除停滞。

    您是否有 JTAG 接口?  如果是、请通过运行以下 GEL 脚本执行 DDR 寄存器转储: Scripts->AM62A_DDRSS Memory debug->AM62A_DDRSS_CTL_PI_PHY_RegDump ()

    此致、

    James

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

    通道 B 中似乎有很多故障(即字节1和字节3)。  您能否仔细检查 addr/Ctrl 信号的布线阻抗。  它们的布线方式应与在 EVM 上的布线方式相同、采用 T 拓扑、T 的干线是分支阻抗的一半。  参见下面 CA0的示例、其中信号路由到点(圈出)、然后分支到存储器上的两个通道。

    此致、

    James

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

    这是我们的硬件工程师提供的布局说明。 请帮助我们仔细检查它。

    e2e.ti.com/.../DDR-Layout.pdf

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

    感谢布局信息。  布局似乎执行正确、但没有迹象表明 T 分支的阻抗是中继分支的一半。  您能否确认每个分支的布线阻抗是多少?

    此外、您是否可以应用以下补丁、重新构建并运行代码。  此补丁将在 DDR 初始化后立即执行寄存器转储到控制台。  如果您可以发布寄存器转储的结果、我可以分析是否有任何培训问题。

    /cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_adding_2D00_ddr_2D00_regdump_2D00_code.patch

    您应该能够使用以下命令将补丁应用到 u-boot 的基本目录:

    Git apply -v 0001-adding-ddr-regdump-code.patch

    此致、

    James

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

    以下是有关布局的详细信息:

    我发现我使用的 u-boot-spl img 是路径下的预编译1:ti-processor-sdk-linux-edgeai-am62axx-evm-09_01_00_07/board-support/prebuild-images/u-boot-spl.bin-am62axx-evm

    由于我为 R5..appimage 重建 u-boot、我应该使用哪个映像来生成 Linux.appimage?

    firmware_builder_am62a/ti-firmware-builder-am62axx-evm-09_01_00_07/mcu_plus_sdk_am62ax_09_01_00_39/tools/boot/linuxAppimageGen/makefile

    $(IMAGE_ELF):
    	$(LD) -b binary -A aarch64 --oformat elf64-littleaarch64 --section-start=.data=$(IMAGE_LOAD_ADDR) -e $(IMAGE_LOAD_ADDR) $(PSDK_LINUX_PREBUILT_IMAGES)/$(IMAGE_BIN_NAME) -o $(IMAGE_ELF)

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

    "对不起,我以为你赢了。"  我不知道您使用的是混合引导方法。  似乎您正在使用 MCU+ SDK 执行 DDR 初始化。  如果是这种情况、您需要按照此处的说明进行操作:  

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/09_02_00_38/exports/docs/api_guide_am62ax/DRIVERS_DDR_PAGE.html

    这将向您展示如何获取 DDR 配置头文件.h 并构建到您的代码中。

    我认为可能会发生的情况是您使用的是默认 DDR 配置、这就是您遇到错误的原因。  请确保您生成的配置文件内置于项目中

    如果 MCU+ SDK 正在初始化 DDR、我提供的补丁就不相关。

    此致、

    James

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

    我确信我的配置文件已内置到我的 prj 中。

    每次生成配置文件后。 我已将 prj 和闪存重建到电路板。  

    除差异外、还可在不同的频率配置中找到。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/09_02_00_38/exports/docs/api_guide_am62ax/DRIVERS_DDR_PAGE.html

    引用了这些文档。 我想知道如果以混合方法启动、是否必须启用 ECC。

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

    ECC 是可选的。 您是否可以在使用初始化后在 CCS 中获取 regdump  

    • Scripts->AM62Px_DDRSS 内存调试->AM62Px_DDRSS_CTL_PI_PHY_RegDump ()

    布线阻抗表显示主干线 T 路由为40 Ω、而2个短支路为70 Ω。  是这样吗?  此设计上是否进行了任何电路板仿真?

    此致、

    James

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

    T 路由后该时间很短、与 EVM 设计类似。

    我可以从哪里获取脚本?

    TI 可以为我们提供 DDR 培训还是提供任何培训工具?

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

    您是否能够尝试这些步骤?  从 pic 来看、它看起来是您具有 JTAG 连接的。  必须创建新的目标配置才能加载正确的 GEL、才能加载 regdump 脚本:

    • 打开 CCS 并选择"View -> Target Configurations (查看->目标配置)"
    • 右键单击"User Defined"(用户定义)、然后选择"New Target Configuration"(新目标配置)
    • 为文件命名并单击"Finish"(完成)
    • 根据您拥有的 JTAG 仓体选择连接
    • 对于"Board"或"Device"、选择最接近您的设计的 EVM、然后点击"Save"
      • AM62Ax LPDDR4:AM62A_SK_EVM
    • 连接 JTAG 电缆并为电路板加电以引导。
    • 右键点击您创建的目标配置文件并启动所选配置
    • 连接到 R5并运行寄存器转储 GEL 脚本、下面不同器件的示例
      • Scripts->AM62Ax_DDRSS 内存调试->AM62Ax_DDRSS_CTL_PI_PHY_RegDump ()

    此致、

    James

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

    您好!

    感谢寄存器转储。  它基本上看起来很好,但有几件事吸引了我的眼睛:

    1. CS0/2的 VREFca 训练值约为185mv、CS1/3约为290mV。  这不一定是错误的,但奇怪的是,他们是如此的不同。  这也与您在通道 B 中看到的误差相关。 根据您发送的布局信息、我不明白这些误差为何如此不同。

    2.数据字节0和3的写入矫正结果与字节1和2大不相同。   从您发送的布局信息来看、这一点也有相关性、因为在考虑字节交换的情况下、字节0和3的长度比1和2长得多。  因此、这里的培训似乎工作正常。

    对于第1点、是否也可以检查 CS 信号的路由?  从长度匹配报告中可以看出、这些结果似乎与 CA 匹配、这很好、但一些内容似乎不同、从而导致培训差异。

    当您启动电路板时、您是完全对电路板进行下电上电还是执行某种类型的复位(如果是、是何种类型的复位)?   

    如果您要执行下电上电、是否可以尝试对板进行热复位(可能通过按钮)以查看是否仍然出现故障。  由于您遇到间歇性故障、我怀疑存在电源问题。  热复位将有助于确保电源稳定。

    如果将 DDR 频率降低到足够低、是否每次都能成功引导?

    引导失败或引导成功后执行的 regdump?   

    此致、

    James  

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

    当我尝试重新配置 DDR 寄存器并将其转储时、我发现 DDR 配置工具已更新。

    我所做的配置参数相同的两种工具之间也存在差异。

    下面是差异和配置信息:

    两个版本的 DDR 工具之间有何区别?

    新的配置参数具有更好的性能:它可以通过1800Mhz 的 memtester  

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

    您好!

    该工具的新版本默认启用所有4个字节的 WDQS 控制。  这可以扩展写入前导码、详细信息可以在 JEDEC 规范或您的存储器器件数据表中找到。  这是最近的一项发现、对于某些存储器供应商的器件而言是必须启用的、它决定默认启用、以便在多个供应商之间实现更广泛的兼容性。  有趣的是、我们到目前为止还没有看到 Micron 器件需要这样做

    这对您的调试来说是个好消息!  继续测试、如果还有其他问题、请告诉我。

    此致、

    James

      

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

    坏消息!

    我发现不同的硬件板具有不同的性能。 使用相同的 DDR 配置参数、某些电路板每次都可以成功引导并通过 memtester 例程、一些电路板引导几乎每次都失败。

    这是两个电路板 DDR 寄存器转储:

    e2e.ti.com/.../ddr_5F00_reg_5F00_dump_5F00_failed.txt

    e2e.ti.com/.../ddr_5F00_reg_5F00_dump_5F00_success.txt

    引导失败日志:

    ######Compile time May 22 2024 07:44:08
    DMSC Firmware Version 9.1.8--v09.01.08 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : eMMC 
    [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
    [BOOTLOADER_PROFILE] Boot Image Size  : 161 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    mcu-r5f0-0
    r5f0-0
    [BOOTLOADER PROFILE] System_init                      :      34784us 
    [BOOTLOADER PROFILE] Board_init                       :          0us 
    [BOOTLOADER PROFILE] Drivers_open                     :      19513us 
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us 
    [BOOTLOADER PROFILE] Sciclient Get Version            :      13639us 
    [BOOTLOADER PROFILE] App_loadImages                   :      22056us 
    [BOOTLOADER PROFILE] App_loadSelfcoreImage            :      23515us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :     113510us 
    
    Image loading done, switching to application ...
    Starting MCU-r5f and 2nd stage bootloader
    
    ######Compile time May 22 2024 07:44:08
    DMSC Firmware Version 9.1.8--v09.01.08 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    ERROR: Bootloader_verifyMulticoreImage:655: Failed to authenticate Image
    ERROR: Bootloader_socCpuResetRelease:861: CPU set boot address failed for a530-0
    ERROR: Bootloader_socCpuRelease:496: CPU release failed for a530-0
    Some tests have failed!!
    
    

    我认为这里有一些参数需要调整。

    是否提供了任何调优工具或调优方法?

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

    您好!  

    我看了看通过和失败的培训结果,看起来非常相似,所以似乎培训工作正常。  您附加的失败引导日志显示它已通过 DDR 初始化并尝试引导、因此 DDR 最初正在工作、但随后身份验证失败。   

    如果降低频率、故障电路板是否通过测试?

    失败与通过电路板的比率是多少?

    您是否有显示任何故障的 memtester 日志?

    此致、

    James

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

    您好!

    它一直出现在字节1和3上、这两个字节对应于信号 CS1_A 和 CS1_B  您能否展示这两个信号的布线方式以及它们之间是否存在任何差异?  它们是否具有相同的参考平面?

    您是否还可以尝试对 DDR 配置工具进行以下更改:

    端接:CA ODT (FSP1)= RZQ/4 (60 Ω)

    端接:CA ODT (FSP2)= RZQ/4 (60 Ω)

    此致、

    James

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

    这是 DDR 布局的详细说明。 请帮助我们仔细检查它。

    e2e.ti.com/.../6431.DDR-Layout.pdf

    修改后的命令。 故障电路板可以成功引导。 我会进行更多测试来确认它。

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

    好的、这是好消息!  您是否还可以使用新配置执行 regdump。

    谢谢!
    James

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

    大家好、regdump 看起来不错、只是 rank1通道与 rank0的经过训练的 VREF 值差别很大


    CS0_A 0x19 (20.0%VDDQ = 220mV)(RNG 0)

    CS1_A 0x32 (30.0%VDDQ = 330mV)(RNG 0)

    CS0_B 0x18 (19.6%VDDQ = 216mV)(RNG 0)

    CS1_B 0x32 (30.0%VDDQ = 330mV)(RNG 0)

    如何连接存储器上的 ODT_CA_A 和 ODT_CA_B?

    此致、

    James

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

    如 pic 所示、 ODT_CA_A 和 ODT_CA_B 均在2.2k 时上拉至1.1V。

    此外,我们已经做了 memtester 的4定制板1800Mhz 在过去一周。 所有4块板均通过测试。

    我们将增加 DDR 频率并再次进行验证。

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

    另一个问题、如果我要在芯片规格3733MT/s 中将 DDR 配置为最大速度、 DDR 配置工具中的参数 FSP2频率(MHz)应该是1867?

    我是对吗?

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

    设置为1866。  此外、请确保您使用的 AM62A 器件能够支持该 DDR 频率。  某些变化在1600MHz 时最大。  请参阅数据表中的表7-1

    此致、

    James