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.

[参考译文] AM4372:L2缓存初始化(PL310)

Guru**** 2551110 points
Other Parts Discussed in Thread: AM4372

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1064945/am4372-initialization-of-l2-cache-pl310

器件型号:AM4372

各位专家、您好!

我的客户正在使用 AM4372。 他们正在经历一致性、在调查原因时、我们注意到 L2高速缓存(PL310)未初始化、因此无法启动。 它们将初始化 PL310、但 PL310的写入访问需要处于安全模式。 那么、让我检查几件事。

问题1:在 TRM 的"5.1简介"中、它显示"器件始终以安全模式启动。"、 启动信任区是否处于安全模式?

问题2:此外、如果器件在安全模式下启动、是否可以访问 PL310的写入而无需使用 SMC 指令将器件设置为安全模式(如用于 HLOS 支持的5.2.11服务- API 中所述)?

Q3:它们无法引用协处理器 CP15的 SCR、它是否在 AM437x 中实现?

如果我缺少信息、请告诉我。

请注意、
还不错

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

    您好、O.H、
    A1。 在 GP 器件上、片上引导从 ARM 监控模式开始;
    答2. 在 GP 器件上、TRM 5.2.11是有关如何通过监控模式开关调用片上 romcode 支持的 API 的良好参考。
    答3. 您会提供更多详细信息吗?
    最棒的
    -香港

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

    您好 、Hong Guan64、

    感谢你的答复。

    [引用 userid="43349" URL"~/support/processors-group/processors/f/processors-forum 1064945/am4372-initializing-of L2-cache-pl310/3948500#3948500"]A1。 在 GP 器件上、片上引导从 ARM 监控模式启动;[/引用]

    对于上述情况、它与 Cprtex-A9 C1的安全配置寄存器(SCR)的 NS 位为0的状态是否同义?

    [引用 userid="43349" URL"~/support/processors-group/processors/f/processors-forum 1064945/am4372-initializing-of L2-cache-pl310/3948500#3948500"]A3。 您是否会提供更多详细信息?

    预计这是 CCS 无法确认的状态、但我正在与客户进行核实。

    顺便说一下、如果内置了 Cortex-A9、是否正确地假设也实现了 SCR? 我对 Cortex-A9不是很了解、因此如果有任何错误、如果您能指出、我将不胜感激。

    此致、
    还不错

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

    您好 、Hong Guan64、

    [引用 userid="43349" URL"~/support/processors-group/processors/f/processors-forum 1064945/am4372-initializing-of L2-cache-pl310/3948500#3948500"]A2。 在 GP 器件上、TRM 5.2.11是有关如何通过监控模式开关调用片上 romcode 支持的 API 的良好参考。[/quot]

    我们收到了一位客户关于上述问题的另一个问题。

    [问题2-1]

    监视模式是否是诸如 SVC 的 CPU 模式? 如果上述内容正确、使用的寄存器组的状态是什么?

    例如、如果我使用 SVC 模式、并且我将 CPSR 寄存器的模式从 SVC 模式更改为监视模式、我不知道应该在哪里将 LR 和 SP 设置为监视模式。 这是否意味着有一个用于监控模式?

    [问题2-2]

    是否可以在使用虚拟地址时使用此 API? 是否需要重写向量基址等、然后执行 SMC 指令?

    [问题2-3]

    如果我在 MMU 中将所有存储器设置为"非安全"、我能否直接访问和执行 PL-310的寄存器?

    似乎只有很少的函数 ID。 没有有关缓存维护操作的特定说明。

    • 高速缓存同步
    • 按 PA 使线路无效
    • 按 PA 使行无效-通过方式使行无效
    • 按 PA 清洁线路
    • 按 PA 清洁线路
    • 按设置/路线清洁线路
    • 按 PA 清洁线路
    • 按设置/路线清洁线路
    • 按设置/路清除并使行无效
    • 按设置/路清除并使行无效
    • 清理并通过方式使其无效

    此致、
    还不错

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

    您好、 Hong Guan64、

    客户正在使用 SMC 指令进行编码、并参考 TRM。 但是、CCS 编译器会将 SMC 指令判断为汇编器级别不支持的指令、并会发生错误。

    [问题2-4]

    请告诉我如何解决此问题吗?

    [错误描述]
    在 ARM 模式 pl-310.s/DIOSCA/develop/cpu/pl310"中、所选的处理器类型不支持`sMC 0"

    [代码描述]
    按{R4-R5、R12、LR}   @Stack 以保存通用寄存器
    MOV R12、r0          @设置 r0至 R12的函数 ID
    MOV r0、R1           @将 R1的参数设置为 r0
    MOV R1、R2           @将 R2的参数设置为 R1
    SMC 0             @执行 API
    POP{R4-R5、R12、PC}   @返回到堆栈的通用寄存器

    此致、
    还不错

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

    您好、O.H、
    让我们使用新的 e2e 帖子进行后续讨论。
    e2e.ti.com/.../am4372-how-to-use-l2-cache
    最棒的
    -香港