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-AM64B:r5f 在 DDR 的内联 ECC 初始化时运行至 DATA_ABORT 处理程序

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1505705/sk-am64b-r5f-run-into-data_abort-handler-on-initialization-of-inline-ecc-for-ddr

器件型号:SK-AM64B
主题:SysConfig 中讨论的其他器件

工具/软件:

您好:
我从 r5fss0的"..\mcusdk\examples\sdl\ESM\MCU_esm0\am64x-evm_r5fss0-0_nortos_ti-arm-clang 加载了一个示例工程(mcu_esm0_am64x-evm_r5fss0-0_nortos\ti-arm-clang)。
我已编译、加载并成功运行原始工程。

然后、我在 "example.sysconfig"的"TI 驱动程序"部分中启用了 DDR、并在"Memory Configurator"部分中配置了大小为0x400 0000的存储器区域 DDR_ALL_X、并将"Sections""Memory Segments"、"Stack Segments"和"Initialization and Exception Handling"从 MSRAM_All_X 切换  
我编译、加载并成功运行该工程。

然后、我为具有 ECC 区域0起始地址0 (0x8000 0000的偏移量)和结束地址0x200 0000的 DDR 启用内联 ECC。
项目现在不能成功运行、而是运行在 System_init ()中的 ABORT_HANDLER 中。 通过单步调试、我可以看到系统从调用 CacheP_wbInv ()的 DDR.c 第386行跳转到 HwiP_armv7r_Handlers_nortos.c (第351行和第298行)中的"HwiP_User_data_abort_hander"。

有一个已启用 DDR ECC 的测试项目和一些自检、但 DDR 仅经过测试、否则未使用。

错误在哪里? 我们是否必须通过引导加载程序等方式提前启用具有 ECC 的 DDR?

随附的 zip 文件包含所描述的项目、以便于复制...

感谢您的帮助
Rolf


e2e.ti.com/.../mcu_5F00_esm0_5F00_am64x_5F00_r5fss0_5F00_ddr_2D00_ecc.zip

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

    您好:

    Unknown 说:
    错误在哪里? 我们是否必须提前通过引导加载程序等方式启用具有 ECC 的 DDR?

    是的、必须在发生 DDR 初始化的引导加载程序本身中启用 DDR ECC。 您能否尝试从引导加载程序启用内联 ECC 并查看是否仍会遇到中止问题?

    此致、
    Nihar Potturu。  

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

    您好、Nihar、
    感谢您的答复。 到目前为止、我仅使用附加的示例工程进行测试、仅在 r5f0-0上运行、无需 Linux、RTOS 或引导加载程序。 我认为在此环境中、DDR 初始化不会更早发生、而是由 r5f0-0 SysConfig 代码处理。

    我认识到、在所用的 DDR 段上启用内联 DDR-ECC 不起作用、但在初始化时失败。
    可以使用具有禁用 ECC 的 DDR 段、并且可以为未使用的 DDR 区域启用 ECC。


    因此、我想知道是否需要通过不同的内核/CPU 或引导加载程序使用 ECC 启用 DDR?   
    或者、当我要为 DDR 启用 ECC 时、是否缺少任何其他步骤?

    此致、
    Rolf  

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

    您好、Rolf、

    [引述 userid="646946" url="~/support/processors-group/processors/f/processors-forum/1505705/sk-am64b-r5f-run-into-data_abort-handler-on-initialization-of-inline-ecc-for-ddr/5789635 #5789635"]

    可以使用具有禁用 ECC 的 DDR 段、并且可以为未使用的 DDR 区域启用 ECC。

    [/报价]

    是和是。

    因此、我想知道是否需要通过不同的内核/CPU 或引导加载程序启用具有 ECC 的 DDR?   
    或者、当我要为 DDR 启用 ECC 时、是否缺少任何其他步骤?

    是的、在测试内联 ECC 之前、您必须在启用 ECC 的情况下初始化 DDR。

    此致、
    Krithika.