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.

[参考译文] AM3352:TI-sysc:无法与 Timer1 和 timer2 供应商创建器件链接 0x180

Guru**** 2952000 points

Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1657030/am3352-ti-sysc-failed-to-create-device-link-0x180-with-supplier-for-timer1-and-timer2

器件型号: AM3352

您好:

我使用的是基于 AM3352 的平台、并且在 Linux 启动期间观察到以下消息:

TI-sysc 44e31000.target-module:无法使用/ocp/interconnect 的供应商 OCP 创建器件链接 0x180@44c00000/段@200000/目标模块@31000/计时器@0
TI-sysc 48040000.target-module:无法使用/ocp/interconnect@48000000/段@0/target-module@40000/TIMER@0 的供应商 OCP 创建器件链接 0x180

根据我目前的理解、这些消息似乎与尝试为计时器模块创建器件链接的 TI SYSC 互连驱动程序有关。 我怀疑这可能与标志 0x180 (DL_FLAG_SYNC_STATE_ONLY) 关联、可能是因为已探测计时器器件。

我还注意到、Texas Instruments 自己的 AM335x 平台 CI 测试日志中会出现相同的消息。 例如:

https://software-dl.ti.com/cicd-report/linux/index.html?section=test_log&platform=am335x&snapshot=cicd.master.202605061800&board=am335x-evm&variant=Linux&test=LCPD-T826&log=dut1_1_log.txt

这表明这一问题可能是众所周知的、而且可能是良性的、但我希望得到澄清。

我的问题是:

-这个问题是否有任何功能影响?
 系统似乎运行正常、但我想知道这是否会影响电源管理、时钟处理或运行时 PM 行为。

-是否有建议的方法来修复或避免此消息?
 例如:
 -设备树调整
 -内核配置更改
 -已知的上游修补程序

-如果此消息无害,建议使用什么方法在引导日志中抑制或减少它?

如有任何见解或建议、将不胜感激。

谢谢!

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

    你好、Lucas、

    让我研究一下这个错误、然后在星期一上回复您。

    谢谢、

    Anshu

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

    您好、Lucas:

    此计时器是否正在用于您的应用? 如果没有、让我们来看看禁用它。  


    如果您确实需要计时器、您能否查看此补丁是否消除了错误: https://github.com/beagleboard/BeagleBoard-DeviceTrees/issues/84

    https://github.com/beagleboard/BeagleBoard-DeviceTrees/commit/b413db3

    此致、

    Anshu

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

    尊敬的 Anshu:

    如果我要正确读取内容、在 AM335x 上、Timer1 和 timer2 似乎是基础计时器、会在启动期间很早就连接。 似乎 Timer1 通常被视为首选的常开时钟源计时器、而 timer2 通常被用作首选的 clockevent 计时器。 如果该假设正确、两个节点都进入早期的 FW_devlink 依赖流程、因此创建推断的器件链接时出现的任何问题都可能会在引导时非常早地出现。

     基于 core.c:2173(在函数 fw_devlink_create_devlink 内)、错误似乎来自一个非常特定的代码路径:

     dev_err (con、“无法为%pfwf\n“创建带有供应商%s 的设备链接 (0x%x)、
           标志、dev_name (sup_dev)、link->consumer);
    RET =-EVAL;

     从该路径中、消息似乎不指示 EBUSY 状况。 更可能的解释是 fw_devlink_create_devlink() 调用 device_link_add() 并接收 NULL。 在该流程中、内核似乎不会从较低层传播详细的 errno;相反、它将无法创建链接视为结构依赖图故障、并将其转换为-EINVAL。 这可能解释了为什么日志报告无法创建设备链接、而返回值不是 EBUSY。

     

    此外、此可能的解决方法已经过测试、但未解决问题:

    https://github.com/beagleboard/BeagleBoard-DeviceTrees/issues/84
    https://github.com/beagleboard/BeagleBoard-DeviceTrees/commit/b413db3

    此致、
    Lucas

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

    您好、Lucas:

    如果您看到这些消息仍在 TI CICD 测试日志中、它显然会在最新的内核中退出。 我将研究内核代码以确定导致它们的原因以及是否需要解决它们。

    我目前正在执行一项任务、可能我可以在下周初开始研究这个计时器问题。 我会让你保持发布。

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

    尊敬的 Bin Liu:

     

    感谢您的更新。

     

    我将等待您的调查结果。

     

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

    尊敬的 Bin:

    我找到了根本原因和一个有效的修复。 Timer1 和 Timer2 在 OCP 互连之前初始化。 稍后、当探测 OCP 并尝试创建与这些计时器的器件链接时、内核会报告器件链接创建错误。

    修复方法是将 post-init-providers 属性添加到 Timer1 和 Timer2、因此依赖性解析反映 OCP 在计时器初始化阶段后可用。 这可防止无效的链接创建尝试、并删除相关的引导日志错误。

    am33xx 的补丁:

    From d16536280ef80bef39cdb4c111ef66407b8bbd24 Mon Sep 17 00:00:00 2001
    From: Wagner Popov dos Santos <wagner.popov@autotrac.com.br>
    Date: Wed, 24 Jun 2026 13:28:02 -0300
    Subject: [PATCH] ARM: dts: am33xx: avoid invalid OCP device-link for timers
    
    This patch fixes boot-time fw_devlink errors on AM335x/UCC3 caused
    by invalid device-link creation attempts involving timer1/timer2
    and supplier ocp.
    
    Observed kernel log messages:
    
      ti-sysc 44e31000.target-module: Failed to create device link 0x180
      with supplier ocp for
      /ocp/interconnect@44c00000/segment@200000/target-module@31000/timer@0
    
      ti-sysc 48040000.target-module: Failed to create device link 0x180
      with supplier ocp for
      /ocp/interconnect@48000000/segment@0/target-module@40000/timer@0
    
    The change updates dependency handling for timer1 and timer2 so the
    kernel no longer attempts this invalid link-creation path during
    initialization.
    
    Impact:
    
    - Removes the two ti-sysc/fw_devlink error messages at boot
    - Preserves current timer and clock assignment behavior
    - No functional regression observed in boot and timer operation tests
    
    Signed-off-by: Wagner Popov dos Santos <wagner.popov@autotrac.com.br>
    ---
     arch/arm/boot/dts/ti/omap/am33xx.dtsi | 2 ++
     1 file changed, 2 insertions(+)
    
    diff --git a/arch/arm/boot/dts/ti/omap/am33xx.dtsi b/arch/arm/boot/dts/ti/omap/am33xx.dtsi
    index ca3e7f5d7d0d..760598d5ae1c 100644
    --- a/arch/arm/boot/dts/ti/omap/am33xx.dtsi
    +++ b/arch/arm/boot/dts/ti/omap/am33xx.dtsi
    @@ -708,6 +708,7 @@ &timer1_target {
     	timer@0 {
     		assigned-clocks = <&timer1_fck>;
     		assigned-clock-parents = <&sys_clkin_ck>;
    +		post-init-providers = <&ocp>;
     	};
     };
     
    @@ -721,5 +722,6 @@ &timer2_target {
     	timer@0 {
     		assigned-clocks = <&timer2_fck>;
     		assigned-clock-parents = <&sys_clkin_ck>;
    +		post-init-providers = <&ocp>;
     	};
     };
    -- 
    2.43.0
    
    

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

    您好、Wagner、

    很高兴听到问题得到解决。 感谢您分享这个补丁。 是否计划将其发送到上游内核?

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

    尊敬的 Bin:

    是的、我发送了补丁。

    谢谢、
    Wagner

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

    好的。 谢谢!