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.

[参考译文] AM62P:低概率异常热复位

Guru**** 2460850 points
Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1537374/am62p-low-probability-abnormal-thermal-reset

部件号:AM62P


工具/软件:

尊敬的专家:

客户从报告了一个异常热复位问题  MCU_CTRL_MMR_CFG0_RST_SRC 寄存器、值为 0x10、位 4 变为 1、而从 TRM 来看、该热复位的原因为 热复位、  所以我让客户打印 VTM 传感器的温度,客户也使用了冷却解决方案, VTM 传感器的打印温度始终在 48°C 和 50°C 左右,我还检查了 WKUP_VTM_MISC_CTRL2[25-16] MAXT_OUTRG_ALERT_THR、值为 0x2f8、 它 代表 123C 、 因此这是不可能的、是真正的热复位 、我还允许客户禁用 VTM 超出范围更改。 清除 WKUP_VTM_MISC_CTRL[0] ANYMAXT_OUTRG_ALERT_EN  位并更改源代码以禁用热复位。 在测试过程中、该位始终为 0、并且低概率 (1/3000) 异常复位仍然存在。

因此、我认为、尽管复位原因说它是热复位、 但肯定是错误的、不能是热复位 但我无法找到异常重置的原因。 我还让客户在 TI EVM 上进行测试、 也可以使用 TI 默认 SDK 在大约 700 倍的上电和断电时间内对其进行复制。 这些器件使用 OSPI+EMMC 引导模式、eMMC 速度为 DDR52。 我需要帮助您找出导致 SOC 触发热复位的任何原因并将其记录为热复位?

BR、

Biao  

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

    尊敬的专家:

    我们可以在 AM62P EVM 板上重现客户报告问题。

    以下是重现方法。

    硬件:AM62P-SK EVM 板在 25°C 室温下运行

    SW:SD 卡引导方法运行 RDK10.1 AM62P 预编译文件系统+打印寄存器 0x0451 8178h MMR0_RST_SRC 寄存器 uboot。  

       附加的 env.c 文件已进行修改。

    测试方法、为 EVM 板供电运行 30 秒、确保 AM62P 进入 Linux 操作系统、然后断电 5 秒。

    我们可以在日志行 1342306 会发生热复位。 我们认为、这与客户问题相同、是异常热复位。

    请帮助我们进行重现问题、并与我们一起进行调试。

    此致!

    Han Tao

    运行我们找到的测试 3000 电路  

    e2e.ti.com/.../minicom_2D00_20250709.7ze2e.ti.com/.../env.c

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

    您好专家、
    我们在 TI 开发板上重现的环境如下:
    引导方法:OSPI + eMMC
    MCU 程序位于闪存中
    SoC 程序存储在 eMMC 中
    MCU 软件:使用 SDK 中的 Hello World 程序并进行额外的寄存器打印(附件中提供的源代码)。
    主域软件:我们的专有产品软件。

    如果需要更多详细信息、请告知我们。

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

    /*
     *  Copyright (C) 2023-2024 Texas Instruments Incorporated
     *
     *  Redistribution and use in source and binary forms, with or without
     *  modification, are permitted provided that the following conditions
     *  are met:
     *
     *    Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     *    Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the
     *    distribution.
     *
     *    Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    #include <stdlib.h>
    #include <kernel/dpl/DebugP.h>
    #include "ti_drivers_config.h"
    #include "ti_board_config.h"
    #include "ti_drivers_open_close.h"
    #include "ti_board_open_close.h"
    #include "FreeRTOS.h"
    #include "task.h"
    
    #define MAIN_TASK_PRI  (configMAX_PRIORITIES-1)
    
    #define MAIN_TASK_SIZE (16384U/sizeof(configSTACK_DEPTH_TYPE))
    StackType_t gMainTaskStack[MAIN_TASK_SIZE] __attribute__((aligned(32)));
    
    StaticTask_t gMainTaskObj;
    TaskHandle_t gMainTask;
    
    #define REG_RESET_WKUP  0x43018178
    #define REG_RESET_MCU   0x04518178
    #define REG_TEMPER      0x00B01010
    #define VTM_REGISTER (*(volatile uint32_t *)0x00B0100C)
    
    volatile uint32_t *reg_wkup_ptr = (volatile uint32_t *)REG_RESET_WKUP;
    volatile uint32_t *reg_mcu_ptr = (volatile uint32_t *)REG_RESET_MCU;
    volatile uint32_t *reg_temp_ptr = (volatile uint32_t *)REG_TEMPER;
    
    void hello_world_main(void *args);
    void hello_world_main01(void *args);
    
    void freertos_main(void *args)
    {
        int32_t status = SystemP_SUCCESS;
    
        /* Open drivers */
        Drivers_open();
        /* Open flash and board drivers */
        status = Board_driversOpen();
        DebugP_assert(status==SystemP_SUCCESS);
    
        hello_world_main01(NULL);
    
        /* Close board and flash drivers */
        Board_driversClose();
        /* Close drivers */
        Drivers_close();
    
        vTaskDelete(NULL);
    }
    
    
    int main()
    {
        /* init SOC specific modules */
        System_init();
        Board_init();
    
        /* This task is created at highest priority, it should create more tasks and then delete itself */
        gMainTask = xTaskCreateStatic( freertos_main,   /* Pointer to the function that implements the task. */
                                      "freertos_main", /* Text name for the task.  This is to facilitate debugging only. */
                                      MAIN_TASK_SIZE,  /* Stack depth in units of StackType_t typically uint32_t on 32b CPUs */
                                      NULL,            /* We are not using the task parameter. */
                                      MAIN_TASK_PRI,   /* task priority, 0 is lowest priority, configMAX_PRIORITIES-1 is highest */
                                      gMainTaskStack,  /* pointer to stack base */
                                      &gMainTaskObj ); /* pointer to statically allocated task object memory */
        configASSERT(gMainTask != NULL);
    
        /* Start the scheduler to start the tasks executing. */
        vTaskStartScheduler();
    
        /* The following line should never be reached because vTaskStartScheduler()
        will only return if there was not enough FreeRTOS heap memory available to
        create the Idle and (if configured) Timer tasks.  Heap management, and
        techniques for trapping heap exhaustion, are described in the book text. */
        DebugP_assertNoLog(0);
    
        return 0;
    }
    
    
    void hello_world_main01(void *args)
    {
        const TickType_t delay_1s = pdMS_TO_TICKS(1000); 
        DebugP_log("h----\r\n");
        while (1) 
        {
            // DebugP_log("Hello World111!\r\n");
            uint32_t reg_mcu = *reg_mcu_ptr;
            uint32_t reg_wkup = *reg_wkup_ptr;
            uint32_t reg_temp = *reg_temp_ptr;
            DebugP_log(" %x %x %x %x\r\n", reg_mcu, reg_wkup, reg_temp, VTM_REGISTER);
            vTaskDelay(delay_1s);
        }
    }

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

    你好、韩涛、

    我请右专家就上述问题发表评论。

    此致、

    Anil.

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

    您好、Anshu:

    是否在您这边重现热复位?

    我在周末运行了另一个测试循环 6000、这次我无法在我的电路板上重现室温过热保护、并附上了测试日志。 您能否尝试在您这边设置相同的测试环境?

    直到现在测试超过~12,000 个测试循环、现在只需在 EVM 板上重现一次即可。

    此致!

    Han Tao

    e2e.ti.com/.../onoff120000.7z

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

    嗨、陶先生、

    此设置中涉及许多元件、每个元件都可以创建一个变量来影响此复位观察结果。  

    根据我所说的:

    • 您使用的是 Linux SDK 10.0 还是 SDK 10.1? 请确认。
    • OSPI 和 eMMC 的引导方法
    • k3_j72xx_badgap.c 驱动器将发生变化
    • MCU 固件的更改

    我们需要确定哪些组件可能导致复位。

    您能否确认 SoC 是否实际正在复位、或者它只是寄存器因为热而复位?

    谢谢、

    Anshu

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

    嗨、陶先生、

    RST_SRC 寄存器在成功的测试周期中返回什么?

    谢谢、

    Anshu

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

    尊敬的 Anshu:

    在出现此问题之前、与  k3_j72xx_bading.c 驱动程序和 MCU 固件相关的任何变化、原始 SDK10.1 也可以在 EVM 上重现此问题。 此问题与引导模式无关、因为我们使用 SD 卡和 NOR 闪存启动重现了该问题。  

    客户清除中的位后、需要更正某些内容  WKUP_VTM_MISC_CTRL[0] ANYMAXT_OUTRG_ALERT_EN、客户表示异常复位已消失(经过超过 30000 次测试确认后)、客户先前的反馈存在一些误解。

    Anshu、我们需要您的帮助 为什么温度传感器值为~48C(片上传感器和定制电路板传感器都说其为~48C)、VTM 仍会输出 THERM_MAXTEMP_OUTRANGE_ALERT 来触发热复位。

    ]在成功的测试周期中、_RST_SRC 寄存器返回什么结果?
    [/报价]

    值为 0。

    您使用的是 Linux SDK 10.0 还是 SDK 10.1? 请确认。

    客户正在 EVM 中使用 SDK10.0、定制电路板、现场团队在 EVM 上测试 10.1、所有这些都可能会重现此问题。

    BR、

    Biao

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

    尊敬的 Anshu:

    以下日志可以证明发生了热复位。 而不仅仅是寄存器值发生变化。

    e2e.ti.com/.../warm-reset-log.txt。

    BR、

    Biao

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

    您好、Anshu:

    将 AM62P 的芯片温度保持在~100C 看起来不会增加问题重现概率。 我们运行了大约 5 小时、使用客户映像不报告热复位。 只需运行约~3000 圈随机触发这个问题。

    此致!

    Han Tao

    这是 EVM 板打印日志。 供参考

    [bootloader profile] App_loadSelfcoreImage : 4242us
    [bootloader_profile] SBL 总用时:44668us

    图像加载完成、切换到应用程序...
    启动第二阶段引导加载程序
    [bootloader_profile]引导介质:闪存
    [bootloader_profile]引导介质时钟:166.667MHz
    [bootloader_profile]引导映像大小:909 KB
    [bootloader_profile]存在内核:
    HSM-m4f0-0
    MCU-r5f0-0
    A530-0
    [bootloader profile] System_init:2148us
    【引导加载程序配置文件】Board_init:2us
    [bootloader profile] FreeRTosTask 创建: 258us
    【引导加载程序配置文件】SBL Drivers_open:1010us
    【引导加载程序配置文件】SBL Board_driversOpen : 130us
    【引导加载程序配置文件】App_loadImages:3692us
    【引导加载程序配置文件】App_loadMCUImages:6048us
    【引导加载程序配置文件】App_loadLinuxstart /usr/bin/start-dra……
    net.core.wmem_max = 4194304
    net.core.wmem_default = 1048576
    start_idrive...
    start_idrive 完成!!!
    启动/usr/bin/start-dra 完成。
    rpmsg_char_find_rproc: 79000000.r5f 没有任何 virtio 设备!
    rpmsg_char_find_rproc: 79000000.r5f 没有任何 virtio 设备!

    ____ ____ _
    |________________|_|___________|__________
    ||_|.'|。 |。 ||__|_|。 |||-_|_|_|
    |____|_|_|__、|___||__||___||___|___|___|___|___|__
    |___||___|

    root@Linuxcat /sys/class/thermal/thermal_zone */ temp
    98445
    99147.
    100195.
    root@Linuxcat /sys/class/thermal/thermal_zone */ temp
    101064
    101064
    100891.
    root@Linuxcat /sys/class/thermal/thermal_zone */ temp
    102275.
    103134.
    102963
    root@Linuxcat /sys/class/thermal/thermal_zone */ temp
    103819
    103648
    103648
    root@Linuxcat /sys/class/thermal/thermal_zone */ temp
    103819
    105012
    104672.
    root@Linuxcat /sys/class/thermal/thermal_zone */ temp
    104502
    105012
    104842.
    root@Linuxcat /sys/class/thermal/thermal_zone */ temp
    105690
    105521
    105860

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

    嗨、陶先生、

    您能提供这些寄存器的转储吗?

    • VTM_CFG2_CLK_CTRL 寄存器 (0x00B0_1008)
    • VTM_CFG2_MISC_CTRL (0x00B0_100C)
    • VTM_CFG2_MISC_CTRL2 (0x00B0_1010)
    • VTM_CFG2_SAMPLE_CTRL (0x00B0_1020)

    我们可以与硬件团队一起查看这些寄存器输出。

    如果在运行这些测试之前卸载了 VTM 驱动程序、会出现什么行为?

    谢谢、

    Anshu

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

    您好、Anshu:

    0x00b01008 值为 0x14

    0x00b0100c 值为 0x1

    0x00b01010 值为 0x28802F8

    0x00b01020 值为 0xAA9

    这是客户软件 Linux 启动设置结果。

    此致!

    Han Tao


    root@linux:~# devmem2 0x00b01008
    /dev/mem 已打开。
    映射到地址 0xffff9edf0000 的存储器。
    读取地址 0x00B01008 (0xff9edf0008):0x00000014
    root@linux:~# devmem2 0x00b0100c
    /dev/mem 已打开。
    映射到地址 0xffffa04C7000 的存储器。
    读取地址 0x00B0100C (0xffffa04c700c):0x00000001
    root@linux:~# devmem2 0x00b01010
    /dev/mem 已打开。
    映射到地址 0xff9daf4000 的存储器。
    在地址 0x00B01010 (0xffff9daf4010) 处读取:0x028802F8
    root@linux:~# devmem2 0x00b01020
    /dev/mem 已打开。
    映射到地址 0xffffb741b000 的存储器。
    读取地址:0x00B01020 (0xffb741b020):0x00000AA9

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

    嗨、陶先生、

    卸载 VTM 模块以将其从设备树中移除的最简单方法。 然后重新编译设备树并进行测试。

    diff --git a/arch/arm64/boot/dts/ti/k3-am62p.dtsi b/arch/arm64/boot/dts/ti/k3-am62p.dtsi
    index 809e1dbf2..9151fc9de 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62p.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62p.dtsi
    @@ -137,7 +137,7 @@ dss1_vp1_clk: clock-divider-oldi-dss1 {
                    clock-mult = <1>;
            };
    
    -       #include "k3-am62p-j722s-common-thermal.dtsi"
    +       //#include "k3-am62p-j722s-common-thermal.dtsi"
     };
    
     /* Now include peripherals for each bus segment */
    

    我已经运行默认 Linux SDK 大约 100 次迭代、但我没有观察到这种行为。

    在每个周期中、如何对器件进行下电上电? 是否已移除并插入 PCB 的电源? 或者还有其他方法吗?

    如果器件长时间处于空闲状态(即没有循环)、器件是否会看到热复位?

    谢谢、

    Anshu

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

    你好陶和团队

    Anshu 已经分享了如何通过从设备树中删除 VTM 禁用,希望这有助于

     

    我们正在努力进一步理解

    1. 如果在 VTM 复位/中断被屏蔽的情况下发生了复位
    2. 复位是在更接近引导/初始化时间时发生、还是在程序运行期间更晚发生
    3. 如果您要运行程序的时间足够长、或者需要在两者之间进行下电上电才能重现、是否会发生故障。 不清楚是否存在任何其他导致某个问题的“干扰“

     

     

    对于裸片 ID 读取、您可以使用以下 e2e 帖子读出寄存器值

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1436394/am67a-die-registers-of-the-am67a/5520800

     

    我想总结到目前为止的观察结果、请更正并根据需要添加

     

    1. 该问题出现在客户测试的 100%电路板上。  故障是~ 1/3000 时间?
    2. 使用客户的测试用例可以在 EVM 上重现问题
    3. 问题似乎对软件加载/交互很敏感、一个简单的测试可能不会重现问题
    4. 报告的发生复位的温度为~ 55C、即使它被配置为在~ 123C 等条件下复位
    5. 通过吹热空气提高 EVM 的温度~ 100C 不会增加 FAILURE /RESET 的频率。

     

    如果我们错过了什么、请告诉我们?

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

    您好、Anshu:

    您可以使用 Agilent E3634A 电源自动开/关 AM62P EVM 电路板。

    我为您附加了 Linux 脚本。 通过 PC UART 接口、您可以通过以下命令控制 Agilent E3634A 电源

    #源代码 poweronoff.txt

    这是从客户/现场 EVM 板捕获的芯片 ID。 请检查它。

    此致!

    Han Tao

    客户电路板#1 客户侧 EVM TI EVM
    WKUP_CTRL_MMR0_CFG0_DIE_ID0
    0x43000020
    0x0C8A0001 0x10520000 0x5F120000
    WKUP_CTRL_MMR0_CFG0_DIE_ID1
    0x43000024
    0x00000000 0x00000000 0x00000000
    WKUP_CTRL_MMR0_CFG0_DIE_ID2
    0x43000028
    0x0800FC69 0x08331FB6 0x0833E338
    WKUP_CTRL_MMR0_CFG0_DIE_ID3
    0x4300002C
    0x0601B016 0x01036ECD 0x01038918

    e2e.ti.com/.../poweronoff.txt

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

    嗨、陶先生、

    我们将与硬件团队讨论芯片 ID 结果。 我还正在设计一种更好的设置、以便在我的 EVM 上运行迭代测试。

    移除 VTM 后、测试结果是什么? 请参阅我之前的文章、了解有关如何禁用 VTM 的说明。

    我想在热复位之前看看 VTM 的值是多少。 您能否在引导时运行此脚本?

    #!/bin/bash
    
    
    while true; do
            echo "========Thermal Zone Output========="
            cat /sys/class/thermal/thermal_zone*/temp
            echo "===================================="
            sleep 4
    done
    


    您能否共享失败的测试周期的 A53 日志? 请包含关断日志和带有 RST_SRC 输出的下一个引导日志。 另外、请在日志中包含热区输出。 我想看看 Linux 日志中是否显示了任何信息。



    谢谢、

    Anshu

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

    您好、Anshu:

    感谢您帮助我们与工厂核实裸片 ID 信息。

    请检查我上周发送的邮件。 AM62P 的芯片温度已通过 minicom 捕获。

    该日志是 TI 实验室的 AM62P EVM 板、将 Tj 增加到~105°C 测试结果。 我将 Tj 提高至 105°C 不会 加速问题重现。

    测试超过 2000 个圆我不能重现它。

    soclog.txt 是客户电路板捕获触发器 AM62P 热复位打印输出日志。 我已捕获它、复位在 AM62P 处发生、开始时间约为 4.7 秒。

    请检查它。

    此致!

    Han Tao

     e2e.ti.com/.../100ctemp.7ze2e.ti.com/.../_ED700D594D4F_soclog.txt

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

    嗨、陶先生、

    请共享最新的器件树源文件、以便我们可以与软件开发团队一起查看。

    谢谢、

    Anshu

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

    嗨、陶先生、

    请提供这些寄存器的输出:

    • 0x00B01304
    • 0x00B01324
    • 0x00B01344

    这些寄存器保存 VTM 的修整值(增益和失调电压)。 共享此输出后、硬件团队可以将其与其他 AM62P 样片进行比较、以确保这些值符合合理要求。

    谢谢、

    Anshu

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

    尊敬的 Anshu:

    我认为此修整没有帮助。 因为这不是单芯片问题、所以这都是芯片问题。 如果修整错误、温度传感器的值将始终是错误的、但现在温度传感器的值是正确的、但它将随机触发热复位、无论如何都可以从不同电路板看到下面的寄存器值:

    板 1:

    root@am62pxx-EVM:~# devmem2 0x00B01304
    /dev/mem 已打开。
    映射到地址 0xff9e874000 的存储器。
    在地址 0x00B01304 处读取 (0xff9e874304): 0x0000080F
    root@am62pxx-EVM:~# devmem2 0x00B01324
    /dev/mem 已打开。
    映射到地址 0xffffba89f000 的存储器。
    读取地址 0x00B01324 (0xffffba89f324): 0x0000080F
    root@am62pxx-EVM:~# devmem2 0x00B01344
    /dev/mem 已打开。
    存储器映射到地址 0xff95b2b000。
    在地址 0x00B01344 处读取 (0xff95b2b344): 0x0000080F

    板 2:

    root@am62pxx-EVM:~# devmem2 0x00B01304
    /dev/mem 已打开。
    映射到地址 0xff9e874000 的存储器。
    在地址 0x00B01304 处读取 (0xff9e874304): 0x0000080F
    root@am62pxx-EVM:~# devmem2 0x00B01324
    /dev/mem 已打开。
    映射到地址 0xffffba89f000 的存储器。
    读取地址 0x00B01324 (0xffffba89f324): 0x0000080F
    root@am62pxx-EVM:~# devmem2 0x00B01344
    /dev/mem 已打开。
    存储器映射到地址 0xff95b2b000。
    在地址 0x00B01344 处读取 (0xff95b2b344): 0x0000080F

    BR、

    Biao

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

    尊敬的 Anshu:

    客户电路板:

    root@linux:~# devmem2 0x00B01304
    /dev/mem 已打开。
    映射到地址 0xffffa017d000 的存储器。
    读取地址:0x00B01304 (0xffffa017d304):0x0000090F
    root@linux:~# devmem2 0x00B01324
    /dev/mem 已打开。
    映射到地址 0xff93f21000 的存储器。
    读取地址:0x00B01324 (0xff93f21324):0x0000090F
    root@linux:~# devmem2 0x00B01344
    /dev/mem 已打开。
    映射到地址 0xffffa40ab000 的存储器。
    读取地址:0x00B01344 (0xffffa40ab344):0x0000090F
    root@linux:~#

     客户侧的 EVM 电路板 :
    root@linux:~# devmem2 0x00B01304
    /dev/mem 已打开。
    地址 0xffffb6fa4000 映射的存储器。
    读取地址:0x00B01304 (0xffffb6fa4304):0x0000090F
    root@linux:~# devmem2 0x00B01324
    /dev/mem 已打开。
    映射到地址 0xffffb85cf000 的存储器。
    读取地址:0x00B01324 (0xffffb85cf324):0x0000090F
    root@linux:~# devmem2 0x00B01344
    /dev/mem 已打开。
    存储器映射到地址 0xffffa0df9000。
    读取地址:0x00B01344 (0xffffa0df9344):0x0000090F
    root@linux:~#

    BR、

    Biao

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

    您好、Anshu:

    EVM 板运行 RDK10.1 uboot/文件系统 I 使用默认的 dtb 文件。

    下面是我的手 EVM 板、用于 dtb 和解编译 dts 文件。 在 ti-processor-sdk-linux-am62pxx-evm-10.01.10.04/board-support/ti-linux-kernel-6.6.58+git-ti/arch/arm64/boot/dts/ti 中找到。 使用 DTC 命令进行编译以供您参考。

    #dtc -i dtb -O dts k3-am62p5-sk.dtb -o am62p-evm.dts

    最好的 Regars!

    Han Tao

    e2e.ti.com/.../am62p_2D00_evm.dtse2e.ti.com/.../2148.k3_2D00_am62p5_2D00_sk.dtb

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

    尊敬的专家:

    以下是客户电路板上电/断电波形测试结果。 请回顾一下。

    上电起点是 AM62P PMIC 3.3V 电源达到 100%电压。

    断电起始点是 PMIC NRSTOUT 变为 0。

    此致!

    Han tao

    PMIC 电源网名称 测试点名称 为基准电源轨上电/断电 测试用例 结果(ms)μ s
    上电序列 VCCA
    PVIN
    EN/PB/VSENSE
    GPIO4/VMON2/ADC_IN/nSLEEP1
    (SYS_3V3)
    TD9. 上电起始点 使用 -
    LDO2
    (DVDD_3V3)↑100%-
    SYS_3V3↑100%
    TD16 DVDD_3V3 与 SYS_3V3 延迟进行比较 Tdelay (ms) 1.184.
    BUCK3
    (VDD_IO_1V8)↑0%-
    DVDD_3V3↑100%
    TD13 VDD_IO_1V8 与 DVDD_3V3 延迟进行比较 Tdelay (ms) 1.066
    LDO1
    (VDDA_1V8)↑0%-VDD_IO_1V8↑0%
    TD15 VDDA_1V8 与 VDD_IO_1V8 延迟时间进行比较   Tdelay (ms) –0.038763.
    BUCK4
    (VDD_DDR_1V1)↑0%-
    VDDA_1V8↑0%
    TD14 VDD_DDR_1V1 与 VDDA_1V8 延迟时间进行比较   Tdelay (ms) 2.347.
    BUCK1
    (VDD_CORE)↑0%-
    VDD_DDR_1V1↑0%
    TD12 VDD_CORE 与 VDD_DDR_1V1 延迟时间进行比较   Tdelay (ms) 0.599353.
    LDO3
    (VCC_0V85)↑0%-
    VDD_CORE↑0%
    TD17 VCC_0V85 与 VDD_CORE 延迟时间进行比较   Tdelay (ms) 0.547117
    VMON1/nINT
    (VDD_IO_3V3)↑0%–3V3↑0%
    TP30 VDD_IO_3V3 与 DVDD_3V3 延迟时间进行比较   Tdelay (ms) 1.831.
    NRSTOUT↑100%-VCC_0V85↑100% R118 NRSTOUT 与 VCC_0V85 延迟时间进行比较   Tdelay (ms) 10.756.
    NRSTOUT R118 参考起始点 使用 -
    断电序列 VMON1
    (VDD_IO_3V3)↓100%-
    NRSTOUT↓100%
    TP30 VDD_IO_3V3 与 NRSTOUT 延迟时间进行比较   Tdelay (ms) –0.039628
    LDO3
    (VCC_0V85)↓100%-
    VDD_IO_3V3↓100%
    TD17 VCC_0V85 与 VDD_IO_3V3 延迟时间进行比较   Tdelay (ms) 0
    BUCK1
    (VDD_CORE)↓100%-
    VCC_0V85↓100%
    TD12 VDD_CORE 与 VCC_0V85 延迟时间进行比较   Tdelay (ms) 0
    BUCK4
    (VDD_DDR_1V1)↓100%-
    VDD_CORE↓100%
    TD14 VDD_DDR_1V1 与 VDD_CORE 延迟时间进行比较   Tdelay (ms) 0
    LDO1
    (VDDA_1V8)↓100%
    VDD_DDR_1V1↓100%
    TD15 VDDA_1V8 与 VDD_DDR_1V1 延迟时间进行比较   Tdelay (ms) 0
    BUCK3
    (VDD_IO_1V8)↓100%
    VDDA_1V8↓100%
    TD13 VDD_IO_1V8 与 VDDA_1V8 延迟时间进行比较   Tdelay (ms) 0
    LDO2
    (DVDD_3V3)↓100%-VDD_IO_1V8↓100%
    TP16 DVDD_3V3 与 VDD_IO_1V8 延迟时间进行比较   Tdelay (ms) 0
    SYS_3V3↓100%- DVDD_3V3↓100% TD9. SYS_3V3 与 DVDD_3V3 延迟时间进行比较   Tdelay (ms) 0
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的专家:

    以下内容是在 RDK10.1 处禁用 MCU R5F (AM62p@0x79000000)、在 uboot 处打印输出复位源寄存器、修改后运行上电/断电情况。

    希望使用禁用 R5F 内核方法检查 Cortex-R5F 是否在 AM62P 时触发热复位。

    禁用方法:

    1.修改 RDK10.1 内核文件夹/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts 文件禁用 R5F 节点。

    e2e.ti.com/.../k3_2D00_am62p5_2D00_sk_2D00_dts.patch

    2.删除包含 r5f 固件的所有文件系统。
         a. root@am62pxx-EVM:/lib/firmware rm am62p-mcu-R5f0_0-fw
           root@am62pxx-EVM:/lib/firmware rm am62p-mcu-R5f0_0-fw-sec
         b. usr/lib/opkg/alternatives# rm am62p-mcu-R5f0_0-fw
            usr/lib/opkg/alternatives# rm am62p-mcu-R5f0_0-fw-sec

    打开电源 30 秒、关闭 10 秒情况。

    此致!

    Han Tao

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

    尊敬的专家:

    请检查以下日志。 例如、禁用 MCU R5F 无法解决此问题。

    此致!

    Han Taoe2e.ti.com/.../disable_2D00_mcu_2D00_r5f.7z

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

    您好的团队:

    为了重现问题并监控 VTM 驱动器启用、是否触发热复位。

    请启用内核日志是 7 并提供内核启动日志。 我们将再次在 EVM 板上使用该测试。

    此致!

    Han Tao