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.

[参考译文] AM3354:软复位时的复位源问题

Guru**** 2541610 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/619365/am3354-reset-source-issue-with-soft-reset

器件型号:AM3354

你(们)好  

我遇到   了重新启动的真正原因。

我知道 AM335X TRM 的26.1.10.2节中有一个引导参数结构、其中包含此信息。

下面介绍了一些内容。  

当前复位原因位掩码
(位=1事件存在)
[0]–加电(冷)复位
[1]–全局热软件
复位
[2]–保留
09h 重置原因1 [3]–保留
[4]–WDT1定时器复位
[5]–全局外部热复位

其他位–保留

注意:ROM 代码不是
清除这些位中的任何一个。

现在有问题:

 寄存器的值 、如下所示

1:在下电上电时为 0x01 (正常、因为它与  上电(冷)复位通信)

2:在软件上 ,它是0x03 (这也是可以的)

3:看门狗时,我得到了0x13 (这告诉我的 Uboot 这次重新启动 是由于 WDT 超时,这也是正常的)

但是现在、如果我重新启动(复位) 、那么我也 会获得0x13、这是错误的、因为这一次它 来自全局热软件复位、所以它应该是0x03、或者至少 WDT 位应该是0、但在我通电之前、我始终会找到它1 周期。

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

    在应用软复位时是否禁用 WDT?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Biser、

    在执行 Linux 重新引导时、我想看门狗已经停止。 但在 uboot 中,我没有停止 wathdog,因此它应该在运行。

    BTW:我刚刚注意到从 TRM 中复制粘贴的内容、如下所示
    注意:ROM 代码不是
    清除这些位中的任何一个。

    这意味着 ROM 代码不会重置它,这意味着我获得相同值的原因,但我是否可以在 MLO 或 uboot 中重置它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您只需清除该位置。

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

    嗯、我找不到 复位该位的方法。

    但仔细阅读 TRM 后、我发现了下面的解决方案。 (8.1.13.5.3 PRM_RSTST 寄存器(偏移= 8h)[复位= 1h])

    int *wdtData =(PRM_RSTCTRL+ 0x8);

    wdtFlag = readl (wdtData);

     wdtFlag = wdtFlag | 0x10; //这里它在 TRM 中的技巧它提到的 R/W、但它的 actully W1toCl 位、所以必须这样做才能将其清除

    *wdtData = wdtFlag ;

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

    我正在浏览 e2e、并在下面的链接中找到
    e2e.ti.com/.../506261


    因此,我现在实际上是 PRM_RSTST,以便在 u-Boot (而不是 MLO)中获取重启原因并将其复位。

    我们能否在 u-boot 中依赖该寄存器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然。