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.

[参考译文] TMDS64EVM:复位并重新启动 AM64

Guru**** 2487345 points
Other Parts Discussed in Thread: AM6422, TMDS64EVM, UNIFLASH

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64

器件型号:TMDS64EVM
主题中讨论的其他器件:AM6422UNIFLASH

工具与软件:

您好、TI 支持团队。

请告诉我关于重新启动 AM6422的信息。
我将使用 CA53、CR5和 PRU 固件。
请告诉我如何在每个 CPU 固件运行时重置和重新启动。 重新启动后、我要从 CR5 SBL 启动。
请告诉我 SDK 等中是否有任何示例代码

此致、
今泉清正。

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

    尊敬的 Kiyomasa:

    感谢您的提问。

    Unknown 说:
    请告诉我如何在每个 CPU 固件运行时重置并重启。 重新启动后、我想从 CR5 SBL 开始。

    您能告诉我们这里用例是什么吗?

    您能否确认、您的意思是通过一个内核(例如 R5F)上运行的固件在其他内核也在运行时重置 SoC?

    此致、

    Tushar

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

    你好 Tushar Thakur。

    感谢您的答复。

    用例如下:
    当主电源打开时、SBL 将运行、然后是 CR5 (包括 PRU)和 CA53应用程序固件。
    例如、用户将按下按钮(GPIO)、CA53将解释按钮按压操作、CA53应用程序固件将复位每个 CPU、然后系统将从 SBL 重新启动。

    我的意思是、在其他内核同时运行的情况下、通过在一个内核(CA53)上运行的固件对所有 SoC 进行复位。

    请告诉我使用 CA53应用程序重置和重新启动每个 CPU (CR5、PRU、CA53)的过程。

    此致、

    今泉清正。

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

    您好、今泉清正、

    AM64x SoC 不支持每次 CPU 复位。

    在 SoC 上有两个复位。 一个是 WarmReset 或 POR。

    热复位可通过 SW 或 HW 引脚实现。

    POR 可通过 HW 引脚执行。

    在每次复位中、引导从 RBL→SBL→Application 开始。

    区别在于每个复位类型保存 MMR 寄存器内容。

    AM64X 器件支持重置隔离特性。 使用此功能、您只能将 M4F 内核(MCU 域) 与复位隔离。

    例如、当按下 SW 时、在 M4F 内核中断中、您只能复位主域内核。 主圆顶内核为 A53、R5F。

    复位效应不会通过 M4F 内核传播  

    此致、

    Anil。

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

    您好、Swargam Anil、

    感谢您的答复。

    第1号
    POR 能否不仅由硬件开关执行、还能通过将"0110"写入 CTRLMMR_MCU_RST_CTRL 寄存器的 SW_MAIN_POR [4:7]字段来执行?

    第2号
    在复位机制方面、写入 CTRLMMR_MCU_RST_CTRL 是否会生成 M4F 内核中断并复位主域?

    第3号
    此外、是否可以将"0110"写入 CA53中断处理程序中 CTRLMMR_MCU_RST_CTRL 的 SW_MAIN_POR 或 SW_MAIN_WARMRST 以执行软件复位?

    此致。
    今泉清正。

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

    您好、今泉清正、

    有关重置主题的更多详细信息、请查看下面的常见问题解答。

    此常见问题解答可消除您的所有疑问。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1407057/faq-reset-topic-on-am64x-am243-am62x-soc

    此致、

    Anil。

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

    您好、Swargam Anil。
    感谢您的答复。

    我选中了0636.RESET_Analysis.xlsx。


    ——
    如何确定当前固件是处于通用模式还是隔离模式?
    换而言之、如何确定我的固件是否将 M4F 内核与 MAIN 域分开?

    ——
    在主 Dominin 软件 POR 的外设状态中、它说

    >在常规模式下:无重置效果

    这是什么意思? 是否意味着​​所有外设的寄存器值均保留?


    ——
    软件 POR 注释中写入了以下内容:

    >1. 在通用模式下、软件 POR 操作将不起作用、这意味着当用户在非隔离模式下配置 M4F 内核时、用户无法进行 Softwarewatre POR。 仅当 M4F 内核处于隔离模式时、用户才能进行软件 POR

    目前、将"0110"写入 CTRLMMR_MCU_RST_CTRL 中的 SW_MAIN_POR [4:7]会复位 M4F 内核、但这是因为 M4F 处于隔离模式吗?

    此致、
    今泉清正。

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

    您好、今泉清正、

    所有 MCU+SDK 示例都没有隔离 MCU 内核的功能。

    如果 您想将 M4F 内核与 主 域隔离、请参阅下面的示例和章节。

    即使您  在通用模式下控制 CTRL MMR 寄存器的 POR 位(不将 MCU 内核与主域隔离)、POR 也不起作用。

    当您 将 MCU 内核与主域隔离时、POR 将正常工作。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/10_00_00_20/exports/docs/api_guide_am64x/MCU_RESET_ISOLATION.html

    示例代码路径:   \ti\mcu_plus_sdk_am64x_10_00_00_20\examples\drivers\safety\reset_isolation。

    此致、

    Anil。

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

    您好、Swargam Anil。

    感谢您的答复。

    >1. 在通用模式下、软件 POR 操作将不起作用、这意味着当用户在非隔离模式下配置 M4F 内核时、用户无法进行 Softwarewatre POR。 仅当 M4F 内核处于隔离模式时、用户才能进行软件 POR
    >所有 MCU+SDK 示例都没有隔离 MCU 核心的功能。


    我注意到 POR 有一些奇怪的事情。
    在以下示例工程中、我创建了代码以将"0110"写入 CTRLMMR_RST_CTRL 的 SW_MAIN_POR 寄存器。

    gpio_input_interrupt_am64x-evm_r5fss0-0_nortos_ti-arm-clang.zip


    加载后在 XDS110上运行、不会发生 POR 复位。
    我认为是正确的。
    但是、当使用 OSPI 闪存从 ROM 引导时、会发生 POR 复位。
    根据目前介绍、M4F 未在示例项目中分离、因此 POR 不应起作用。

    为什么从 ROM 引导时 POR 可以工作?

    此致、

    Kiyomasa Imaizumi.e2e.ti.com/.../1212.gpio_5F00_input_5F00_interrupt_5F00_am64x_2D00_evm_5F00_r5fss0_2D00_0_5F00_nortos_5F00_ti_2D00_arm_2D00_clang.zip

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

    您好、Swargam Anil。

    请针对上述 POR 的行为进行回应。

    此致、
    今泉清正。

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

    您好、今泉清正、

    请看下面的图片。

    根据 TRM、当 M4F 内核配置为通用内核时、用户不能使用 SW POR 来进行 POR、而用户应使用 MCU_PORz 引脚进行 SOC 复位、建议这样做。

    此软件 POR 在上述当前情况下正常运行、我在其他 硬件中已看到、触发软件 POR 后、引导不会启动并在 ROM 引导加载程序中停止。 因此、请勿在通用模式下使用 SW POR。

    此致、

    Anil。

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

    您好、Swargam Anil。

    在上图中、有三种 M4F 状态。
    案例1:M4FSS 作为"独立"安全处理器
    案例2:M4FSS 作为"监控"安全处理器
    案例3:M4FSS 作为通用处理器或未使用。

    在为我自己创建的 CA53或 CR5编写固件时、如何确定是哪个 M4F 用例?

    此致、
    今泉清正。

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

    附加说明。
    CR5和 CA53应用程序正在运行、但我不知道 M4F 当时处于什么状态。 换句话说、无论它是出于产生目的、安全还是未被使用。
    即使是安全处理器、我也不知道它是独立处理器还是监控处理器、或者它执行的是什么安全功能。

    此致、

    今泉清正。

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

    您好、今泉清正、

    我正在查看您的问题,您可能希望 在今天之前得到回复。

    此致、

    ANI

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

    您好、Swargam Anil。

    谢谢你。 我在等你的答复。
    关于上述示例项目的第一个问题、您能否解释一下为什么从 RAM 引导时不会发生 POR 复位、而使用 OSPI 闪存从 ROM 引导时确实会发生 POR 复位?

    最棒的餐厅
    今泉清正。

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

    您好、 今泉清正、

    [报价 userid="574260" url="~/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64/5527900 #5527900"]

    在上图中、有三种 M4F 状态。
    案例1:M4FSS 作为"独立"安全处理器
    案例2:M4FSS 作为"监控"安全处理器
    案例3:M4FSS 作为通用处理器或未使用。

    在为我自己创建的 CA53或 CR5编写固件时、如何确定是哪个 M4F 用例?

    [报价]

    所有 MCU+SDK 示例都没有隔离 MCU 内核的特性。

    如果您想将 M4F 内核与主 域隔离、请参阅以下示例和章节。

    示例代码路径:    \ti\mcu_plus_sdk_am64x_10_00_00_20\examples\drivers\safety\reset_isolation。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/10_00_00_20/exports/docs/api_guide_am64x/MCU_RESET_ISOLATION.html

    如果您查看复位隔离示例、可以看到一些标志来禁用 MAIn2MCU 和 MCU2MAIn PSC 桥接器。

    如果启用了这些电桥并且设置了复位隔离标志、则 M4F 可以配置为 M4F 监控模式。

    如果这些电桥被禁用并且 复位隔离标志被置位、则 M4F 可以配置为 M4F 作为安全处理器。

    如果这些桥接器已启用并且未设置复位隔离标志、则 M4F 可以配置为 M4F 通用模式。

    请查看流程图和示例以及 MCU+SDK 文档以启用复位隔离步骤。

    谢谢。 我在等你的答复。
    关于上述示例项目的第一个问题、您能否解释一下为何从 RAM 引导时不会发生 POR 复位、而是在使用 OSPI 闪存从 ROM 引导时确实会发生 POR 复位?[/QUOT]

    有关上述问题、请查看下面的答案。

    [报价 userid="525901" url="~/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64/5507970 #5507970"]

    请看下面的图片。

    根据 TRM、当 M4F 内核配置为通用内核时、用户不能使用 SW POR 来进行 POR、而用户应使用 MCU_PORz 引脚进行 SOC 复位、建议这样做。

    此软件 POR 在上述当前情况下正常运行、我在其他 硬件中已看到、触发软件 POR 后、引导不会启动并在 ROM 引导加载程序中停止。 因此、请勿在通用模式下使用 SW POR。

    [报价]

    此致、

    Anil。

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

    您好、Swargam Anil。

    感谢您的答复。

    我在下面构建了示例工程并获得了 reset_isolation_system.appimage.hs_fs。
    C:\ti\mcu_plus_sdk_am64x_09_01_00_41\examples\drivers\safety\reset_isolation


    写入 TMDS64EVM 的 OSPI 闪存并为其上电后、会显示以下调试输出:

    ——
    DMSC 固件版本9.1.6--v09.01.06 (Kool Koala)
    DMSC 固件版本0x9
    DMSC ABI 修订版3.1

    某些测试失败!!
    ——

    如果多次打开和关闭电源、应用程序可能会启动。

    我使用以下器件作为我的 SBL OSPI:
    sbl_prebuilt/am64x-evm/sbl_dfu_uniflash.release.hs_fs.tiimage
    我是否缺少 SBL OSPI 中的某些设置?

    请告诉我如何解决此问题。

    最棒的餐厅
    今泉清正。

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

    您好、 今泉清正、

    您能否请尝试 SBL_OSPI 而不是 DFU uniflash 映像并共享测试结果?

    此致、

    Anil。

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

    您好、Swargam Anil。

    感谢您的答复。

    我使用的是 sbl_ospi.debug.hs_fs.tiimage。
    我正在附加一个应用程序映像。

    当我写入 OSPI 闪存并加电时、收到错误消息"某些测试已失败!!"
    但是、当我在 EVM 上按下 SW7时、它会按如下所示启动。

    ——CR5监护仪——
    DMSC 固件版本9.1.6--v09.01.06 (Kool Koala)
    DMSC 固件版本0x9
    DMSC ABI 修订版3.1

    [bootloader_profile]引导介质:NOR SPI 闪存
    [bootloader_profile]引导介质时钟:166.667 MHz
    [bootloader_profile]引导映像大小:38 KB
    [bootloader_profile] Cores present:
    m4f0-0
    r5f0-0
    [引导加载程序配置文件] SYSFW init:12170uS
    [引导加载程序配置文件] System_init:349499us
    [引导加载程序配置文件] Drivers_open:321us
    [引导加载程序配置文件] Board_driversOpen:23228us
    [bootloader profile] Sciclient 获取版本: 10033us
    [引导加载程序配置文件] CPU 负载:49515us
    [bootloader_profile] SBL 总耗时:444772us

    图像加载完成、切换到应用程序...
    运行 CPU m4f0-0至400000000 Hz。
    运行 CPU r5f0-0至800000000 Hz。
    启动 R5
    按下并释放 EVM 上的 SW5按钮以从 SW...触发热复位
    按下并释放 EVM 上的 SW4按钮、以从硬件触发热复位。

    我正在运行(R5)!:- 0
    我正在运行(R5)!:- 1.
    ---

    -- M4F 监视器---
    我正在运行(M4)!!:- 0
    我正在跑步(M4)!!:- 1.
    我正在跑步(M4)!!:- 2.
    我正在跑步(M4)!!:- 3.
    我正在跑步(M4)!!:- 4.
    ---

    还有一个问题。
    当我尝试在这个状态下把目标从 CCS 连接到 M4F 时、会出现一个错误。

    请告诉我如何解决这个问题。

    e2e.ti.com/.../resetisolation.zip


    此致、
    今泉清正。

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

    其他说明:
    当我将 RESET_ISOLATION_MCU_DOMAIN.c 中的 debugIsolationEnable 从1更改为0时、我能够从 CCS 连接到 M4F。

    如果 debugIsolationEnable=1、这是否意味着我无法从 XDS110连接?

    此致、

    今泉清正。

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

    其他说明:
    以下代码可在 reset_isolation_mcu_domain.c 中找到
    ---

    Hwip_Params resetHwiParams;
    Hwip_Object resetObject;

    Hwip_Params_init (&resetHwiParams);
    resetHwiParams.intNum = 25;
    resetHwiParams.callback = resetReqIsr;
    resetHwiParams.isPulse = 0;
    Hwip_construct (&resetObject、&resetHwiParams);
    }
    ---

    由于 intNum=25是 MCU_UART1_USART_IRQ_0、因此我认为这是 UART1中断。
    为什么在 TMDS64EVM 上按下 SW4会导致在 M4F 上出现 resetReqIsr?

    此致、
    今泉清正。

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

    您好、 今泉清正、

    [报价 userid="574260" url="~/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64/5538830 #5538830"]

    当我将 RESET_ISOLATION_MCU_DOMAIN.c 中的 debugIsolationEnable 从1更改为0时、我能够从 CCS 连接到 M4F。

    如果 debugIsolationEnable=1、这是否意味着我无法从 XDS110连接?

    [报价]

    要将调试器连接到 M4F 内核、可执行上述步骤、且您的理解是正确的。

    [报价 userid="574260" url="~/support/processors-group/processors/f/processors-forum/1428541/tmds64evm-reset-and-reboot-the-am64/5539143 #5539143"]

    以下代码可在 reset_isolation_mcu_domain.c 中找到
    ---

    Hwip_Params resetHwiParams;
    Hwip_Object resetObject;

    Hwip_Params_init (&resetHwiParams);
    resetHwiParams.intNum = 25;
    resetHwiParams.callback = resetReqIsr;
    resetHwiParams.isPulse = 0;
    Hwip_construct (&resetObject、&resetHwiParams);
    }
    ---

    由于 intNum=25是 MCU_UART1_USART_IRQ_0、因此我认为这是 UART1中断。
    为什么在 TMDS64EVM 上按下 SW4会导致在 M4F 上出现 resetReqIsr?

    [报价]

    以上查询是合理的。 实际上你需要检查 第9个 中断编号而不是25。 因为 M4F 内核中断从16个开始。 这些中断是内部的且特定于 SOC。 因此、用户无法使用它们。

    要将中断路由到 M4F 内核、您需要添加偏移值、即16 + M4F 内核中断编号。

    现在、我们将 warmReset 中断路由到 M4F 内核。

    在本例中、warmReset 中断数为9、偏移值为16、因此总值为25。

    此致、

    Anil。

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

    您好、Swargam Anil。

    感谢您的答复。

    作为参考、有没有任何规范规定 M4F 内核的中断从16开始?

    此致、
    今泉清正。

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

    您好、 今泉清正、

    TRM 和这些  特定于 DMSC 内核的中断中未说明上述信息。

    对于 AM64X、用户可以将 DMSC 内核用作黑盒。 因此、此信息在 TRM 中不可用。

    在将中断路由至 M4F 内核时、请使用偏移值16。

    我需要看看我们如何将此信息添加到文档中。

    我将关闭此主题并为新查询打开新主题。

    此致、

    Anil。