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.

[参考译文] ROM-AM263X:MCU-PLUS-SDK 引导加载程序行为和 OSPI

Guru**** 2551110 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1534082/mcu-plus-sdk-am263x-rom-bootloader-behavior-and-ospi

器件型号:MCU-PLUS-SDKAM263X-AM263X


工具/软件:

您好、  

我有以下疑问来重新评级 AM263P 控制器。 请帮助我了解所有详细信息。

  1. 根据参考手册部分 5.2.1.1 公共 ROM 条目 、ROM 引导加载程序执行清除 核心寄存器、在 TCMB 上执行 PBIST、设置主栈、TI auto init、然后跳转到主代码。
    1. 我们能否 在 ROM 引导加载程序中访问这些任务的源代码或相关详细信息?  
    2. 什么是 TI 自动初始化?
    3. 分支到 main 的含义是什么? 是指 ROM 引导加载程序的主代码还是 SBL 的主代码?
  2. “引导循环“是否是 ROM 引导加载程序的一部分?
  3. ROM 引导加载程序是否会 将 SBL 映像 从外部 OSPI 闪存下载到内部 L2 RAM(在 OSPI 引导模式下)? 如果不是、则 SBL 应处理 OSPI 通信的其他哪些部分?
  4. 如果我们要使用 就地执行 (XIP) 功能直接从外部闪存执行代码、那么 SBL 是否需要 初始化任何特定部分来处理此问题?  
  5. SBL 可以在 XIP 模式下直接在外部闪存中执行吗?  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 DeviPrasad:

    根据参考手册部分 5.2.1.1 公共 ROM 条目 、ROM 引导加载程序执行清除 核心寄存器、在 TCMB 上执行 PBIST、设置主栈、TI auto init、然后跳转到主代码。
    1. 我们能否 在 ROM 引导加载程序中访问这些任务的源代码或相关详细信息?  
    [/报价]

    ROM 代码不会被保密、因为它保存了与器件完整性相关的详细信息、因此不会共享。

    [报价 userid=“660592" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1534082/mcu-plus-sdk-am263x-rom-bootloader-behavior-and-ospi
    • 什么是 TI 自动初始化?
    • 分支到 main 的含义是什么? 是指 ROM 引导加载程序的主代码还是 SBL 的主代码?
    [/报价]

    它指的是 SBL 代码、您将看不到 ROM 代码的 sysmbols、而 SBL/应用的符号仅可见

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我们要使用 就地执行 (XIP) 功能直接从外部闪存执行代码、那么 SBL 是否需要 初始化任何特定的部分来处理此问题?  [/报价]

    是的。 由于 SBL 负责将应用程序映像加载到单个内核、因此对于 XIP、SBL 在 DAC(直接访问模式)中设置 OSPI 外设以启用 XIP。

    SBL 是否可以在 XIP 模式下直接在外部闪存中执行?  [/报价]

    否、SBL 无法从闪存执行、需要从 RAM 运行。

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
     ROM 引导加载程序是否包含“Boot Loop“部分?

    是的。

    ROM 引导加载程序是否会 将 SBL 映像 从外部 OSPI 闪存下载到内部 L2 RAM(在 OSPI 引导模式下)? 如果不是、则 SBL 应处理 OSPI 通信的其他哪些部分?

    是的、在 OSPI 引导模式下、RBL 将 SBL 从闪存下载到 OCRAM。 SBL 还负责下载应用程序映像。

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

    闪存中存在的应用程序代码如何在 XIP 模式下执行? 应用代码是将复制到缓冲存储器中以执行代码、还是直接从闪存执行代码?

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

    根据第 5.1.1 节“ROM 代码概述“、 ROM 代码会根据屏幕截图执行以下操作。 然后  5.2.1.1 公共 ROM 条目  必须引用 ROM 引导加载程序的主代码。 根据您的回复、主模块是 SBL 的一部分。 请确认相同内容。

    我还有 与 ROM 引导加载程序和 SBL 相关的其他问题。

    1. ROM 引导加载程序将控制权转移到次级引导加载程序的典型时间是多少?
    2. 在 Dev boot code (debug build) 中、应该如何在次级引导加载程序的链接器文件中定义内存?  是否会 在调试模式下执行 ROM 引导加载程序代码?
    3. 是否会在开发引导模式下启用 ECC 位?
    4. 在数据中止异常期间、如何区分两位错误和仅注入模式触发器?
    5. 需要对 PBIST 有一些充分的理解。
      1. PBIST 是否仅由 ROM 引导加载程序配置和启用?
      2. 如果 SBL 可以启动 PBIST、它如何在不发生任何存储器损坏的情况下测试 TCMA 和 L2 存储器区域?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何在 XIP 模式下执行闪存中存在的应用程序代码? 应用代码是将复制到缓冲存储器中以执行代码、还是直接从闪存执行代码?

    启用 XIP 后、直接从闪存执行、不会将缓冲区复制到 RAM 中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid=“661790" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1534082/mcu-plus-sdk-am263x-rom-bootloader-behavior-and-ospi/5923800
    • 是否会在开发引导模式下启用 ECC 位?
    • 在数据中止异常期间、如何区分两位错误和仅注入模式触发器?
    • 需要对 PBIST 有一些充分的理解。
      1. PBIST 是否仅由 ROM 引导加载程序配置和启用?
      2. 如果 SBL 可以启动 PBIST、它如何在不发生任何存储器损坏的情况下测试 TCMA 和 L2 存储器区域?
    [/报价]

    请创建单独的 e2e、因为这些问题需要由 SDL 和安全专家回答。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid=“661790" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1534082/mcu-plus-sdk-am263x-rom-bootloader-behavior-and-ospi/5923800
    • ROM 引导加载程序将控制权转移到次级引导加载程序的典型时间是多少?
    • 在 Dev boot code (debug build) 中、应该如何在次级引导加载程序的链接器文件中定义内存?  是否会 在调试模式下执行 ROM 引导加载程序代码?
    [/报价]

    对于 RBL 引导时间:  【常见问题解答】AM2634:AM261x-AM263X MCU-PLUS-SDK:如何理解/优化 RBL/SBL 的引导时间? 

    在开发引导模式下、ROM 引导加载程序进行的配置非常少、并允许通过 JTAG 将应用程序代码或 SBL 加载到 RAM 中。

    请解释一下。  你想做什么?

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

    您好:Nilabh、

    感谢您的回答。

    我们正在将 AM263P 微控制器用于其中一个程序 、我们需要有关 RBL 的一些详细信息、并通过了解执行时间、RBL 行为、错误场景和故障操作在 SBL 中进行相应的规划。 目前我的团队正在开发 SBL、如果您能分享与我们的查询相关的更多信息、它会对我们有很大帮助。

    我有以下开放式问题、

    1. L2 存储器中应用映像可用的最大大小是多少? 对应用程序映像的数量及其大小是否有任何限制?
    2. 如所示 5.7.7 R5 SBL 切换 、HSM 将 640 字节从地址 0x70002000 复制到 TCMA 起始地址 0x20000。 640 字节
      由 IVT 和初始化代码组成。 在此步骤中,什么是初始化代码 — 640 字节?
    3. RBL 根据段执行 TI 自动初始化 5.2.1.1 公共 ROM 条目 。   TI auto init 在 RBL 中到底执行什么操作?
    4. 根据您与我们分享的以下链接、为什么 SBL 映像和应用程序映像之间存在存储器重叠?  【常见问题解答】AM2634:MCU-PLUS-SDK AM263X-AM263X:如何了解/优化 RBL/SBL 的启动时间? 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    L2 存储器中应用程序映像的最大可用大小是多少? 应用程序映像的数量及其大小是否有任何限制?

    您可以对应用程序使用完整的 OCRAM、一个例外是您提到的 SBL 重叠存储器、一旦 SBL 执行完成并且应用程序开始执行、稍后可以将其作为 BSS 存储器区域回收。

    根据部分所述 5.7.7 R5 SBL 切换 、HSM 将 640 字节从地址 0x70002000 复制到 TCMA 起始地址 0x20000。 640 字节
    由 IVT 和初始化代码组成。 在此步骤中,什么是初始化代码 — 640 字节?

    IVT 指中断向量表、您可以参阅此文件以了解确切的 IVT 表内容:

    mcu_plus_sdk_am263px/source/kernel/dl/r5/HwiP_armv7r_vectors_nortos_asm.S

    RBL 根据部分执行 TI 自动初始化 5.2.1.1 公共 ROM 条目 。   TI auto init 在 RBL 中确切执行什么操作?

    请参阅以下内容: https://software-dl.ti.com/codegen/docs/tiarmclang/compiler_tools_user_guide/compiler_manual/runtime_environment/system-initialization-stdz0543503.html

    此外、对于 R5F 的确切初始化序列 、您可以在以下文件中找到:mcu_plus_sdk_am263px/source/kernel/nortos/dl/r5/boot_armv7r_asm.S

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据您与我们分享的以下链接、为什么 SBL 映像和应用程序映像之间存在存储器重叠?  【常见问题解答】AM2634:MCU-PLUS-SDK AM263X-AM263X:如何了解/优化 RBL/SBL 的启动时间?  [/报价]

    当 ROM 从 RAM 位置 70002000 引导 SBL 时、因此此区域会重叠、但一旦开始执行应用程序、您就可以回收存储器。请参阅:

    e2e.ti.com/.../faq-mcu-plus-sdk-am243x-use-sbl-s-memory-from-application