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.

[参考译文] AM6412:PTP:其他接口上的链路雕像更改会导致 PTP 同步丢失

Guru**** 2422260 points
Other Parts Discussed in Thread: SK-AM62B, AM6412, SK-AM64B, TMDS64EVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468209/am6412-ptp-link-statue-change-on-other-interface-results-in-ptp-sync-loss

器件型号:AM6412
Thread 中讨论的其他器件: SK-AM64B、SK-AM62B、 TMDS64EVM

工具/软件:

您好、

在我们的设计中、我们使用 AM6412 与 DP83867 PHY 配合使用。 我们的产品 有两个以太网接口 eth0 和 eth1。  

我们使用的是 6.1.80-rt26 内核版本。

运行 PTP 时的过渡点 eth1 (和已同步)、如果我们更改的链接状态 eth0 PTP 同步开启 eth1 接口将丢失、永远不会恢复。  

要恢复同步、我们需要执行以下任何活动

1.重新启动 PTP

2.运行“ifconfig eth1 up“(请注意,它是 eth1、这个接口已经启动并且 PTP 同步工作)

3、打开 Promiscuous 模式“IP link set eth1 promisc on“

进一步调试发现、该问题在某种程度上与 ALE 功能相关。 当 PTP 同步丢失时、我们可以看到随后的两个计数器递增

ALE_DROP: 37378.
RX_PORT_MASK_DROP: 37378.

其他一些观察结果:

1.当另一个接口关闭或打开时,同步丢失(即状态的任何变化)

2.当 PTP 工作时,即使将另一个接口设置为原始状态,同步也不会恢复。

3.此示例显示 PTP 在 eth1 上运行, eth0 状态发生变化,接口发生交叉时,观察到同样的行为。

请在以下日志中查找带有注释的 ptp4l 应用程序

$../ptp4l –2 -P -H -I eth1 -m -q -l 7.
.
. <<<<<<< 输出已剥离  
.
ptp4l[17109.394]:端口 1 (eth1):延迟超时
ptp4l[17109.395]:延迟过滤 1316 原始 1330
ptp4l[17110.087]:主偏移 25 s2 频率–26011 路径延迟 1316
ptp4l[17110.394]:端口 1 (eth1):延迟超时
ptp4l[17110.395]:延迟过滤 1316 原始 1310
ptp4l[17111.088]:主偏移 16 s2 频率–26012 路径延迟 1316
ptp4l[17111.395]:端口 1 (eth1):延迟超时
ptp4l[17111.395]:延迟过滤 1312 原始 1311
ptp4l[17111.823]:端口 1 (eth1):收到链路状态通知
[17111.824549] am65-cpsw-Nuss 8000000.Ethernet eth0)           <<< eth0 状态在此更改、请注意 PTP 在 eth1 上运行。
[17111.824577] am65-cpsw-Nuss 8000000.Ethernet eth0:配置 phy/rgmii-rxid 链路模式
[17111.833218] 8021q:将 VLAN 0 添加到设备 eth0 上的硬件过滤器中
ptp4l[17112.395]:端口 1 (eth1):延迟超时
ptp4l[17113.395]:端口 1 (eth1):延迟超时
ptp4l[17114.396]:端口 1 (eth1):延迟超时
ptp4l[17114.877]:端口 1 (eth1):收到链路状态通知[17114.879496] am65-cpsw-Nuss 8000000.Ethernet eth0f
亮起
ptp4l[17115.396]:端口 1 (eth1):延迟超时
ptp4l[17116.396]:端口 1 (eth1):延迟超时
ptp4l[17117.396]:端口 1 (eth1):延迟超时
ptp4l[17117.454]:端口 1 (eth1):通知超时             <<< PTP 同步因多播数据包被接口丢弃而丢失
ptp4l[17117.454]:端口 1 (eth1):侦听 announce_receive_timeout_expires 的从设备
ptp4l[17117.454]:已选择本地时钟 543b30.FFFE.0118ef 作为最佳主时钟
ptp4l[17118.454]:端口 1 (eth1):延迟超时
ptp4l[17119.454]:端口 1 (eth1):延迟超时
ptp4l[17120.455]:端口 1 (eth1):延迟超时
ptp4l[17121.455]:端口 1 (eth1):延迟超时
ptp4l[17122.455]:端口 1 (eth1):延迟超时
ptp4l[17123.456]:端口 1 (eth1):延迟超时
ptp4l[17124.249]:端口 1 (eth1):通知超时
ptp4l[17124.456]:端口 1 (eth1):延迟超时
ptp4l[17125.456]:端口 1 (eth1):延迟超时
ptp4l[17126.456]:端口 1 (eth1):延迟超时
ptp4l[17127.457]:端口 1 (eth1):延迟超时
ptp4l[17128.457]:端口 1 (eth1):延迟超时

.
. <<<<<<< 输出已剥离  
.

ptp4l[5620.609]:端口 1 (eth1):主器件同步超时
ptp4l[5620.845]:端口 1 (eth1):延迟超时
[5621.584634]设备 eth1 进入混杂模式       <<<eth1 进入混杂模式
ptp4l[5621.586]:端口 1 (eth1):忽略消息
ptp4l[5621.609]:端口 1 (eth1):主器件同步超时
ptp4l[5621.610]:端口 1 (eth1):主器件 TX 通知超时
ptp4l[5621.846]:端口 1 (eth1):延迟超时
ptp4l[5621.846]:延迟滤波 1295 原始 1306          
ptp4l[5622.610]:端口 1 (eth1):主同步超时
ptp4l[5622.846]:端口 1 (eth1):延迟超时
ptp4l[5622.847]:延迟滤波 1299 RAW 1304
ptp4l[5623.610]:端口 1 (eth1):主器件同步超时
ptp4l[5623.611]:端口 1 (eth1):主器件 TX 通知超时
ptp4l[5623.846]:端口 1 (eth1):延迟超时
ptp4l[5623.847]:延迟过滤 1304 原始 1312
ptp4l[5624.610]:端口 1 (eth1):主器件同步超时
ptp4l[5624.664]:选定的最佳主时钟 40a6b7.FFFE.9c2706  <<< PTP 再次同步

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

    尊敬的 Dipal:

    [报价 userid=“595428" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1468209/am6412-ptp-link-statue-change-on-other-interface-results-in-ptp-sync-loss/5878566

    我确认提供的补丁已经解决了 PTP 和正常多播情况下的问题。   

    修补程序中的一个小改进:我们不需要通过“ int idx “至函数“ cpsw_ale_flush_mcast “因为这是未使用的。

    [/报价]

    感谢您的确认和有关 idx 的良好观点。  

    当然、这对我们来说也是有意义的、更好的。 如果信息可用、请告知我们此修复程序将集成到哪个 SDK 版本中。  [/报价]

    对迟来的答复表示歉意。 我认为更改应该集成在 SDK 11.1 中。 集成的具体更改似乎与我之前分享的非正式补丁不同(请参阅下文,因为这些更改将是集成到 SDK 中的内容)。 我建议仔细检查它是否能解决您报告的问题。  

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/?h=ti-linux-6.12.y&id=eed8b77549e45e3791b69181086279bcf833aa1b

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/?h=ti-linux-6.12.y&id=e8328705aa3be96feaecde1815379158c310cbd7 

    -道林

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

    尊敬的 Daolin:

    我无法测试整个内核本身、但 我在当前内核中测试了新的修补程序、它们也可以正常工作。

    谢谢。此致、

    -迪帕尔