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.

[参考译文] AM625:使用 CCS 20.1.0 GEL 脚本配置 AM625 DDR4

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1487771/am625-am625-ddr4-configuration-with-ccs-20-1-0-gel-scripts

器件型号:AM625
主题中讨论的其他器件:SysConfig

工具/软件:

您好:

我能够在我们的定制电路板上成功配置 SDRAM 、其中包含 CCS 20.1.0无工程调试会话 、运行 AM62B-P1 EVM GEL 脚本。 但是、这些脚本为 EVM 上使用的16GB x 16芯片配置2GB 空间、而我们的电路板使用一个单列32GB x 16 DDR4芯片。

我尝试将 AM62x-DDR4-1600MTs.gel (位于 C:\ti\ccs2010\ccs\ccs_base\emulation\gel\AM62x\AM62x_DDRSS\si_configs 中)替换为由 SysConfig DDR4配置工具为我们32GB x 16芯片生成的一个、但无法正常工作。 还有什么需要更改的吗?

32GB x 16 DDR4 SDRAM 芯片实际上是封装中的两个16GB x 8芯 片、因此我想尝试为两个16GB x 8芯片设置 GEL 脚本、但找不到芯片数量的设置位置。

谢谢、

Kris

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

    尊敬的 Kris:

    您能否发送.syscfg 文件和您使用的、通过该工具生成的 GEL 文件?

    此外、确保在 ccs_base/emulation/gel/AM62x/AM62I_DDRSS/AM62x_DDR_Top.gel 中正确设置包装器控制寄存器。  4GB 设置应取消注释、如下所示:

    //TI_SET_DDR_SIZE (0x000001AF);//对于512MB DDR
    //TI_SET_DDR_SIZE (0x000001EF);//对于2GB DDR
    TI_SET_DDR_SIZE (0x00000210);//对于4GB DDR
    //TI_set_DDR_SIZE (0x00000231);//对于8GB DDR

    此致、

    James

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

    您好、James:

    因此、我使用  ccxml 文件中选择 AM62x_SK_EVM 后分配的 ccs_base/emulation/gel/AM62x 目录中的所有默认文件。

    足够有趣的是、 AM62x_DDR_TOP.gel 中的4GB DDR 行未被注释、即使这些设置适用于具有2GB DDR4 SDRAM 的 AM62x EVM。

    这是适用于我们的定制板的 SysConfig 文件:

    /**
    *导入此配置中使用的模块。
    */
    const DDRSS = scripting.AddModule ("/DDRSS");

    /**
    *将自定义配置值写入导入的模块。
    */
    DDRSS.DDR4.$name ="Sitara_DDR4_DDRSS_DDR40";
    DDRSS.DDR4.CONFIG_fsp0_MHz = 400;

    它是16GB x 16单芯片单列400 MHz。 我们的电路板似乎在800 MHz 上无法正常工作。

    我使用此配置的输出 AM62x-DDRConfig.gel、使用 EVM 脚本中使用的输出(AM62x-DDR4-1600MTs.gel )重命名它、并运行无工程配置、首先连接到 TIFS_0内核、然后连接到 A53_0内核、从而配置必要的一切。

    然后、我 从 AM62存储器调试/数据测试脚本菜单运行 SDRAM.Rd_test、这样 Data_Wr 似乎可以正常工作。

    CortexA53_0:启动 WrRd 测试1:*wr32_ptr=i
    CortexA53_0:开始 WrRd 测试2:*wr32_ptr=~i.

    如果我将速度提高到800 MHz 或将芯片封装从16GB 更改为32GB、测试将返回错误:

    CortexA53_0:启动 WrRd 测试1:*wr32_ptr=i
    CortexA53_0:数据验证在0x0000000080000000时失败、预期= 0x00000000 Actual= 0x020003FF
    CortexA53_0:数据验证在0x0000000080000004时失败、预期= 0x010101实际值= 0x04010202
    CortexA53_0:开始 WrRd 测试2:*wr32_ptr=~i.
    CortexA53_0:数据验证在0x0000000080000000时失败、预期= 0x030100FF 实际值= 0x03FF00FF
    CortexA53_0:数据验证在0x0000000080000004预期= 0x0100FFFE 实际值= 0x01FEFF01时失败
    CortexA53_0:
    !!!!! DDR 基本读/写测试失败!!!

    谢谢、

    Kris

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

    尊敬的 Kris:  

    很抱歉我在硬件团队工作、我不熟悉您所说的这一部分:

    [引述 userid="118622" url="~/support/processors-group/processors/f/processors-forum/1487771/am625-am625-ddr4-configuration-with-ccs-20-1-0-gel-scripts/5716791 #5716791"]

    /**
    *导入此配置中使用的模块。
    */
    const DDRSS = scripting.AddModule ("/DDRSS");

    /**
    *将自定义配置值写入导入的模块。
    */
    DDRSS.DDR4.$name ="Sitara_DDR4_DDRSS_DDR40";
    DDRSS.DDR4.CONFIG_fsp0_MHz = 400;

    [/报价]

    GEL 中的 DDR 驱动程序将从 GEL 获取 DDR 的频率设置。  对于 DDR4、AM62x-DDRConfig.gel 的上部应如下所示:


    #define DDRSS_PLL_FHS_CNT 6
    #define DDRSS_PLL_FREQUENCY_1 400000000
    #define DDRSS_PLL_FREQUENCY_2 400000000

    Gel 使用此信息来设置 DDR 的 PLL。  请注意、这些是 PLL 频率、始终为存储器时钟频率的一半。  因此、以上值实际上等于800MHz 工作模式(即1600MTs)。   

    我不确定这行是什么:

    DDRSS.DDR4.CONFIG_fsp0_MHz = 400;

    或者您是否需要它。   

    16GB 与32GB 似乎是一个不同的问题。  您能给我发送您生成的 gel 文件吗?  由于它是2个8位芯片、因此您需要在工具中设置以下内容:

    数据总线宽度:8.

    密度:16GB

    片选:1.

    此致、

    James

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

    您好、James:

    我发送了 SysConfig 文件的内容、因为我无法确定如何附加文件。

    顺便说一下、该工具将 DDR PLL 源的频率设置为 I/O 频率的一半。 因此、对于 DDR4-1600、I/O 频率为800 MHz、但 AM625 PLL 源频率设置为400 MHz。 我看到一篇 E2E 文章提到 DDRSS 外设有自己的 PLL、这是输入频率的两倍。

    只需打开 AM625的 SysConfig DDR 工具并查看 GEL 文件或任何其他文件。 如果您查看 unittled.syscfg、您将看到我发送给您的行。

    不过、设置频率在这里不是问题。 我之所以提到它、是因为我们必须将其设置为400 MHz (DDR4-800)、而不是默认的800 MHz (DDR4-1600)、才能使 DDR4存储器完全正常工作。

    我的主要问题是设置并了解我们所使用的32GB x 16 SDRAM 的正确设置。

    正如我之前提到的,这是一个标志性的铁芯片(MT40A2G16TBB-062E:F),它由两个16GB x 8骰子构建。 这是一个单列(芯片选择)器件。

    我想、SysConfig DDR 工具的正确设置是设置32GB x 16大小、但这对我来说不起作用。

    DDR4 SysConfig 工具中的设置非常简单。 当我生成具有以下 DDR4参数的 GEL 文件时、工作原理是:(其他所有内容都是默认值)

    内存频率(MHz)- 400
    数据总线宽度(每个器件)- 16
    密度(每个设备)(GB)- 16
    芯片选择/等级- 1

    如果我将 密度(每设备)(GB)更 改为32、我们的主板 DDR4将不再工作:

    内存频率(MHz)- 400
    数据总线宽度(每个器件)- 16
    密度(每个设备)(GB)- 32
    芯片选择/等级- 1

    下面介绍了我的测试设置、该设置使用 CCS、JTAG 和 GEL 脚本配置和测试存储器。

    我使用 CCS 20.1.0、并使用 AM62x EVM 的 ccxml 配置文件启动无 projet 的调试会话。 (EVM ccxml 配置将 GEL 脚本放置在正确的内核中)

    我首先连接到 SMS_CM4_0_TIFS_0内核、该内核配置为连接所有需要的 SoC 内部元件、如电源域、PLL 等

    然后、连接到 CortexA53_0内核、该内核在连接 DDR4控制器时进行配置。

    然后、我正在运行"Scripts | AM62 DDRSS 存储器调试|数据测试| Data_Wr Rd_test"中的脚本、该脚本使用第一个配置 GEL 文件(16GB x 16)传递了检查结果、第二个配置 GEL 文件(32GB x 16)失败。

    如前所述、为了使用 我生成的 DDR SysConfig 设置、我将 SysConfig 生成的文件"AM62x-DDRConfig.gel"重命名为"AM62x-DDR4-1600MTs.gel"、并将其放置在"C:\ti\ccs2010\ccs_base\emulation\gel\AM62x_DDRSS\si_configs"目录中、从而使配置脚本使用我的设置。 (这是 AM62x EVM 的配置 GEL 脚本的位置。)

    PS:

    我尝试在 Windows 11上使用 Google、Firefox 和 IE 插入文件、但当我从编辑框底部进入菜单"插入|图像/视频/文件"弹出窗口时、我在其中键入我的响应、我无法从我的计算机插入文件。 我一定会想念一些东西!

    谢谢、

    Kris

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

    尊敬的 Kris:

    如果您使用的是2Gx16设备(即 TwinDie 设备)、则在引擎盖下、这实际上是两个 x8裸片、因此您应设置 DataBusWidth = 8、密度= 16GB (封装中有两个16GB 裸片)

    这样、您就能够访问完整的 4GB 存储器。

    PS

    界面很奇怪。  如果您看到灰色的"上传"链接、则它实际上可以正常工作。  将鼠标悬停在上面、然后浏览要上载的文件。   

    此致、

    James

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

    您好、James:

    16GB x 8仅为2GB。 不应该指出有两(2)个设备16GB x 8、即4GB?

    谢谢,文件上传工作,只是很难弄明白.

    以下是 zip 文件中的 SysConfig 文件、因为 syste 不接受.syscfg 类型文件。 它包括:

    • 16Gbx16x 400MHz .syscfg -这一个在我们的电路板上工作、但它只有2GB
    • 32Gbx16x 400MHz .syscfg -这一个不起作用、但它是4GB、这是我们拥有的
    • 16Gbx8mm 400MHz.syscfg -这是您建议的。 这个大小只有2GB、虽然它与我们使用的 SDRAM 器件中的 DICE 匹配、但接口看起来只有8位。 我认为它需要在16位接口中配置(两个2)个16Gbx8 dice 的位置提供信息。

    e2e.ti.com/.../Sysconfig_2D00_Files.zip

    Kris

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

    HI Kris、AM62x 仅支持16位宽接口。  因此该工具假设、如果您选择8位宽的总线宽度、则将使用两个裸片来实现 x16宽的总线。  这种选择本质上区分了使用 BG0[1:0]信号(与8位器件情况相同)与使用 BG (与16位器件情况相同)

    那么16Gbx8x 400MHz .syscfg 配置是否可以正常工作?  您是否可以唯一访问所有4GB?  要进行检查、请打开存储器浏览器并写入0x8000_0000和0x8_8000_0000并确保没有别名。

    此致、

    James

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

    James、

    感谢您的快速重播。 虽然我之前测试过 x8设置但没有太多成功。

    我目前在 EMC 实验室工作、从事射频辐射和抗扰度测试、但明天我将回到办公室、我会告诉您。

    此致、

    Kris

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

    您好、James:

    今天、我能够运行 我们的定制 AM6254板、该板使用 Micron MT40A2G16TBB-062E:F SDRAM -一款双16Gbx8 dice 器件、具有16Gbx8 SysConfig 配置、覆盖整个4GB 范围。

    我尚未 执行完整的存储器空间测试 、但0x8000_0000和0x8_8000_0000 地址不会显示别名。

    您是否有任何可能有助于进行更全面测试的 GEL 测试脚本?

    此外、由于 PCB 上的信号完整性问题、我目前的运行速度是最大 DDR4控制器速度的一半(使用400 MHz 而不是800 MHz)。 您可以建议使用任何测试 GEL 脚本或其他工具来调试此问题吗?

    谢谢、

    Kris

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

    尊敬的 Kris:

    我们没有 GEL 测试脚本(运行 gel 速度太慢、不会对接口造成压力)。  我们有一个可加载到 A53中并运行的裸机 memtester 二进制文件。  这将对 DDR 接口上的不同图形执行应力测试。

    /cfs-file/__key/communityserver-discussions-components-files/791/3348.AM62X_5F00_DDR_5F00_MEMTESTER_5F00_A53.zip

    对于内存空间测试、我们没有专门用于此目的的任何脚本、但您执行的手动测试可以根据需要进行扩展。  我认为您无需做更多的工作、即在特定边界处对存储器区域进行一些手动检查(可能只有0x80000000、0xA0000000、0xC0000000)

    此致、

    James

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

    Kris、我们将最后一个问题拆分为一个新主题: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1497557/re-am625-am625-ddr4-configuration-with-uboot

    完成之后、我们可以继续在此处调试400MHz 与800MHz。

    此致、

    James

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

    好的、詹姆斯、

    Kris

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

    Kris、这里有什么后续行动吗?

    此致、

    James

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

    您好、James:

    我运行二进制文件、表明 DDR4存储器未在800MHz 下运行、但未能获得有关问题的任何特定信息。

    这似乎是某种 PCB SI 问题、但如果我们可以更深入地研究一下、以帮助我们了解更具体的布局改进、那会很好。

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

    好的、似乎另一个线程卡住了一点。  让我看看我能否在星期一跟进 Bin

    此致、

    James