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.

[参考译文] AM62A7-Q1:有关 AM62A SBL 启动的问题

Guru**** 2460850 points
Other Parts Discussed in Thread: SK-AM62A-LP, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1547665/am62a7-q1-question-about-am62a-sbl-startup

器件型号:AM62A7-Q1
主题中讨论的其他器件:SK-AM62A-LPSysConfig

工具/软件:

您好、TI 专家
我想询问 AM62A 的 SBL 启动相关问题。 当前的开发环境如下。
SDK 版本:V10.01.00
板:SK-am62a-LP
启动方法:SBL
存储:仅 eMMC

我们的设计旨在执行 OTA、包括用于 MCU R5F/DM R5F/A53 A/B 引导的所有固件。 起初考虑了 SPL 启动、但考虑到车辆网络管理和唤醒时间的要求、SBL 启动发生了变化。 这样、MCU R5F 可以加快启动速度并更快地与车辆中的其他 ECU 通信。 根据 SBL 启动和 OTA 升级的要求、我们研究了 SBL 启动的相关代码、并发现为了满足我们的需求 、必须在 sbl_eMMC_linux_stage1 代码中包含 A/B 启动的选择逻辑、对吗?

但是、我们有一些疑问、也想向 TI 专家咨询:

问题 1 。 将 A/B 启动的选择逻辑放置在 sbl_emmcnlinux_multistage1 的代码中是否可行?如果可行、请继续帮助查看以下问题。但如果不正常、请帮助提供建议或指导。


问题 2 。 MCU R5F 的固件默认在位置 0x800000 处刷写、并由 examples/drivers/boot/sbl_eMMC_linux_multistage/sbl_eMMC_linux_stage1/am62ax-sk/r5fss0-0_nortos/example.syscfg 编写。 在编译前对其进行配置。 sbl_eMMC_linux_stage1 是否可以动态选择要加载 MCU R5F 固件的地址? 例如、分区 A 选择加载位置 0x800000、而分区 B 选择加载另一个位置、例如 x1800000。


问题 3 。 sbl_eMMC_linux_stage2 是否还支持动态选择以加载其他固件地址、例如 HSM/DM?


问题 4 。 DDR 的初始化是否在 sbl_eMMC_linux_stage1 中执行? 如何在代码中配置 SysConfig 生成的 DDR 配置?


问题 5. 。 sbl_eMMC_linux_stage1 可以通过什么方式将信息发送到 sbl_eMMC_linux_stage2 或更高版本的 Linux 应用程序? 例如、某些寄存器或 DDR 保留地址段。这样做的目的是使用 OTA 策略、以便后续固件(例如 sbl_eMMC_linux_stage2/uboot/linux 应用)可以直接感知 sbl_eMMC_linux_stage1 选择的 A/B 分区。


问题 6.  由于我们配置了 MCU R5F 和 Linux 心跳信号、MCU R5F 可以检测 Linux 的生存状态。 我可能会问、如果 Linux 内核在启动阶段冻结、如何仅实现 A53 复位?

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

    您好、

    对于您的前 3 个问题、我假设通过 A/B 引导、您是指选择要从 eMMC 中不同地址刷写的 2 个应用程序引导哪个应用程序、而不是从 eMMC 的 boot0 和 boot1 分区中进行选择。 如果这是您的用例、是的、则可以实现这一点、您可以在 stage-1 和 stage-2 中添加选择逻辑来引导不同的应用、请参阅以下主题: (+) TMDS64EVM:SBL 切换和启动用户应用 — 处理器论坛-处理器 — TI E2E 支持论坛 

    这样您就可以了解如何实现用例、在此处、您需要为正在引导的每个内核添加额外的引导加载程序实例、因此在第 1 阶段中、您可以为 MCU R5 添加一个额外的引导加载程序实例、在第 2 阶段中、您可以为 DM R5、A53 和 HSM 添加额外的实例。 然后、您可以添加您的逻辑、以在 SBL stage-1 和 stage-2 代码中选择要引导的映像。  

    [报价 userid=“545514" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1547665/am62a7-q1-question-about-am62a-sbl-startup Q4 。 DDR 的初始化是否在 sbl_eMMC_linux_stage1 中执行? 如何在代码中配置由 SysConfig 生成的 DDR 配置?

    是的、DDR 初始化由 SBL stage-1 完成、您可以为此使用 DDR   配置器工具:SysConfig 配置完成后、您可以在  sbl_eMMC_linux_stage1 的 syscfg 文件中添加生成的 board_ddrReginit.h 文件 、而不是默认的文件:

    [报价 userid=“545514" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1547665/am62a7-q1-question-about-am62a-sbl-startup

    Q5 。 sbl_eMMC_linux_stage1 可以通过什么方式将信息发送到 sbl_eMMC_linux_stage2 或更高版本的 Linux 应用程序? 例如、某些寄存器或 DDR 保留地址段。这样做的目的是使用 OTA 策略、以便后续固件(例如 sbl_eMMC_linux_stage2/uboot/linux 应用)可以直接感知 sbl_eMMC_linux_stage1 选择的 A/B 分区。

    [/报价]

    在阶段 1 中完成 DDR 初始化后、可以使用 DDR 的未使用段将信息从一个阶段传递到另一个阶段。  

    [报价 userid=“545514" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1547665/am62a7-q1-question-about-am62a-sbl-startup 问题 6.  由于我们配置了 MCU R5F 和 Linux 心跳信号、MCU R5F 可以检测 Linux 的生存状态。 我是否可以问、如果 Linux 内核在启动阶段冻结、如何仅实现 A53 复位?

    我假设您在这种情况下需要从 MCU R5 触发 A53 复位、请确认。 我将检查并告诉您如何以及是否可以实现这一目标。

    此致、

    会面。

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

    您好、认识 Thakar

    感谢您的答复。

    最近我写了 stage1 代码来验证它,当前进度如下。
    1. A/B 标志已放置在 EMMC 用户分区中、当前 stage1 可以识别 A/B 标志并对其进行更改。

    2. stage1  现在可以加载相应的 MCU A/B 固件。


    3. stage1 可以通过地址 0x43C40000 处的 MSRAM 传递相应的 A/B 标志。 例如、uboot 或 Linux 也可以通过地址 0x43C40000 处的 MSRAM 识别当前 A/B 标志。

    但我有几个问题:
    1.我使用的 MSRAM 区域的起始地址为 0x43C40000、长度为 64KB。 这是我自己定义的具体使用计划吗? 因为我发现此处的某些内容默认未设置为 0、所以我担心其他内核可能正在使用它。

    2.由于我升级的对象是 MCU R5F 固件和 A53 内核/rootfs 的内核、因此我需要监控它们的启动情况以确保我的升级结果正常。升级后有许多可能出现故障、例如 MCU R5F 引导失败、A53 内核错误甚至都无法正常启动。 因此、stage1 需要监控它以确保在引导失效时间执行 A/B 切换。
    那么、如何在 stage1 启动 MCU R5F 和 A53 内核后监测其他内核呢? 例如、如果 ATF、Uboot、甚至是启动期间的内核错误、我需要重新启动整个 SOC。

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

    您好、

    那么、如何在 stage1 启动 MCU R5F 和 A53 内核后监控其他内核? [/报价]

    在 MCU 和 A53 内核的应用程序引导后、您可以使用 IPC 来监控这些内核。

    此致、

    会面。

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

    您好、

    是的、只要任何其他应用程序不使用此内存、您就可以使用此地址。

    好的

    一旦启动 MCU 和 A53 内核、您就可以使用 IPC 来监控它们的应用程序。

    IPC 不应该位于 stage1 或 2 上、对吧? 我知道运行后将不再存在 stage1 和 stage2、因此该 IPC 监控需要放置在 DM R5F 的固件中、对吧? 您是否有任何相关示例?

    此致、

    木材。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    IPC 不应该在 stage1 或 2 上、对吧? 我知道 stage1 和 stage2 在运行后将不再存在、因此该 IPC 监控需要放置在 DM R5F 的固件中、对吧?

    正确、您将无法在第 1 阶段或第 2 阶段使用 IPC、请参阅此响应:  关于 AM62A3-Q1:从 SBL stage2 监控内核状态  

    您必须在 DM R5 应用中添加 IPC、请参阅 MCU+SDK 中提供的 IPC 示例、并尝试集成到 DM R5F 应用中。 您还可以监控特定地址以监控内核是否正在运行或请注意、您也可以参考以下内容:  关于 AM62A3-Q1:在 SBL stag1 之后运行 MCU R5 

    此致、

    会面。

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

    您好、

    此页面提示我访问被拒绝。

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

    您好、

    请注意、您无法在 SBL stage-1/stage-2 中实现这一点、因为在 DM 固件启动并运行之前会阻止 MCU R5 应用程序、因此除非 DM 正在运行、否则您无法从 MCU R5 发送 IPC 消息。 不过、您可以在 DM 应用程序中添加此检查。

    您还可以探测 DM R5 中 MCU R5/A53 内核定期写入递增值的某个地址、如果您在上次读取时没有看到递增值、则可以假定 应用程序出现问题并触发复位。

    此致、
    会面。

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

    你(们)好

    我还认为 DM 应用程序应该用于此检测。因此、有两种方法可以执行此监控:
    1) DM 应用 用于监控某个存储器地址、例如前面提到的 MSRAM、并且 MCU R5F 会定期以递增值写入此地址。 如果 DM 应用 未检测到任何变化、则认为 MCU R5F 已损坏。


    2) MCU R5F 完成启动后(DM R5F 应用也正常完成启动) 、它会 通过 IPC 向 DM 应用发送一条消息。 如果 DM R5F 未接收到消息、则还会认为 MCU R5F 已失效。

    此外、是否有 DM R5F 复位的示例? 其复位是否会复位整个 SOC?

    此致、

    木材。

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

    您好、

    我还认为 DM 应用程序应该用于此检测。因此有两种方法可以执行此监视:

    是的。

    另外、是否有 DM R5F 复位的示例? 其复位是否会复位整个 SOC?

    生成 DM R5 不会使整个 SoC 复位、另外、不建议仅复位 DM R5、因为您的 DM 固件在其上运行。 您可以使用以下 API 来执行 SoC 复位: https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/11_01_00_16/exports/docs/api_guide_am62ax/group__SCICLIENT__FMW__PM__IF.html#ga7ffb0c42aa14e526199f7ffc3c4a08f7

    此致、

    会面。

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

    您好、

    好的,我得到了它。衷心感谢你最近的答复。

    此致、

    木材。