工具/软件:
您好:
我们使用的是新的 SDK 11。 我已经获取了 R5 DM 的预编译映像(对于 am62xx-LP、为 ti-dm)。
SYSFW ABI:4.0 (固件版本0x000b'11.0.7--v11.00.07 (Fancy Rat)')
当我尝试进入 DEEP SLEEP 或仅 MCU 模式时、ti-sci 出现错误:
/home/user # echo mem >/sys/power/state
[207.626412] PM:暂挂进入(深)
[ 207.644474]文件系统同步:0.014秒
[207.681605] 冻结用户空间进程
[ 207.688258]已完成冻结用户空间进程(经过0.002秒)
[207.695325] 杀虫器已停用。
[207.698637] 冻结剩余的可冻结任务
[207.705249] 冻结剩余的可冻结任务已完成(经过0.002秒)
[ 207.712911] printk:暂停控制台(使用 NO_CONSOLE_SUSPEND 进行调试)
[207.726163] RTC-rv8803 1-0032:电压低、数据无效。
[ 208.041420]=> ti_sci:dev system-controller@44043000、id 179、stat 1、constr resp = 2
[ 208.041460] dwc3-am62 f910000.dwc3-USB:TI_sci_PD:ID:179设置设备约束。
[ 208.041744]=> ti_sci:dev system-controller@44043000、id 178、stat 1、constr resp = 2
[ 208.041767] dwc3-am62 f900000.dwc3-USB:TI_sci_PD:ID:178设置设备约束。
[208.042712] am65-cpsw-Nuss 8000000.Ethernet eth0:链路断开
[208.043040] am65-cpsw-Nuss 8000000.Ethernet eth1:链路断开
[ 208.049583]=> ti_sci:dev system-controller@44043000、id 117、stat 1、constr resp = 2
[ 208.049627] rtc-ti-k3 2b1f0000.rtc:TI_sci_pd:ID:117设置器件约束。
[ 208.049972]=> ti_sci:sleep resp = 0
[208.049989] ti-sci 44043000.system-controller:无法准备休眠
[208.050006] ti-sci 44043000.system-controller:pm:dPM_run_callback ():platform_pm_suspm+0x0/0x6c 返回-19
[208.050065] ti-sci 44043000.system-controller: pm: failed to suspend: error -19
[208.050088] PM:某些设备无法暂停或检测到早期唤醒事件
我添加了一些带有"=>"的额外 printk-s。
已发送3个开发约束:2个 USB + 1个 RTC。 它与 Foundational_Components Power_Management 文档的日志中的操作相同:https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/sdk/sdk/pm_low_power_mode.html#deep-sleep
因为我 understad USBs 是例外。
从 MCU+ SDK src 代码:
/drivers/device_manager/rm_pm_hal/rm_pm_hal_src/pm/drivers/lpm/lpm_handler.c
/**
*如果有约束的设备属于主 devgrp ,则不可能有 lpm
* 例外情况:USB0和 USB1
*/
if (devgrp == main_devgrp){
if (((i == USB0_DEV_ID)||(i == USB1_DEV_ID)||(i == USB0_ISO_DEV_ID)||(i == USB1_ISO_DEV_ID)){
我甚至尝试关闭 RTC、但没有任何帮助。
来自 DM 的响应为0x0 = NACK、而不是0x2=ACK。
因此,我完全禁用了(在 ti_sci_pm_domains.c 的源代码中注释)发送 dev (wakeups )约束。
运行此操作后、它现在有效:我可以进入深度睡眠模式和仅 MCU 模式(具有延迟限制)。
问题是:
1.你知道为什么它不适用于 USBs 吗?
2、是否应该进入深度睡眠模式,内部 RTC DEV 117约束?
3.我还看到发送了3个 UART 约束、但我已习惯通过向 SYS-FS 电源/唤醒写入"禁用"来将其关闭。 是否可以在 devtree 中禁用它?
4.是否可以从设备树中禁用 USB 限制? 我没有在那里使用唤醒源 propperty。
提前感谢您。