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.

[参考译文] J784S4XEVM:CPSW PTP /CPTS 时间戳在 ethtool -T 中不可见

Guru**** 2553450 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1555176/j784s4xevm-cpsw-ptp-cpts-timestamping-not-visible-with-ethtool--t

器件型号:J784S4XEVM


工具/软件:

TI 团队大家好、

我正在使用 J784S4 EVM、并尝试使用 CPSW CPTS 启用 IEEE-1588 PTP 支持。

我已经:

  • 在内核配置中启用 CONFIG_TI_K3_AM65_CPTS=y 和 CONFIG_PTP_1588_clock=y。

CONFIG_TI_K3_AM65_CPTS=y
CONFIG_PTP_1588_CLOCK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_TI_CPTS=y
CONFIG_TI_CPSW_SWITCHDEV=y
CONFIG_TI_AM65_CPSW_QOS=y
CONFIG_TI_AM65_CPSW_TAS=y
CONFIG_TI_K3_AM65_CPSW_NUSS=y

  • 将器件树更新为:

&main_cpsw0_cpts {
    status = "okay";
};

&main_cpsw0 {
	pinctrl-names = "default";
	status = "okay";
};

  • 我看到 CPTS 正在 dmesg 中注册:

[  2.163972] am65-CPt 310d0000.CPt:CPt ver 0x4e8a010c、freq:0、add_val:7pps:0
[  6.299485] am65-cpsw-nuss c000000.ethernet:cpt ver 0x4e8a010c、freq:250000000、add_val:3pps:0

  • /sys/class/ptp 显示:

ptp0 -> 310d0000.cpts
ptp1 -> c000000.ethernet

  • PHC_ctl /dev/ptp1 get 工作正常、phc2sys 可读取时钟。

PHC_ctl /dev/ptp1 get
PHC_ctl[4394.027]:时钟时间为 4394.027259954、即 1970 年 1 月 1 日星期四 01:13:14

但是、当我使用 ethtool -T eth0 或 ethtool -T eth1 检查时间戳支持时、只看到软件时间戳:

eth0 的时间戳参数:
能力:
    软件接收
    软件系统时钟
PTP 硬件时钟:无
硬件发送时间戳模式:无
硬件接收滤波器模式:无

eth1 的时间戳参数:
能力:
    软件接收
    软件系统时钟
PTP 硬件时钟:无
硬件发送时间戳模式:无
硬件接收滤波器模式:无


问题:

  1. 这是预料之中的吗? CPSW 接口 (eth0/eth1) 是否通过 ethtool -T 广播硬件时间戳、或者仅通过/dev/ptpX?公开时间戳
  2. 如何确认 PTP 真正的端到端工作(硬件时间戳处于活动状态)?
  3. 您是否在 J784S4 EVM 上有建议的测试程序(例如,使用 ptp4l 和第二块板验证时间戳)?

提前感谢您的支持。

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

    您好、

    这是意料之外的情况。 您使用的是哪个 SDK 版本或 ti-linux 版本?

    此致、
    Tanmay

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

    您好、Tanmay、

    我们是在 Yocto scarthgap ,标签: 11.01.10
    Linux 内核 6.12.35
    但我们测试了 11.00.00 和相同的行为。

    谢谢!

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

    您好 Andre、

    root@j784s4-evm:~# ethtool -T eth1
    Time stamping parameters for eth1:
    Capabilities:
            hardware-transmit
            software-transmit
            hardware-receive
            software-receive
            software-system-clock
            hardware-raw-clock
    PTP Hardware Clock: 2
    Hardware Transmit Timestamp Modes:
            off
            on
    Hardware Receive Filter Modes:
            none
            ptpv2-l4-event
            ptpv2-l4-sync
            ptpv2-l4-delay-req
            ptpv2-l2-event
            ptpv2-l2-sync
            ptpv2-l2-delay-req
            ptpv2-event
            ptpv2-sync
            ptpv2-delay-req
    root@j784s4-evm:~# ethtool -T eth0
    Time stamping parameters for eth0:
    Capabilities:
            hardware-transmit
            software-transmit
            hardware-receive
            software-receive
            software-system-clock
            hardware-raw-clock
    PTP Hardware Clock: 1
    Hardware Transmit Timestamp Modes:
            off
            on
    Hardware Receive Filter Modes:
            none
            ptpv2-l4-event
            ptpv2-l4-sync
            ptpv2-l4-delay-req
            ptpv2-l2-event
            ptpv2-l2-sync
            ptpv2-l2-delay-req
            ptpv2-event
            ptpv2-sync
            ptpv2-delay-req 

    这包含在 SDK 11.0 中

    我可以在同一器件中正确地看到它。 可以检查一下 ethtool 版本吗? 是 6.7 吗?

    似乎您拥有正确的 PTP 器件。 无法使用 ethtool 检测到它。 可能是 ethtool(或其他用户空间问题)。 您是否可以使用 SDK 版本(而不是 Yocto 文件系统)提供的默认映像尝试一次。

    此致、
    Tanmay

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

    您好、Tanmay、

    我找到了根本原因、这不是 CPTS 本身的问题、而是 CPSW 以太网驱动程序中的补丁。 该补丁阻止了硬件时间戳功能在 ethtool 中显示、这就是 ptp4l 也失败的原因。

    修复驱动程序(删除/更新该补丁)后、CPTS 现在可以与网络接口正确链接、ethtool -T 显示硬件时间戳支持、ptp4l 运行正常。

    因此问题已解决—它与驱动程序相关。

    感谢您的支持。

    此致、

    安德烈