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.

[参考译文] AM4378:仿真

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1239439/am4378-emulation

器件型号:AM4378

您好!

您能在下面解释一下吗? 我正在尝试在一个名为 Impervas 的工具上对 AM4378进行仿真。 您能在下面澄清一下相同的内容吗?

在 L2高速缓存控制器从 L2C_WRITE_sec()进行初始化的过程中--> outl_cache.write_sec()--写入 Aux 寄存器时进行 SMC #0调用。  

1.您能否告诉我是否需要配置任何寄存器以便使用  writel_relaxed()而不是使用安全调用(即  _omap_smc1 ()?

2.如果进行了 SMC #0调用,在哪里 定义了函数处理程序? 为此、需要配置哪个寄存器?

谢谢。

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

    尊敬的 Sunitha:

    请确认:您正在开发哪些操作系统以在 AM437x ARM 内核上运行?

    我不熟悉帝国工具。 该事件似乎未由 TI 发布或记录、因此我们将无法专门回答有关 Impervas 的问题。

    此致、

    尼克

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

    您好、Nick、

    感谢您的答复。

    我使用的是 TI SDK AM437X-EVM-LINUX-SDK-src-08.02.00.24.tar、默认内核 zImage、AM437X-SK-EVM.dTB 文件。 在 Linux 内核启动期间、它开始初始化 L2高速缓存控制器。 请在下方澄清。

    在 L2高速缓存控制器从 L2C_WRITE_sec()进行初始化的过程中--> outl_cache.write_sec()--写入 Aux 寄存器时进行 SMC #0调用。  

    1.您能否告诉我是否需要配置任何寄存器以便使用  writel_relaxed()而不是使用安全调用(即  _omap_smc1 ()?

    2.如果进行了 SMC #0调用,在哪里 定义了函数处理程序? 为此、需要配置哪个寄存器?

    谢谢。

    邦塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正尝试在一个名为 Impervas 的工具上模拟 AM4378。

    我们并不真正支持您尝试做的事情、但也许我们可以给您一些指示。 一般来说、我建议在真正的硬件上运行、而不是尝试模拟整个器件。

    1. 您能告诉我是否需要配置任何寄存器以便使用  writel_relaxed()而不是使用安全调用(即  _omap_smc1 ()?

    您尝试修改哪个特定器件寄存器?

    2. 如果进行了 SMC #0调用,在哪里 定义了函数处理程序? 为此、需要配置哪个寄存器?

    这些是对 ROM 安全监视器/HAL FW 或 PPA (主要受保护应用程序)进行的调用、由于这些 SMC 调用而运行的代码本身在源代码中不可用。 但是、相关的 trampoline 函数 也是在 arch/arm/mach-omap2/OMAP-smc.S 中定义的、这也对参数/调用约定提供了一些见解。

    此致、Andreas

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

    1.在 L2缓存 控制器初始化过程中,内核会更新许多寄存器。  例如:

    0x100 reg1_control  
    0x104 reg1_aux_control  
    0x108 reg1_tag_ram_control  

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

    让我看看我们是否能在这里提供一些额外的指针。 将重新分配给 ROM/PPA 专家。

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

    尊敬的 Sunitha:
    ROM 提供 SMC 呼叫支持的一个参考
    AM43xx TRM (www.ti.com/.../spruhl7)中的"2.2.11 Services for HLOS Support–API"
    此致!
    -洪

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

    您好!

    我已经查看了 TRM 中的第2.2.11节。

    我可以修改内核源来调用 writel_relaxed()以实现二级缓存。 但是,是否有办法使用直接写入寄存器(即 writel_relaxed()),而不是通过配置任何寄存器和不修改内核源来使用安全调用?

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

    尊敬的 Sunitha:
    "5.2.11 Services for HLOS Support–API"旨在用于在实际的目标 SoC 上运行。
    "这个 Cortex 内核只在安全模式下限制对几个 ARM 协处理器寄存器的访问。 GP 器件禁止进入安全模式、因此不提供任何安全服务。 但是、HLOS 需要访问安全寄存器以进行 L2缓存维护。 出于这些目的、ROM 代码提供了可以在 GP 或 HS 器件类型上调用的不同基元。 这些服务在监控模式下实现(必须通过将函数 ID 写入 R12寄存器并使用 SMC 指令调用此服务)。

    我仔细看了看你原来的帖子。 由于您正在处理仿真环境/工具、帝国。 我认为"imperas"提供了支持 ARM 模式切换到安全/监控模式以及通过 CP15配置 L2缓存的环境。
    我建议与大本营联系 Impervas.

    此致!
    -洪