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.

[参考译文] SK-AM62-LP:关于 Mcu_Perform 复位功能问题

Guru**** 2587345 points
Other Parts Discussed in Thread: SK-AM62-LP

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1571015/sk-am62-lp-regarding-mcu_performreset-functionality-issue

器件型号:SK-AM62-LP


工具/软件:

您好团队:

MCAL 软件包:MCAL  Sitara_SitaraMPU_10.01.00.03

我们在 SK AM62 LP 板上使用 SBL NOR 闪存。

我们已经使用 SBL 刷写了应用程序并通过 SBL 引导

作为 MCU 驱动程序、在执行复位功能中使用以下代码片段

#Elif 定义的 (SOC_AM62AX)||定义的 (SOC_AM62X)||定义的 (SOC_AM62DX)||定义的 (SOC_AM62PX)||定义的 (SOC_J722S)
LLD_REG32_WR (&RSTADDR_MCU_CTRL_MMR->RST_MAGC_WORD_PROXY、0x01);
LLD_REG32_WR (&RSTADDR_MCU_CTRL_MMR->RST_CTRL、MCU_PERFORT_RESET_MASK);

但我们期望、它应该执行完全复位、等于电路板的断电和通电。 我们需要 SBL 引导流程才能再次启动、并在 R5 内核上运行我们的应用程序。

您能告诉我们 如何解决这个问题吗?

此致、

Pradeep R

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

    您好 Pradeep、

    [引述 userid=“551053" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1571015/sk-am62-lp-regarding-mcu_performreset-functionality-issue

    但我们期望、它应该执行完全复位、等于电路板的断电和通电。 我们需要 SBL 引导流程才能再次启动、并在 R5 内核上运行我们的应用程序。

    [/报价]

    MCU_PerformReset 对整个 SoC 执行热复位。 引导将再次从 SBL 开始、并将再次加载 R5 应用程序。 即使这不是断电开启式复位、 除了 一些保留其值的 CTRL MMR 寄存器外、其他一切都是复位的。

    此致、

    Nihar Potturu

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

    您好、Nihar、

    MCU_PerformReset 对整个 SoC 执行热复位。 引导将再次从 SBL 开始、并将再次加载 R5 应用程序。 即使这不是断电开启式复位、 除了 一些保留其值的 CTRL MMR 寄存器外、其他一切都是复位的

    反馈-->但没有发生这种情况、堆栈会损坏并进入异常状态。

    此致、

    Pradeep R

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

    您好、Nihar、

    我们尝试了电路板上的复位开关

    在 SK-AM62-LP 中的所有开关中、开关 SW1 会执行所需和预期的复位、如下所示、但根据 EVM 用户指南 、最好用开关 SW1 和 SW2 位[15:0]来设置 SoC 引导模式、这是相互矛盾的、因为 SW3 和 SW4 用作引导模式。 您能告诉我们 SW1 有什么作用吗? 以便我们可以在软件端尝试相同的操作  

    此致、

    Pradeep R

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

    您好 Pradeep、

    SW1 应执行与 Mcu_Perform 复位相同的复位类型。 您能告诉我、当调用 API 时、最终写入 RST_CTRL 寄存器的值。

    此致、

    Nihar Potturu。  

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

    您好、Nihar、  

    但 Mcu_Perform  复位与 SW1 执行的操作不同

    根据以下代码写入的值为“0x60"</s>“

    LLD_REG32_WR (&RSTADDR_MCU_CTRL_MMR->RST_CTRL、MCU_PERFORT_RESET_MASK);此处为 MCU_PERFORT_RESET_MASK = 0x60

    此致、

    Pradeep R

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

    您好 Pradeep、

    您是否可以尝试将 0x6(而不是 0x60)写入 RST_CTRL 寄存器。 如果未启用 MCU 域复位隔离、则写入 0x60 会导致一些意外行为。

    此致、

    Nihar Potturu

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

    您好、Nihar、  

    即使使用 0x6 也是相同的行为,在 Mcu_Perform 复位后,控制在 SBL 中

    此致、

    Pradeep R

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

    您好、Nihar、  

    #define rstaddr ((LLD_wkup_Ctrl_MMR_cfg0Regs *) 0x43000000U)
    #define RSTADDR_MCU_CTRL_MMR ((LLD_MCU_CTRL_MMR_cfg0Regs*) 0x04500000U)

    现在根据 MCU 驱动程序  使用的是 RSTADDR_MCU_CTRL_MMR、我们是否应该使用 rstaddr ?

    此致、

    Pradeep R

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

    您好、Nihar、

    另外、在 MCU 执行复位后连接时、请从 CCS 中找到 R5 内核的映像

    如果我们再次关闭电路板的电源、那么它会再次正常工作。

    此致、

    Pradeep R

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

    您好 Pradeep、

    [引述 userid=“551053" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1571015/sk-am62-lp-regarding-mcu_performreset-functionality-issue/6052192

    现在根据 MCU 驱动程序  使用的是 RSTADDR_MCU_CTRL_MMR、我们是否应该使用 rstaddr ?

    [/报价]

    您可以使用它们中的任何一个。 这不应该重要。

    另外、当我们在 MCU 执行复位后连接时、请从 CCS 找到 R5 内核的图像

    SoC 看起来卡在引导 ROM 代码中。 发生这种情况时、您能否共享 0x43018178 寄存器值。

    此致、

    Nihar Potturu

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

    您好、Nihar、

    我们尝试了两个但仍然相同的行为。

    地址   0x43018178 处的值为 0x00500000  

    此致、

    Pradeep R

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

    您好、Nihar、

    我们是否应该在执行复位操作之前解锁 MMR 寄存器。

    此致、

    Pradeep R

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

    尊敬的 Nihar:

    请查看所讨论的随附闪存原理图。

    e2e.ti.com/.../QSPI-Flash.pdf

    BR、

    Shubham

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

    您好 Pradeep、

    在今天调用之前、您能否确认 0x4206FF 是否是写入 Mcu_Perform 复位 API 中 RST_CTRL 寄存器的值。  

    此致、

    Nihar Potturu

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

    您好、Nihar、

    如今天通话中所述

    我们 遵循了以下复位顺序:

    fls_nor_reset();            -->由客户提供
    (void) Mcu_Perform、复位 ();   

    其中、Mcu_Perform 定义为 SoftSysReset

    #define MCU_PERFORT_RESET_MASK          ((Uint32) 0x06U)

    LLD_REG32_WR (&RSTADDR_MCU_CTRL_MMR->RST_CTRL、MCU_PERFORT_RESET_MASK);

    通过这种更改、SOC 复位按预期工作。

    此致、

    Pradeep R

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

    您好 Pradeep、

    感谢您的更新。 您可以继续使用此过程来执行 SoC 复位。

    此致、

    Nihar Potturu

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

    您好、Nihar、

    感谢您的反馈。

    此致、

    Pradeep R