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:使用 12.01.00.05 Linux 内核暂停失败

Guru**** 2982590 points

Other Parts Discussed in Thread: AM62P, AM625

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1663669/am62p-suspend-failure-with-12-01-00-05-linux-kernel

部件号: AM62P
主题中讨论的其他器件: AM625

在 Linux 内核从 “12.01.00.04“更新到“12.01.00.05“ (Linux 6.18) 后、 我们注意到暂停恢复的回归。

Linux 主线也可以正常运行。

AM62P 和 AM625 都存在该问题。

这里是来自 AM62P 的日志(完整日志: job_1240392.log )

Kern :info: [776.992791] PM:暂挂进入(深)
Kern :info :[ 776.993334]文件系统同步: 0.000 秒
Kern :info :[ 777.080319]冻结用户空间进程
Kern :info :[ 777.110048]已完成冻结用户空间进程(经过 0.029 秒)
KERN :INFO :[ 777.110080]停用杀虫剂。
Kern :info :[ 777.110085]冻结剩余的可自由存储任务
Kern :info :[ 777.111422]冻结剩余的可自由存储任务已完成(经过 0.001 秒)
Kern :info :[ 777.4650] am65-cpsw-Nuss 8000000.Ethernet end0:链路断开
Kern :err :[ 777.473946] ti-sci 44043000.system-controller:无法准备睡眠
Kern :err :[ 777.480547] ti-sci 44043000.system-controller: pm: dPM_run_callback (): platform_pm_suspend 返回–19
Kern :err :[ 777.489883] ti-sci 44043000. system-controller: pm: failed to suspend: error –19
Kern :err :[ 777.497454] PM:某些设备无法暂停、或检测到早期唤醒事件
Kern :info :[ 777.522722] am65-cpsw-Nuss 8000000.Ethernet:设置新的 follow-id-base 19
Kern :info :[777.537844] am65-cpsw-Nuss 8000000.Ethernet end0:PHY [8000f00.MDIO:00]驱动程序[TI DP83867](IRQ=387)
Kern :info :[ 777.539553] am65-cpsw-Nuss 8000000.Ethernet end0:配置 phy/rgmii-rxid 链路模式
Kern :warn : [ 777.628365] USB-conn-GPIO 连接器:重复角色:设备
Kern :info :[ 777.711157]已启用 oom killer。
Kern :info :[ 777.711184]正在重新启动任务:正在启动
Kern :info :[ 777.715251]正在重新启动任务:已完成
Kern :通知:[777.715415] 随机:系统恢复时、crng 重新执行
KERN :INFO: [777.715858] PM:暂停退出
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 FD:  

    您是在 TI EVM 还是在定制硬件上进行测试?

    此错误是否持续发生? 您能否提供 DM 固件版本?

    此致、

    Anshu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是在 TI EVM 上还是在定制硬件上进行测试?

    定制硬件。 Verdin AM62 和 Verdin AM62P 都是发生问题的。 Linux 内核树中包含这两者的 DT。

    在 TI SK 板上进行测试并不明显。

    此错误是否始终发生?

    是的、问题是系统性的

    您能否提供 DM 固件版本?
    [/报价]

    SYSFW ABI: 4.0 (firmware rev 0x000c '12.0.2--v12.00.02 (Clever Cat)')

    我在第一条消息中附加了完整的日志、如果需要、您应该能够在其中找到更多数据。

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

    尊敬的 FD:  

    让我与软件开发团队一起查看测试日志、看看哪些补丁在版本之间合并了。 我将在 Day 星期四结束时回复您。

    此致、

    Anshu

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

    尊敬的 FD:

    您是否可以应用此修补程序并再次共享日志?

    diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
    index 5bbfcc36eb8ef..9c4b43e9bed82 100644
    --- a/drivers/base/power/main.c
    +++ b/drivers/base/power/main.c
    @@ -1593,9 +1593,12 @@ static void dpm_propagate_wakeup_to_parent(struct device *dev)
     
     	spin_lock_irq(&parent->power.lock);
     
    -	if (device_wakeup_path(dev) && !parent->power.ignore_children)
    +	if (device_wakeup_path(dev) && !parent->power.ignore_children) {
     		parent->power.wakeup_path = true;
     
    +		dev_info(parent, "DEBUG: dpm_suspend: device is parent of a wakeup source\n");
    +	}
    +
     	spin_unlock_irq(&parent->power.lock);
     }
     
    @@ -1951,9 +1954,12 @@ static void device_suspend(struct device *dev, pm_message_t state, bool async)
      End:
     	if (!error) {
     		dev->power.is_suspended = true;
    -		if (device_may_wakeup(dev))
    +		if (device_may_wakeup(dev)) {
     			dev->power.wakeup_path = true;
     
    +			dev_info(dev, "DEBUG: dpm_suspend: device may wakeup due to being in the wakeup_path\n");
    +		}
    +
     		dpm_propagate_wakeup_to_parent(dev);
     		dpm_clear_superiors_direct_complete(dev);
     	}
    diff --git a/drivers/pmdomain/ti/ti_sci_pm_domains.c b/drivers/pmdomain/ti/ti_sci_pm_domains.c
    index 0c21a2fdec8d9..8b118b5c349bd 100644
    --- a/drivers/pmdomain/ti/ti_sci_pm_domains.c
    +++ b/drivers/pmdomain/ti/ti_sci_pm_domains.c
    @@ -91,6 +91,8 @@ static inline void ti_sci_pd_set_wkup_constraint(struct device *dev)
     		 * If device can wakeup using IO daisy chain wakeups,
     		 * we do not want to set a constraint.
     		 */
    +		dev_info(dev, "DEBUG: device may wakeup or in wakeup path\n");
    +
     		if (device_out_band_wakeup(dev)) {
     			dev_dbg(dev, "%s: has out of band wakeup, not setting constraints\n", \
     					__func__);

    此致、

    Anshu

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

    谢谢你的建议,我会在接下来的几天看看(本周我不确定我有时间).

    您是否能够在某些 TI EVK/SK 平台上进行测试? 此处不存在问题?

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

    尊敬的 FD:

    我们现在没有对 EVM 进行测试、但开发团队注意到、他们在之前的工作期间观察到了类似的错误。 他们使用我分享的同一补丁启动了调试过程。

    此致、

    Anshu