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.

DP83640: 在linux上硬件PTP通信错误

Part Number: DP83640

TI支持人员,您好:

目前我们使用DP83640PHY芯片用于在linux端实现PTP协议,在使用ptp4l软件进行测试(指令:./ptp4l -i eth0   -m -H)出现如下报错:

ptp4l[1970.968]: port 1: assuming the grand master role
ptp4l[1971.969]: timed out while polling for tx timestamp
ptp4l[1971.969]: increasing tx_timestamp_timeout may correct this issue, but it is likely caused by a driver bug
ptp4l[1971.969]: port 1: send sync failed

ptp4l[90.823]: port 1: MASTER to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED)
ptp4l[107.026]: port 1: FAULTY to LISTENING on INIT_COMPLETE
ptp4l[114.285]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES

根据我们目前的测试发现其未调用DP83640驱动中如下函数

我们目前使用的主控芯片为stm32mp157

linux内核版本4.19

请问我应该如何排查相关问题?

期待您的回复。

以上,谢谢。

  • 您好,

    感谢您对TI产品的关注!为更加有效地解决您的问题,我已将您的问题发布在E2E英文技术论坛上,请更了解这款芯片的TI资深工程师为您解答,一旦得到回复后我会立即回复给您。帖子链接如下,您也可以关注帖子,以方便查看或追问后续疑问。

    英文论坛对应子论坛链接:https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1164219/dp83640-hardware-ptp-communication-error-on-linux

  • 建议您使用5.15内核驱动程序文件,以下是5.15 Linux驱动程序的链接:

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/net/phy/dp83640.c?h=v5.15.74

  • 很感谢,你的建议,我这边做过了相关尝试,但问题没有改善。下面是我做的一些尝试:

           1、我尝试使用5.15内核中的驱动,但它无法在4.19的内核中编译通过。

           2、我尝试降级到5.1内核中的驱动,我可以编译通过并使用这个驱动,但是测试结果依旧没有变化。

    下面是使用环境的一些信息希望能够有助于问题分析

           1、dp83640和MAC的通信接口为RMII。

           2、目前使用dp83640可以正常进行网络通信。

           3、在使用PTP硬件时间戳时会在上述的问题。

    关于这个驱动我有个疑问

           1、我们硬件使用的通信接口为RMII接口,但驱动文件中描述的信息都是MII接口,这个是否存在问题?

  • 得到的E2E英文论坛回复:

    5.15内核驱动是我们仅有的驱动文件Backport要求您自己进行映射(从5.15到4.19手动添加所有功能,然后检查功能)仅仅是复制和粘贴是不够的;它们需要匹配所有内容。

  • 谢谢你的建议,我尝试进行移植但是我发现这个对驱动于4.19内核来说问题太多,我无法保证移植得正确性。

    目前使用的依旧为4.19版本

    后续我对内核配置进行了一些调整,附件是我的内核配置文件

    3644.config.txt

    目前使用ptp4l进行测试时不会报告 “ptp4l[1971.969]: port 1: send sync failed” 此类问题,但它报告了一个新的错误,内容如下

    ./ptp4l -i eth0 -m -H -f ./ptp4l.conf
    ptp4l[550.155]: selected /dev/ptp0 as PTP clock
    ptp4l[550.372]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[550.373]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[557.582]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[557.582]: selected local clock 362530.fffe.0a8d7e as best master
    ptp4l[557.582]: port 1: assuming the grand master role
    ptp4l[563.590]: port 1: received DELAY_REQ without timestamp
    ptp4l[564.603]: port 1: received DELAY_REQ without timestamp
    ptp4l[565.609]: port 1: received DELAY_REQ without timestamp
    ptp4l[566.536]: port 1: received DELAY_REQ without timestamp
    ptp4l[566.622]: port 1: received DELAY_REQ without timestamp
    ptp4l[567.978]: port 1: received DELAY_REQ without timestamp
    ptp4l[568.608]: port 1: received DELAY_REQ without timestamp

    ./ptp4l -i eth0 -m -H -s -f ./ptp4l.conf
    ptp4l[70.044]: selected /dev/ptp0 as PTP clock
    ptp4l[70.261]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[70.262]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[77.233]: selected local clock 8a6a12.fffe.3f2e3c as best master
    ptp4l[82.387]: port 1: new foreign master 362530.fffe.0a8d7e-1
    ptp4l[83.386]: port 1: received SYNC without timestamp
    ptp4l[83.896]: selected local clock 8a6a12.fffe.3f2e3c as best master
    ptp4l[84.386]: port 1: received SYNC without timestamp
    ptp4l[85.386]: port 1: received SYNC without timestamp
    ptp4l[86.386]: port 1: received SYNC without timestamp
    ptp4l[86.403]: selected best master clock 362530.fffe.0a8d7e
    ptp4l[86.403]: port 1: LISTENING to UNCALIBRATED on RS_SLAVE
    ptp4l[87.386]: port 1: received SYNC without timestamp
    ptp4l[88.386]: port 1: received SYNC without timestamp
    ptp4l[89.387]: port 1: received SYNC without timestamp
    ptp4l[90.387]: port 1: received SYNC without timestamp
    ptp4l[91.387]: port 1: received SYNC without timestamp

    我尝试过此方法去解决

    [PATCH 5.6 06/41] net: stmmac: enable timestamp snapshot for required PTP packets in dwmac v5.10a - Greg Kroah-Hartman (kernel.org)

    但问题依旧出现。

    我该如何解决它,期待你的回复。

    谢谢。

  • 已将您的问题反馈给E2E英文论坛,请耐心等待他们的回复

  • E2E英文论坛回复:

    Unfortunately, our team does not have the specific expertise to support backporting; Our best recommendation is still to use the latest version. 

x 出现错误。请重试或与管理员联系。