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.

[FAQ] PROCESSOR-SDK-AM57X: 修改定制板的 DDR/RAM 配置的步骤

Part Number: PROCESSOR-SDK-AM57X

问:您能否指导我逐步修改 AM57x 上的 DDR/RAM 配置

  • 答:为 AM57x 器件配置 DDR 的推荐方法是使用 EMIF 工具

    该工具在线提供。

    要执行的步骤:

    1. 下载该工具。它采用电子表格形式。
    2. 请准备好您的 DDR 数据表,因为填充电子表格中的各种参数时会用到它。
    3. 您可以参考 AM57x、DRA7x 和 TDA2x EMIF 工具的应用报告,该报告将指导您逐步填充电子表格。
    4. 完成电子表格中的步骤 1、步骤 2 和步骤 3 后,您必须点击“Save User Config”,它位于电子表格的第一个选项卡 Title-README 上。这将在各个选项卡中自动填充寄存器值。
    5. 您将在此工具的输出中获得 U-Boot 和 GEL_SBL 所需的寄存器值。
    6. 您可以按照应用报告第3 节中提到的步骤配置 U-Boot。
    7. 但对于 RTOS,您必须在两个位置集成所做的更改:
      • GEL 文件:可与 CCS 配合使用。
      • 电路板库:用于 SBL/RTOS。

    AM57x GEL 文件更新,

    • 您可以在此处找到 AM57x 相关的 GEL 文件:<CCS_root_folder>\ccs\ccs_base\emulation\boards\am57<X>x\gel\。
    • 您将找到 AM57<X>x_startup_common.gel,它将具有 AM57<X>x_DDR3_<YYY>MHz_Config() 函数,负责执行 DDR 配置并在相应的 AM57<X>x_ddr_config.gel 中定义。
    • 您必须将 MACROS 的值从 Register_Values(GEL_SBL)(上面的步骤 5)复制到 AM57<X>x_ddr_config.gel。
    • 然后,您必须创建并启动目标配置并连接到内核 (A15)。有关如何设置 CCS 的说明,请点击此处
    • 它将加载您的 DDR 配置(如上所述,通过 AM57<X>x_startup_common.gel 启用),如果连接正确,您可以加载任何测试,例如从 DDR 内存中加载 Helloworld。
    • 在运行任何测试之前,您可以通过另一种方法检查 DDR 配置 - 您可以打开memory browser并检查 DDR 地址,然后确认其读/写可访问性。您可以双击并向该位置写入新值。

    AM57x 的电路板库更新,

    • 从 GEL 的角度确认 DDR 配置后,您可以在以下路径的电路板库中集成这些更改:<pdk_root_folder>\packages\ti\board\src\<board>\<board>_ddr.c。
    • 只有当您在调用 Board_init() 时启用了 BOARD_INIT_DDR 时,这才会起作用。
    • 如果您按原样我们的诊断,那么还有更多的文件值得您查看。
      • 您可能必须更改为以下位置的诊断定义的存储器结构:<pdk_root_folder>\packages\ti\board\diag\common\<board>\*.cmd。您可以通过查看该特定诊断的 makefile 来获取有关哪个诊断使用哪个cmd 文件的信息。
      • 此外,您必须更新位于以下路径的 DDR 起始地址和结束地址:<pdk_root_folder>\packages\ti\board\src\<board>\include\board_cfg.h。

    *<X> - AM571/2/4 为 1/2/4。

    *<YYY> - AM571/4 为 666,AM572 为 532。

    注意:

    我们建议您在修改电路板库中的源代码之前,通过使用修改后的设置创建 GEL 文件来测试 CCS 中的设置。

    有关更多调试资源,请参阅应用报告下的第 3.4 节

     

    实用链接:

    要更新 <pdk_root_folder>\packages\ti\board\src\<board>\<board>_ddr.c 文件,请记住以下几点:

    • 您将不会直接获得structure/MACRO(如 GEL),您可以搜索和更新这些值。
    • 您必须手动更新文件中所有位置的所有值(没有像 uboot 这样的顶层结构)。
    • 如果您修改了 GEL 文件,那么您会注意到 EMIF 工具和 Gel 文件中遵循了相同的命名约定。但是,电路板库并非如此。您会在这里找到类似的命名方式,但它与 EMIF 工具中的命名方式不会完全匹配。例如,请参见下图:

    其中,“ddr3Config1.emifDdrParam.sdramTim1”为 SDRAMTIME1,等等。