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.
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资深工程师为您解答,一旦得到回复后我会立即回复给您。帖子链接如下,您也可以关注帖子,以方便查看或追问后续疑问。
很感谢,你的建议,我这边做过了相关尝试,但问题没有改善。下面是我做的一些尝试:
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版本
后续我对内核配置进行了一些调整,附件是我的内核配置文件
目前使用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
我尝试过此方法去解决
但问题依旧出现。
我该如何解决它,期待你的回复。
谢谢。
E2E英文论坛回复:
Unfortunately, our team does not have the specific expertise to support backporting; Our best recommendation is still to use the latest version.