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:在 Android 16 中挂起到 RAM 失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1586626/am62p-suspend-to-ram-failed-in-android-16

部件号: AM62P

尊敬的专家:

 我尝试在 ti-Am62p Android 16 中使用 Suspent to RAM (S2R) 功能、但设备会在第二次暂停后重新启动。 首次休眠后附加日志。

console:/# rtcwake -s 10 -m mem
I/O:辅助 TC 1 正在初始化
I/CPU:辅助 TC 1 切换到正常世界引导
I/O:辅助 TC 2 正在初始化
I/O:辅助 TC 2 切换到正常的世界引导
I/O:辅助 TC 3 正在初始化
I/O:从 TC 3 切换到正常的世界引导
[ 122.078137][T2801] platform 79000000.r5f:k3_r5_suspend:等待 rproc 完成事件的中断
[127.198090][T2801] CPU1:无法联机
[127.198114][T2801] CPU1:在未知状态下失败:0x0
[132.318104][T2801] CPU2:无法联机
[132.318118][T2801] CPU2:在未知状态下失败:0x0
[137.438077][T2801] CPU3:无法联机
[137.438090][T2801] CPU3:在未知状态下失败:0x0
[137.657773][T688]  dwc3 31000000.usb:请求 000000000000 未排队等待 ep0out
2025 年 10 月 30 日、星期四、04:46:12 使用/dev/rtc0 上的“mem"唤醒“唤醒

我使用了命令、
rtcwake -s 10 m mem

此致、
Bibin Robin

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

    您好:

    “好的、我会回来的。“

    谢谢你。

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

    您好、Maxime:

    仍在寻求有关此问题的帮助。

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

    您好、Maxime:

    期待您的答复。

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

    您好、

    调查仍在进行中。 我会回来的。  

    谢谢你。

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

    Bibin Robint ,

    我们为您提供了一个修复。

    在内核编译系统中、在`private/devices/ti/am6x/`中:  

    commit 08a2a5e6fb4d98958621767f9556a3fea97fd22a (HEAD -> integ/ti-android-linux-6.12.y)
    Author: Guillaume La Roque <glaroque@baylibre.com>
    Date:   Mon Dec 8 14:22:32 2025 +0100
    
        BUILD.bazel, ti.fragment: fix remoteproc RPMSG support for suspend/resume
        
        Add virtio_rpmsg_bus.ko to VENDOR_DLKM_MODULES and enable CONFIG_RPMSG_NS
        to fix RPMSG communication between main domain and MCU R5 remoteproc.
        This is required for proper suspend/resume wakeup handling.
        
        Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
        
        Robot Generated with [Claude Code](claude.com/claude-code)
        
        Co-Authored-By: Claude <noreply@anthropic.com>
    
    diff --git a/BUILD.bazel b/BUILD.bazel
    index c1c5b73a8461..283e1173a0a4 100644
    --- a/BUILD.bazel
    +++ b/BUILD.bazel
    @@ -212,6 +212,7 @@ TI_VENDOR_DLKM_MODULES = [
         "ti_k3_dsp_remoteproc.ko",
         "ti_k3_m4_remoteproc.ko",
         "ti_k3_r5_remoteproc.ko",
    +    "virtio_rpmsg_bus.ko",
         "wave5.ko",
         "wl18xx.ko",
         "wlcore.ko",
    diff --git a/ti.fragment b/ti.fragment
    index 6c1cfc015b58..1e8f0d44303d 100644
    --- a/ti.fragment
    +++ b/ti.fragment
    @@ -73,6 +73,7 @@ CONFIG_REGULATOR_TPS65219=m
     CONFIG_REGULATOR_TPS6594=m
     CONFIG_RESET_TI_SCI=m
     CONFIG_RESET_TI_SYSCON=m
    +CONFIG_RPMSG_NS=m
     CONFIG_RPMSG_VIRTIO=m
     CONFIG_RTC_DRV_BQ32K=m
     CONFIG_RTC_DRV_TI_K3=m
    



    注意、默认情况下、如果 optee OS 日志已启用、则在 CPU 唤醒时创建问题、则在 ruser 中看不到此问题、因为在用户 optee OS 日志中已禁用。 要在调试中进行测试、您需要在 bootlaoder build env 的 build 文件夹中使用此补丁重新编译 optee OS:
    commit 11833d5ac131f4eca153c36dc1835acaa85ba831 (HEAD)
    Author: Guillaume La Roque <glaroque@baylibre.com>
    Date:   Mon Oct 6 20:04:37 2025 +0200
    
        build_optee: add missing xtest ta
        
        add to missing TA for xtest.
        
        Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
    
    diff --git a/build_optee.sh b/build_optee.sh
    index 75f4e939463c..5eb373ac2e9b 100755
    --- a/build_optee.sh
    +++ b/build_optee.sh
    @@ -27,7 +27,7 @@ function get_optee_flags {
         # additional flags
         case "${mode}" in
             "release") flags+=" DEBUG=0 CFG_TEE_CORE_LOG_LEVEL=0 CFG_UART_ENABLE=n" ;;
    -        "debug") flags+=" DEBUG=1" ;;
    +        "debug") flags+=" DEBUG=0 CFG_TEE_CORE_LOG_LEVEL=0" ;;
             "factory")
                 flags+=" DEBUG=0 CFG_TEE_CORE_LOG_LEVEL=0 CFG_UART_ENABLE=n"
     
    (END)


    如果您尝试使用 USB c 电缆为 adb 插接它将提前唤醒板,以便良好的测试,拔下或在测试之前执行此操作:  


    echo disabled > /sys/devices/platform/bus@f0000/f900000.dwc3
    echo disabled > /sys/devices/platform/bus@f0000/f910000.dwc3

    Regards.
    Guillaume

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

    尊敬的 Guillaume:
    我应用了 补丁。
    运行命令  ( rtcwake -s 10 -mem) 时、 器件仅在睡眠后唤醒一次。
    再次运行命令时 ( rtcwake -s 10 -mem)、器件无法睡眠
    第一次和第二次尝试后共享日志。

    记录


    console:/# rtcwake -s 10 -m mem
    I/O:辅助 TC 1 正在初始化
    I/O:辅助 TC 1 切换到正常世界引导
    I/O:辅助 TC 2 正在初始化
    I/O:辅助 TC 2 切换到正常的世界引导
    I/O:辅助 TC 3 正在初始化
    I/O:从 TC 3 切换到正常的世界引导
    [106.462441][T2741] CPU1:无法联机
    [106.462461][T2741] CPU1:在未知状态下失败:0x0
    [111.582422][T2741] CPU2:无法联机
    [111.582433][T2741] CPU2:在未知状态下失败:0x0
    [116.702422][T2741] CPU3:无法联机
    [116.702433][T2741] CPU3:在未知状态下失败:0x0
    [116.847927][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_ctrl、已尝试:rpmsg:rpmsg_ctrl
    2025 年 12 月 10 日星期三:06:34:31 使用/dev/rtc0 中的“mem"进行“进行唤醒
    [117.119229][T174] ueventd:LoadWithAliases 无法加载 rpmsg:rpmsg_ns、尝试:rpmsg:rpmsg_ns
    console:/#[ 117.371187][T174] ueventd:LoadWithAliases 无法加载 rpmsg:ti.ipc4.ping-pong、尝试:rpmsg:ti.ipc4.ping_pong
    [117.419330][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_chrdev、已尝试:rpmsg:rpmsg_chrdev
    [117.443364][T174] uventd:LoadWithAliases 无法加载 virtio:d00000007v00000000、尝试:virtio:d00000007v00000000
    [117.504357][T174] ueventd: LoadWithAliases 无法加载 platform:rproc-virtio,已尝试: platform:rproc_virtio
    [118.253733][T174] ueventd: LoadWithAliases 无法加载:Nethernet-phyT(Null)、已尝试:of:Nethernet_phyT(Null)
    [118.643478][T174] ueventd: LoadWithAliases 无法加载:Nethernet-phyT(Null)、已尝试:of:Nethernet_phyT(Null)
    [118.987038][T174] ueventd: LoadWithAliases 无法加载 platform:rproc-virtio, try: platform:rproc_virtio
    [119.016699][T174] ueventd: LoadWithAliases 无法加载 platform:rproc-virtio, try: platform:rproc_virtio
    [119.046620][T174] ueventd: LoadWithAliases 无法加载 virtio:d00000007v00000000、尝试:virtio:d00000007v00000000
    [119.077734][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_ctrl、已尝试:rpmsg:rpmsg_ctrl
    [119.106074][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_ns、尝试了:rpmsg:rpmsg_ns
    [119.129456][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_ns、尝试了:rpmsg:rpmsg_ns
    [119.157677][T174] ueventd: LoadWithAliases 无法加载 rpmsg:ti.ipc4.ping-pong,尝试: rpmsg:ti.ipc4.ping_pong
    [119.185677][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_chrdev、已尝试:rpmsg:rpmsg_chrdev
    [119.216085][T174] uventd:LoadWithAliases 无法加载 virtio:d00000007v00000000、尝试:virtio:d00000007v00000000

    记录

    console:/# rtcwake -s 10 -m mem
    [548.051399][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_ctrl、已尝试:rpmsg:rpmsg_ctrl
    rtcwake:xwrite:不允许操作
    使用/dev/rt 中的“mem"唤醒“唤醒[ 548.242594][T174] ueventd:LoadWithAliases 无法加载 rpmsg:rpmsg_ns、尝试:rpmsg:rpmsg_ns
    C02025 年 12 月 10 日星期三 06:42:08
    [548.256600][T174] ueventd:LoadWithAliases 无法加载 rpmsg:ti.ipc4.ping-pong、尝试:rpmsg:ti.ipc4.ping_pong
    1|console:/#[ 548.269619][T174] ueventd:LoadWithAliases 无法加载 rpmsg:rpmsg_chrdev、尝试:rpmsg:rpmsg_chrdev
    [548.280683][T174] ueventd: LoadWithAliases 无法加载 virtio:d00000007v000000000000,尝试: virtio:d00000007v00000000
    [548.2910][T174] ueventd: LoadWithAliases 无法加载 platform:rproc-virtio,已尝试: platform:rproc_virtio
    [548.327387][T174] ueventd: LoadWithAliases 无法加载:Nethernet-phyT(Null)、已尝试:of:Nethernet_phyT(Null)
    [548.342044][T174] ueventd: LoadWithAliases 无法加载:Nethernet-phyT(Null)、已尝试:of:Nethernet_phyT(Null)
    [548.356660][T174] ueventd: LoadWithAliases 无法加载 platform:rproc-virtio,已尝试: platform:rproc_virtio
    [548.370166][T174] ueventd: LoadWithAliases 无法加载 platform:rproc-virtio,已尝试: platform:rproc_virtio
    [548.384549][T174] ueventd: LoadWithAliases 无法加载 virtio:d00000007v000000000000,尝试: virtio:d00000007v00000000
    [548.399412][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_ctrl、已尝试:rpmsg:rpmsg_ctrl
    [548.412792][T174] ueventd:LoadWithAliases 无法加载 rpmsg:rpmsg_ns、尝试过:rpmsg:rpmsg_ns
    [548.425561][T174] ueventd:LoadWithAliases 无法加载 rpmsg:rpmsg_ns、尝试过:rpmsg:rpmsg_ns
    [548.437696][T174] ueventd: LoadWithAliases 无法加载 virtio:d00000007v00000000,尝试: virtio:d00000007v00000000
    [548.456547][T174] ueventd:LoadWithAliases 无法加载 rpmsg:ti.ipc4.ping-pong、尝试:rpmsg:ti.ipc4.ping_pong
    [548.471507][T174] ueventd: LoadWithAliases 无法加载 rpmsg:rpmsg_chrdev、已尝试:rpmsg:rpmsg_chrdev

    此致、

    Bibin Robin

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

    您好、

    在您的日志中、我会看到来自被测人的消息、我在您需要禁用它之前说过、或者挂起将无法正常工作、

    对于恢复来太快可能链接因为我说唤醒 src ,如果你有数据 USBC 电缆插头默认它生成一个 wakesrc。
    wakeup src list here : https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/pm/lpm.html#wake-up-sources

    您可以从 boardconfig-common.mk 文件中删除 quiet 以获得更多日志。

    Guillaume