你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32MP257 ETHSW(TTTech DEIP)透明时钟不生效:转发帧 correctionField 恒为 0

[复制链接]
Tommy959 提问时间:2026-9-27 23:10 / 未解决

环境

  • 板卡:ATK-DLMP257B(STM32MP257),ST 官方 Yocto(X-LINUX-TSNSWCH)
  • 内核 6.6.48;deptp 2.5.2(Flexibilis);驱动 edgx_pfm_lkm

目标

把板载交换机配置成 IEEE 802.1AS 的 P2P 透明时钟(TC) ,转发 Sync/Follow_Up 时把驻留时间写入 correctionField。

配置(出厂默认,未做改动)

<Interface name="sw0p2"><profile>gptp</profile><mode>tc</mode><delay>p2p</delay></Interface>
<Interface name="sw0p3"><profile>gptp</profile><mode>tc</mode><delay>p2p</delay></Interface>
<Basic><one_step_clock>0</one_step_clock></Basic>

systemctl status deptp 为 active;deptp_tool --get-tc-port-dataset 正常返回(faulty false,peer-mean-path-delay ≈ 145 ns),而 deptp_tool --get-port-dataset 返回 error rejected —— 说明 deptp 确实工作在 TC 模式。

拓扑

GM(PC) — sw0p2 [板子] sw0p3 — Slave(PC)。两端 linuxptp 4.0,配置 network_transport L2 + delay_mechanism P2P + transportSpecific 1,使用 -H 硬件时间戳。P2P 路径延迟稳定在 152 ns ± 1。

现象与实测

  1. 在板子两侧同时抓包、按 sequenceId 对齐 :同一批 Sync/Follow_Up(seq 19246–19252)在入口和出口都抓到了,correctionField 前后完全相同,全为 0 (20 帧,字节均为 00 00 00 00 00 00 00 00)。
  2. 板子 CPU 只能看到 Pdelay(sw0p2/sw0p3 各抓 249 帧,全是 PdelayReq/PdelayResp/PdelayRespFU),转发中的 Sync/Follow_Up 一帧都不到 CPU 。
  3. 修正通道本身是活的:设置 <output_delay>1000</output_delay> 后,板子自己发出的 Pdelay_Req 带 corr=65536(1 ns);但同一份抓包里,转发的 Sync/Follow_Up 仍为 0 。
  4. 内核持续打印 EDGX-BR-CORE: edgx_com_ts_find_tx(): TX timestamp lost(约 8 次/秒,与 deptp 的 Pdelay_Req 速率一致),deptp 侧对应 ptp_port_pdelay_measurement: Missing timestamps。

已尝试、均无效

  • <one_step_clock>1</one_step_clock>
  • syncmode="1588"(/etc/modprobe.d/edgx_sw_core.conf;重启后 dmesg 确认 Synchronisation mode (syncmode): 1588,correctionField 仍为 0)
  • 一步/两步(flag 0x0000 / 0x0200)× transportSpecific 0 / 1,共 4 种组合
  • <profile>ptp</profile>:非法值,deptp 直接 status=1 退出;<mode>BC</mode>:libptp.so.0 只导出 PTP_PORT_TYPE_OC / PTP_PORT_TYPE_TC,不支持边界时钟
  • 向 01:80:C2:00:00:0E 注入的帧板子不转发(注入 5 帧,对端收到 0)
  • 对 /boot/6.6.48/kernel/**/*.ko 全量 strings 搜索 residence|correctionField|transparent clock:零命中 ;edgx_pfm_lkm.ko 中 PTP 相关仅有 syncmode 与 timestamp

请教

  1. STM32MP2 的 ETHSW 是否支持转发路径上的 802.1AS 透明时钟(驻留时间修正)?
  2. 若支持,正确的配置方法是什么?当前 X-LINUX-TSNSWCH 中的 deptp 2.5.2 与 edgx_pfm_lkm 是否已实现该功能?
  3. 若不支持,是否有后续版本计划?
赞 收藏 评论0 发布时间:2026-9-27 23:10

举报

0个回答

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版