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.

[参考译文] TMDS64EVM:具有 PTP 问题的 HSR

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1475005/tmds64evm-hsr-with-ptp-problems

器件型号:TMDS64EVM

工具/软件:

您好:

我有2个开发板。 我更新了他们的 Linux 系统、我从 这里下载。 我没有触摸任何设置,只是刷新 WIC 文件到 SD 卡并运行它.

然后跳到手册上。 关于 HSR 的使用、我在 此处学习了相关工具。 HSR 运行良好、但我们无法 通过 HSR (卸载/非卸载)激活 PTP。 出现配置文件错误、一些参数未定义。

之后、我们发现器件树配置为2xCPSW (eth0和 eth1)和1xICSSG (eth2)。 对于我们的工程、我们需要2xICSSG、因此通过添加更改了 uEnv.txt 文件  

name_overlays=ti/k3-am642-evm-icssg1-dualemac.dtbo
。 现在我有了1xCPSW (eth0)和2xICSSG (eth1和 eth2)。 当我尝试使用相同的脚本启动 HSR 非卸载时 
page_pool_release_retry()
、它会从内核中刺出来、因为器件树设置需要在端口上使用两个不同的 MAC 地址。 但 HSR 必须在两个端口上使用一个 MAC、否则无法正常工作。 PTP 也无法正常工作。  出现配置文件错误、一些参数未定义。

我们还尝试了 HSR 卸载模式。 为了使用它、我们必须从 TI-git 更新 ti-pruss 固件。 或  

hsr-fwd-offload
hsr-dup-offload
hsr-tag-ins-offload
hsr-tag-rm-offload
这些状态显示为"OFF"和"[固定]"。 PTP 在此模式下也不可用。

在研究过程中,我们看到了这个 TI-Git Commit : port: 在 HSR/PRP 网络上添加 PTP 支持

已尝试、但也无法正常工作。 它没有给出参数错误、但给出 hsr0接口没有时钟。

我们应该如何继续在 PTP 中使用 HSR 卸载/非卸载?

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

    该查询已分配给专家。 请在一天或两天内回复。

    谢谢!

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

    您好、Mustafa、  

    首先、我有几个初始问题

    [引述 userid="642574" url="~/support/processors-group/processors/f/processors-forum/1475005/tmds64evm-hsr-with-ptp-problems ]我有2块开发板。 我更新了他们的 Linux 系统、我从 这里下载。 我没有触摸任何设置,只是刷新 WIC 文件到 SD 卡并运行它。[/报价]

    为了进行澄清、您使用的是2个 TMDS64EVM (AM64x EVM)电路板? 我从链接中看到您使用的是最新的 PROCESSOR-SDK-LINUX AM64X。 我建议更改为最新的 PROCESSOR-SDK、 Linux-RT-AM64X  这适用于实时应用。

    Unknown 说:
    HSR 运行良好、但我们无法 通过 HSR 激活 PTP (卸载/非卸载)。 出现配置文件错误、某些参数未定义。

    您能具体描述一下您使用哪些命令、脚本、配置文件来设置 PTP 和 HSR 吗? 具体来说、应该先设置 HSR、然后再启动 PTP。 假设您使用的是您共享的链接(https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/10_01_10_04/exports/docs/linux/PTP/Kernel/PTP/Network/HSR_PRP_PTP.html Kernel_Drivers)中提供的非卸载脚本 Non_Offload、则您使用的 Foundational_Components 配置和命令是什么?  

    通过 HSR 非卸载运行 PTP 后、能否共享准确的日志输出?  

    [引述 userid="642574" url="~/support/processors-group/processors/f/processors-forum/1475005/tmds64evm-hsr-with-ptp-problems

    在研究过程中,我们看到了这个 TI-Git Commit : port: 在 HSR/PRP 网络上添加 PTP 支持

    已尝试、但也无法正常工作。 它没有给出参数错误、但给出 hsr0接口没有时钟。

    我们应该如何继续在 PTP 中使用 HSR 卸载/非卸载?

    [/报价]

    感谢您提请我注意这一承诺。 根据我的理解和我自己的测试结果、非卸载 HSR 上的 PTP 应该在最新的 RT-Linux SDK (10.1版)上运行、但卸载 HSR 上的 PTP 仍需要进行额外开发。 我怀疑你所指出的对 linuxptp 的这一承诺是为了在不卸载 HSR 上启用 PTP。 卸载侧需要更改 ti-pruss 固件侧的实现方式。  

    Unknown 说:
    要使用它、我们必须从 TI-git 更新 ti-pruss 固件。

    您正在使用哪种 ti-pruss 固件? 您能指出具体的固件提交吗?

    -道林

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

    您好:

    • 是的、我们使用了2个 TMDS64EVM 电路板。 我们没有尝试 RT-Linux。
    • 使用了提供的脚本和设置链接中的文件。
    • 我们启用 HSR 非卸载模式时出现此错误。 注:uEnv.txt 的编辑与第一篇文章相同。
      [  346.738703] page_pool_release_retry() stalled pool shutdown 19 inflight 120 sec
      [  346.834709] page_pool_release_retry() stalled pool shutdown 47 inflight 120 sec
      [  407.154707] page_pool_release_retry() stalled pool shutdown 19 inflight 181 sec
      [  407.250702] page_pool_release_retry() stalled pool shutdown 47 inflight 181 sec
    • 在 HSR 非卸载活动"ptp4l -i hsr0"时尝试运行 PTP
      failed to create a clock
    • 在 HSR 非卸载活动"ptp4l -f oc_hsr0.cfg -m -s"时尝试以配置运行 PTP
      option slaveOnly is deprecated, please use clientOnly instead
      unknown option doubly_attached_clock at line 13 in global section
      failed to parse configuration file oc_hsr0.cfg
      
    • 尝试使用"ti-linuxptp"运行 PTP
      • 已将文件复制到设备。
      • "Make & Make Install"
      • ptp4l -f oc_hsr0.cfg -m -s
        ptp4l[1204.255]: interface 'hsr0' does not support requested timestamping mode
        failed to create a clock
    • 从 此链接下载了 ti-pruss 固件。 我最新的当地"git log -1"是: Commit 1eaf07dc4ec5cdeb98078f17a9d4635e88f43f75 作者: Soumya Tripathy 日期:2024年11月18日、星期一、13:38:03、+0530

    我会用 RT-Linux asap 尝试同样的操作。 感谢您的帮助。

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

    您好、Mustafa、  

    尝试使用"ti-linuxptp
    运行 PTP

    我发现从 ti-linuxptp 中提交的这个提交被上游提交拒绝、最初用于一些较旧的器件(如 AM57x)、而不是用于 AM64x。 因此、您不应应用此提交的任何更改。

    通过 此链接下载 ti-pruss 固件。 我最新的当地"git log -1"是: Commit 1eaf07dc4ec5cdeb98078f17a9d4635e88f43f75 作者: Soumya Tripathy 日期:2024年11月18日、星期一、13:38:03、+0530

    感谢您的分享。 根据我的理解、ti-pruss 固件应该已经包含在您下载的最新 WIC 映像中。  因此、从技术上讲、您应该不需要单独下载 ti-pruss 固件。

    当我们启用 HSR 非卸载模式时出现此错误。 注意:uEnv.txt 的编辑与第一篇帖子相同

    您能否分享运行 HSR nonoffload 脚本的完整日志结果? 在测试 PTP 之前、我们需要确保 HSR 非卸载(没有 PTP)优先正常工作。

    在 HSR 非卸载处于活动状态时尝试运行 PTP "ptp4l -i hsr0"

    您可以尝试使用"ptp4l -i eth1 -i eth2"吗? 假设 eth1和 eth2是用于配置 hsr0的接口。  

    -道林

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

    您好:

    我发现 ti-linuxptp 的此提交被上游提交拒绝、最初适用于 AM57x 等较旧的器件、而不是 AM64x。 因此、您不应应用此提交的任何更改。

    我们不知道它被拒绝了。 感谢您提供信息。

    感谢您的分享。 根据我的理解、ti-pruss 固件应该已经包含在您下载的最新 WIC 映像中。  因此、从技术上讲、您应该不需要单独下载 ti-pruss 固件。

    也许我把它和 Yocto 构建混在一起了。 我们也尝试了这个方法。 但现在似乎没问题、至少它有能力执行 HSR 卸载。

    您能否共享运行 HSR nonoffload 脚本的完整日志结果? 在测试 PTP 之前、我们需要确保 HSR 非卸载(无 PTP)首先正常工作。

    没问题。 由于安全原因、MAC 地址已过滤。

    root@am64xx-evm:~# ./hsr-prp.sh hsr eth1 eth2 10.10.10.2
    ip=10.10.10.2
    if=hsr0
    mac=70:ff:76:xx:xx:xx
    slave-a=eth1
    slave-b=eth2
    [  136.395160] icssg-prueth icssg1-eth eth1: Link is Down
    [  136.432234] icssg-prueth icssg1-eth eth2: Link is Down
    [  136.439932] remoteproc remoteproc7: stopped remote processor 3008a000.txpru
    [  136.440115] remoteproc remoteproc14: stopped remote processor 30084000.rtu
    [  136.440128] remoteproc remoteproc13: stopped remote processor 300b4000.pru
    [  136.440139] remoteproc remoteproc8: stopped remote processor 3008c000.txpru
    [  136.440148] remoteproc remoteproc16: stopped remote processor 30086000.rtu
    [  136.440158] remoteproc remoteproc15: stopped remote processor 300b8000.pru
    [  137.541224] remoteproc remoteproc13: powering up 300b4000.pru
    [  137.541521] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 39636
    [  137.541551] remoteproc remoteproc13: unsupported resource 5
    [  137.541580] remoteproc remoteproc13: remote processor 300b4000.pru is now up
    [  137.541613] remoteproc remoteproc14: powering up 30084000.rtu
    [  137.541754] remoteproc remoteproc14: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30444
    [  137.541780] remoteproc remoteproc14: remote processor 30084000.rtu is now up
    [  137.541800] remoteproc remoteproc7: powering up 3008a000.txpru
    [  137.541922] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 39080
    [  137.541954] remoteproc remoteproc7: remote processor 3008a000.txpru is now up
    [  137.544289] remoteproc remoteproc15: powering up 300b8000.pru
    [  137.544516] remoteproc remoteproc15: Booting fw image ti-pruss/am65x-sr2-pru1-prueth-fw.elf, size 39796
    [  137.544544] remoteproc remoteproc15: unsupported resource 5
    [  137.544571] remoteproc remoteproc15: remote processor 300b8000.pru is now up
    [  137.544605] remoteproc remoteproc16: powering up 30086000.rtu
    [  137.544739] remoteproc remoteproc16: Booting fw image ti-pruss/am65x-sr2-rtu1-prueth-fw.elf, size 29680
    [  137.544765] remoteproc remoteproc16: remote processor 30086000.rtu is now up
    [  137.544784] remoteproc remoteproc8: powering up 3008c000.txpru
    [  137.544903] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru1-prueth-fw.elf, size 37568
    [  137.544933] remoteproc remoteproc8: remote processor 3008c000.txpru is now up
    [  137.546499] pps pps1: new PPS source ptp2
    [  139.630963] icssg-prueth icssg1-eth eth1: entered promiscuous mode
    [  139.633004] audit: type=1700 audit(1728493751.670:3): dev=eth1 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
    [  139.650539] icssg-prueth icssg1-eth eth2: entered promiscuous mode
    [  139.651436] audit: type=1700 audit(1728493751.670:3): dev=eth2 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
    [  139.673173] audit: type=1300 audit(1728493751.670:3): arch=c00000b7 syscall=211 success=yes exit=92 a0=3 a1=ffffea7a9e28 a2=0 a3=1 items=4 ppid=1024 pid=1048 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS2 ses=4294967295 comm="ip" exe="/usr/sbin/ip.iproute2" subj=kernel key=(null)
    [  139.673266] audit: type=1307 audit(1728493751.670:3): cwd="/root"
    [  139.673280] audit: type=1302 audit(1728493751.670:3): item=0 name=(null) inode=6987 dev=00:07 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unlabeled nametype=PARENT cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
    [  139.673295] audit: type=1302 audit(1728493751.670:3): item=1 name=(null) inode=11278 dev=00:07 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unlabeled nametype=CREATE cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
    [  139.673311] audit: type=1302 audit(1728493751.670:3): item=2 name=(null) inode=11278 dev=00:07 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unlabeled nametype=PARENT cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
    [  139.673326] audit: type=1302 audit(1728493751.670:3): item=3 name=(null) inode=11279 dev=00:07 mode=0100444 ouid=0 ogid=0 rdev=00:00 obj=unlabeled nametype=CREATE cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
    [  139.673341] audit: type=1327 audit(1728493751.670:3): proctitle=6970006C696E6B00616464006E616D65006873723000747970650068737200736C61766531006574683100736C617665320065746832007375706572766973696F6E0034350076657273696F6E0031
    [  141.670243] icssg-prueth icssg1-eth eth2: Link is Up - 1Gbps/Full - flow control off
    [  141.673073] icssg-prueth icssg1-eth eth1: Link is Up - 1Gbps/Full - flow control off
    root@am64xx-evm:~# 
    [  196.837057] page_pool_release_retry() stalled pool shutdown 12 inflight 60 sec
    [  196.901062] page_pool_release_retry() stalled pool shutdown 37 inflight 60 sec
    [  257.253163] page_pool_release_retry() stalled pool shutdown 12 inflight 120 sec
    [  257.317063] page_pool_release_retry() stalled pool shutdown 37 inflight 120 sec
    [  317.669077] page_pool_release_retry() stalled pool shutdown 12 inflight 181 sec
    [  317.733076] page_pool_release_retry() stalled pool shutdown 37 inflight 181 sec

    您可以尝试使用"ptp4l -i eth1 -i eth2"吗? 假设 eth1和 eth2是用于配置 hsr0的接口。  

    [/报价]

    然后、卡选择本地时钟作为最佳主时钟。  由于安全原因、MAC 地址已过滤。

    --- CARD 1 ---
    
    root@am64xx-evm:~# ptp4l -i eth1 -i eth2 -m -s
    ptp4l[588.942]: selected /dev/ptp2 as PTP clock
    ptp4l[588.948]: port 1 (eth1): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[588.954]: port 2 (eth2): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[588.954]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[588.955]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[595.979]: selected local clock 70ff76.fffe.xxxxxx as best master
    
    --- CARD 2 ---
    
    root@am64xx-evm:~# ptp4l -i eth1 -i eth2 -m -s
    ptp4l[591.909]: selected /dev/ptp2 as PTP clock
    ptp4l[591.916]: port 1 (eth1): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[591.921]: port 2 (eth2): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[591.921]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[591.922]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[598.408]: selected local clock 70ff76.fffe.yyyyyy as best master

    我看到一个页面将其解释为"在 L2网络上使用它而不是在 L3上使用它"。 然后我们尝试使用"ptp4l -i eth1 -i eth2 -m -s"、现在卡片可以在 HSR 连接时看到 Eachether。 但在此情况下、ptp4l 可用于普通帧、而不是 HSR One。 Im 不太确定它应该如何工作、将在不同的设备上进行更多研究。

    谢谢。

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

    尊敬的 Mustafa:  

    [引述 userid="642574" url="~/support/processors-group/processors/f/processors-forum/1475005/tmds64evm-hsr-with-ptp-problems/5674243 #5674243"]
    您能否分享运行 HSR nonoffload 脚本的完整日志结果? 在测试 PTP 之前、我们需要确保 HSR 非卸载(没有 PTP)优先正常工作。

    没问题。 由于安全原因、MAC 地址已过滤。

    [/报价]

    您能否另外显示"ethtool -k eth1 | grep HSR"的结果以及 eth2的结果?  

    但在此情况下、ptp4l 可用于正常帧、而不是 HSR 帧。 Im 不太确定它的工作原理、将在不同的设备上进行更多研究。

    您能解释一下"ptp4l 在正常帧上工作、而不是在 HSR One 中工作"的意思吗? "你说什么?

    您还能阐明该拓扑吗? 即 EVM1上的 eth1连接至 EVM2上的 eth1、EVM1上的 eth2连接至 EVM2上的 eth2?

    我看到一个页面将其解释为"在 L2网络上使用它、而不是在 L3上使用它"。 [/报价]

    您指的是哪个页面?

    两个 EVM 上使用的"-s"选项可确保两者都处于 clientMode (即 PTP 跟随者)。 您能否尝试从其中一个中删除"-s"、看看会发生什么情况?

    -道林

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

    您好:

    您能否另外显示"ethtool -k eth1 | grep hsr"的结果以及 eth2的结果?  [/报价]

    root@am64xx-evm:~# ethtool -k eth1 | grep hsr
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off
    root@am64xx-evm:~# ethtool -k eth2 | grep hsr
    hsr-tag-ins-offload: off
    hsr-tag-rm-offload: off
    hsr-fwd-offload: off
    hsr-dup-offload: off

    您能解释一下"ptp4l 在正常帧上工作、而不是在 HSR One 中工作"的意思吗? 您所说的"HR One"是什么意思?
    您指的是哪个页面?

    是我在继续研究时遇到的页面之一,无法再次找到页面 RN。 但建议使用 OSI L2而不是 OSI L3。  使用 HSR 时、eth1和 eth2没有任何 IP 地址、因此无法在 OSI L3上通信。

    使用该解决方案、所有这些 PTP 软件包都通过 MAC 地址进行通信、而不是通过 IP 地址进行通信。  

    Im 不太确定它的工作原理、将在不同的设备上进行更多的研究。

    我将继续研究这种机制、研究目前支持 HSR+PTP 的不同器件。

    您是否还能阐明拓扑结构? 即 EVM1上的 eth1连接至 EVM2上的 eth1、EVM1上的 eth2连接至 EVM2上的 eth2?

    EVM1和 EVM2的 eth1和 eth2设置为 hsr0网络。 PC 的 enp3s0和 enx00设置为桥接模式 br0。 当数据包通过桥接器时、我的 PC 会为此网络增加1ms。 另外还可以帮助我通过 Wireshark 观看。

    EVM1和 EVM2的 eth1连接到 PC、两者之间连接 eth2。

    两个 EVM 上使用的"-s"选项可确保两者都处于 clientMode (换言之、PTP 跟随者)。 您是否可以尝试从其中一个中删除"-s"并查看发生了什么情况?

    很抱歉、我想知道为什么他们没有匹配、但之前就这样做了。

    --- EVM 1 L3 ---
    
    root@am64xx-evm:~# ptp4l -i eth1 -i eth2 -m   
    ptp4l[1927.168]: selected /dev/ptp2 as PTP clock
    ptp4l[1927.174]: port 1 (eth1): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1927.179]: port 2 (eth2): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1927.180]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1927.180]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1933.707]: port 1 (eth1): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[1933.707]: selected local clock 70ff76.fffe.xxxxxx as best master
    ptp4l[1933.707]: port 1 (eth1): assuming the grand master role
    ptp4l[1933.830]: port 2 (eth2): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[1933.830]: port 1 (eth1): assuming the grand master role
    ptp4l[1933.830]: port 2 (eth2): assuming the grand master role
    
    --- EVM 2 L3 ---
    
    oot@am64xx-evm:~# ptp4l -i eth1 -i eth2 -m   
    ptp4l[1931.503]: selected /dev/ptp2 as PTP clock
    ptp4l[1931.509]: port 1 (eth1): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1931.514]: port 2 (eth2): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1931.515]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1931.515]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1937.570]: port 1 (eth1): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[1937.570]: selected local clock 70ff76.fffe.yyyyyy as best master
    ptp4l[1937.570]: port 1 (eth1): assuming the grand master role
    ptp4l[1938.352]: port 2 (eth2): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[1938.352]: port 1 (eth1): assuming the grand master role
    ptp4l[1938.352]: port 2 (eth2): assuming the grand master role
    
    
    --- EVM 1 L2 ---
    
    ptp4l -i eth1 -i eth2 -m -2
    ptp4l[2025.565]: selected /dev/ptp2 as PTP clock
    ptp4l[2025.579]: port 1 (eth1): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2025.594]: port 2 (eth2): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2025.595]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2025.595]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2033.185]: port 1 (eth1): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[2033.185]: selected local clock 70ff76.fffe.xxxxxx as best master
    ptp4l[2033.185]: port 1 (eth1): assuming the grand master role
    ptp4l[2033.427]: port 2 (eth2): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[2033.427]: port 1 (eth1): assuming the grand master role
    ptp4l[2033.427]: port 2 (eth2): assuming the grand master role
    ptp4l[2036.352]: port 2 (eth2): new foreign master 70ff76.fffe.yyyyyy-2
    ptp4l[2037.068]: port 1 (eth1): new foreign master 70ff76.fffe.yyyyyy-1
    ptp4l[2040.352]: selected best master clock 70ff76.fffe.yyyyyy
    ptp4l[2040.352]: port 2 (eth2): MASTER to UNCALIBRATED on RS_SLAVE
    ptp4l[2041.068]: selected best master clock 70ff76.fffe.yyyyyy
    ptp4l[2041.068]: port 1 (eth1): MASTER to UNCALIBRATED on RS_SLAVE
    ptp4l[2041.068]: port 2 (eth2): UNCALIBRATED to PASSIVE on RS_PASSIVE
    ptp4l[2044.068]: master offset   -2882436 s0 freq      -0 path delay       456
    ptp4l[2045.069]: master offset   -2882464 s1 freq     -28 path delay       460
    ptp4l[2046.068]: master offset      -2848 s2 freq   -2876 path delay       460
    ptp4l[2046.068]: port 1 (eth1): UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
    ptp4l[2047.068]: master offset          5 s2 freq    -877 path delay       460
    ptp4l[2048.068]: master offset        873 s2 freq      -8 path delay       456
    ptp4l[2049.068]: master offset        843 s2 freq    +224 path delay       465
    
    --- EVM 2 L2 ---
    
    root@am64xx-evm:~# ptp4l -i eth1 -i eth2 -m -2
    ptp4l[2031.459]: selected /dev/ptp2 as PTP clock
    ptp4l[2031.473]: port 1 (eth1): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2031.488]: port 2 (eth2): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2031.489]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2031.489]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2035.572]: port 1 (eth1): new foreign master 70ff76.fffe.xxxxxx-1
    ptp4l[2035.814]: port 2 (eth2): new foreign master 70ff76.fffe.xxxxxx-2
    ptp4l[2038.735]: port 2 (eth2): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[2038.736]: selected local clock 70ff76.fffe.yyyyyy as best master
    ptp4l[2038.736]: port 2 (eth2): assuming the grand master role
    ptp4l[2039.452]: port 1 (eth1): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[2039.452]: port 1 (eth1): assuming the grand master role
    ptp4l[2039.452]: port 2 (eth2): assuming the grand master role
    ptp4l[2039.572]: selected best master clock 70ff76.fffe.yyyyyy
    ptp4l[2039.572]: port 1 (eth1): assuming the grand master role
    ptp4l[2039.572]: port 2 (eth2): assuming the grand master role
    ptp4l[2039.814]: port 1 (eth1): assuming the grand master role
    ptp4l[2039.814]: port 2 (eth2): assuming the grand master role
    

    谢谢。

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

    尊敬的 Mustafa:  

    是我在继续研究时遇到的页面之一,无法再次找到页面 RN。 但建议使用 OSI L2而不是 OSI L3。  使用 HSR 时、eth1和 eth2没有任何 IP 地址、因此无法在 OSI L3上通信。

    使用该解决方案、所有这些 PTP 软件包都通过 MAC 地址进行通信、而不是通过 IP 地址进行通信。  

    Im 不太确定它应该如何工作、将在不同的设备上进行更多研究。

    我将继续研究这种机制、研究目前支持 HSR+PTP 的不同器件。

    [/报价]

    感谢您的澄清、如果您能找到有关此方面的更多信息、请告知我们。

    根据 ptp4l 联机帮助页(https://man.cx/ptp4l)、"-2"选项似乎是指定 IEEE 802.3网络传输(而不是默认的 UDP IPv4网络传输)。 是否有为您使用默认选项的特殊要求?

    -道林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否对使用默认选项有特殊要求?

    是的、我无法找到用于"实时工业应用"方面的所有"PTP 功率曲线"相关文档。

    我将继续使用目前支持 HSR+PTP 的不同设备来研究这种机制。

    我们发现了其他支持 HSR+PTP 的公司的器件、我们将进行研究并告知您其工作原理。  

     是否更新了 icssg-dualemac 上的 HSR 网络的内核警告?  

    page_pool_release_retry() stalled pool shutdown 12 inflight 60 sec

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

    尊敬的 Mustafa:  

    icssg-dualemac 上 HSR 网络的内核警告的任何更新?  [/报价]

    我需要在内部与某些团队成员核实此 page_pool_release_RETRY 消息。 我还可以在启用 HSR 时看到这些消息(毫无疑问、对于 HSR 分载、我必须再次查看 HSR 非分载)。

    但是、我目前没有看到 HSR 的基本功能有任何问题(电缆断开时无数据包丢失)、即使这些消息显示出来也是如此。

    我们发现了其他支持 HSR+PTP 的公司的设备、我们将进行研究并告知您其工作原理。  [/报价]

    请问、您发现哪些公司支持 HSR+PTP?

    -道林

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以问、您发现哪些公司支持 HSR+PTP?

    主要是 保护继电器公司和红框工业开关制造商。 这是我在网上找到他们的设备的列表,他们声称在一些型号上"支持 HSR+PTP ",但没有这些设备来测试他们的工作原理。 我们只有我将要测试的旧 ABB 设备 RN 模型。  

    • Abb
    • Schneider
    • Siemens
    • 思科
    • Moxa.
    • AMD

    我需要在内部与某些团队成员核实此 page_pool_release_RETRY 消息。 我还可以在启用 HSR 时看到这些消息(毫无疑问、对于 HSR 分载、我必须再次查看 HSR 非分载)。

    但是、我目前没有看到 HSR 的基本功能有任何问题(电缆断开时无数据包丢失)、即使这些消息显示出来也是如此。

    [/报价]

    我知道它目前不会产生任何问题、但我们希望将来的应用能够确定。  我们将 同时运行许多通信协议。 这可能会导致 PAGE_POOL/存储器损坏。  

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

    尊敬的 Mustafa:  

    我知道它目前没有产生任何问题、但我们希望将来的应用程序能够确定。  我们将 同时运行许多通信协议。 这可能会导致 PAGE_POOL/存储器损坏。  [/报价]

    我与我们的开发人员进行了检查、他告诉我、此 Linux 内核(SDK 10.1、内核6.6)上的"XDP 支持从 skb 更改为 page_pool"、并且"驱动程序可能无法正确清理页面"。 他怀疑这就是为什么这些警告显示出来,但他们认为这些警告在最新的 Linux 上游中已得到修复,因此这些警告很可能在将来的 SDK 中不会显示(内核6.12)。  

    如果您想在我们的下一个 SDK 版本之前进行检查、我建议在6.12 (https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-linux-6.12.y-cicd)上构建 Linux 内核映像 、并查看是否仍然显示这些警告。 请注意、由于我们包含6.12的下一个 SDK 版本尚未发布、因此 i shared 的分支尚未完全稳定、只能用于开发目的。

    -道林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我需要在内部与某些团队成员核实有关此 page_pool_release_retry 消息的信息。 我还可以在启用 HSR 时看到这些消息(毫无疑问、对于 HSR 卸载、我必须再次检查 HSR 非卸载)。

    在分流模式下测试时、您应该会在尝试在 L2模式下运行 PTP 时看到这一点。 每当我们看到"NETDEV watchdog"错误,它完全崩溃的界面,无法通信. 如果您尝试"ifconfig eth1 down"、它将在"[ 464.463621] icssg-prueth icssg1-eth eth2:等待命令完成超时"中等待、或者内核崩溃而没有给出任何响应。

    root@am64xx-evm:~# ptp4l -i eth1 -i eth2 -m -2
    ptp4l[82.840]: selected /dev/ptp2 as PTP clock
    ptp4l[82.854]: port 1 (eth1): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[82.867]: port 2 (eth2): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[82.868]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[82.868]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[88.707]: port 2 (eth2): new foreign master 70ff76.fffe.1f3d63-2
    ptp4l[89.576]: port 2 (eth2): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[89.577]: selected local clock 70ff76.fffe.1f3ef5 as best master
    ptp4l[89.577]: port 2 (eth2): assuming the grand master role
    ptp4l[89.672]: port 1 (eth1): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[89.672]: port 1 (eth1): assuming the grand master role
    ptp4l[89.672]: port 2 (eth2): assuming the grand master role
    ptp4l[89.796]: port 1 (eth1): new foreign master 70ff76.fffe.1f3d63-1
    [   90.582786] icssg-prueth icssg1-eth eth1: Invalid TX TS cookie 0x0
    [   90.677627] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    [   91.582927] icssg-prueth icssg1-eth eth1: Invalid TX TS cookie 0x0
    [   91.677798] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    [   92.583062] icssg-prueth icssg1-eth eth1: Invalid TX TS cookie 0x0
    [   92.677875] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    ptp4l[92.707]: selected best master clock 70ff76.fffe.1f3d63
    ptp4l[92.707]: port 2 (eth2): MASTER to UNCALIBRATED on RS_SLAVE
    [   93.678048] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    ptp4l[93.796]: selected best master clock 70ff76.fffe.1f3d63
    ptp4l[93.796]: port 1 (eth1): MASTER to UNCALIBRATED on RS_SLAVE
    ptp4l[93.797]: port 2 (eth2): UNCALIBRATED to PASSIVE on RS_PASSIVE
    [   95.148672] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    [   96.357135] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    [   98.222380] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    [   98.360646] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    [  102.165812] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    [  103.441425] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    [  104.677143] page_pool_release_retry() stalled pool shutdown 10 inflight 60 sec
    [  104.741149] page_pool_release_retry() stalled pool shutdown 11 inflight 60 sec
    [  105.302400] icssg-prueth icssg1-eth eth2: Invalid TX TS cookie 0x0
    ptp4l[105.307]: timed out while polling for tx timestamp
    ptp4l[105.307]: increasing tx_timestamp_timeout or increasing kworker priority may correct this issue, but a driver bug likely causes it
    ptp4l[105.307]: port 1 (eth1): send delay request failed
    ptp4l[105.307]: port 1 (eth1): UNCALIBRATED to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED)
    ptp4l[111.301]: port 2 (eth2): PASSIVE to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
    ptp4l[111.301]: selected local clock 70ff76.fffe.1f3ef5 as best master
    ptp4l[111.301]: port 1 (eth1): assuming the grand master role
    ptp4l[111.301]: port 2 (eth2): assuming the grand master role
    ptp4l[112.311]: timed out while polling for tx timestamp
    ptp4l[112.311]: increasing tx_timestamp_timeout or increasing kworker priority may correct this issue, but a driver bug likely causes it
    ptp4l[112.312]: port 2 (eth2): send sync failed
    ptp4l[112.312]: port 2 (eth2): MASTER to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED)
    ^Croot@am64xx-evm:~# [  120.805136] icssg-prueth icssg1-eth eth2: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 9964 ms
    [  125.925140] icssg-prueth icssg1-eth eth2: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 15084 ms
    [  131.045138] icssg-prueth icssg1-eth eth2: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 20204 ms
    [  137.189149] icssg-prueth icssg1-eth eth2: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 26348 ms
    [  142.821137] icssg-prueth icssg1-eth eth2: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 31980 ms
    [  147.941140] icssg-prueth icssg1-eth eth2: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 37100 ms
    [  153.061137] icssg-prueth icssg1-eth eth2: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 42220 ms
    
    [  464.442730] icssg-prueth icssg1-eth eth2: timeout waiting for command done
    [  464.453037] icssg-prueth icssg1-eth eth2: timeout waiting for command done
    [  464.463621] icssg-prueth icssg1-eth eth2: timeout waiting for command done
    [  464.473705] icssg-prueth icssg1-eth eth2: timeout waiting for command done
    [  465.905627] icssg-prueth icssg1-eth eth2: timeout waiting for command done
    [  465.916352] icssg-prueth icssg1-eth eth2: timeout waiting for command done
    [ 1021.156897] icssg-prueth icssg1-eth eth1: tx teardown timeout
    [ 1021.157317] ------------[ cut here ]------------
    [ 1021.157324] kernel BUG at /lib/genalloc.c:508!
    [ 1021.157333] Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT_RT SMP
    [ 1021.157341] Modules linked in: rpmsg_ctrl rpmsg_char cdns3 cdns_usb_common overlay irq_pruss_intc cfg80211 crct10dif_ce icssg_prueth sch_taprio sch_mqprio_lib pru_rproc mux_gpio hsr icss_iep bluetooth phy_can_transceiver ecdh_generic ecc cdns3_ti pci_endpoint_test rfkill dp83869 rti_wdt ti_k3_r5_remoteproc ti_k3_m4_remoteproc k3_j72xx_bandgap sa2ul pruss omap_hwspinlock at24 omap_mailbox m_can_platform m_can can_dev pwm_tiecap spi_omap2_mcspi cryptodev(O) drm fuse drm_panel_orientation_quirks backlight ipv6
    [ 1021.157473] CPU: 1 PID: 1283 Comm: irq/145-icssg1- Tainted: G           O       6.6.58-rt45-ti-rt-01780-gc79d7ef3a56f-dirty #1
    [ 1021.157482] Hardware name: Texas Instruments AM642 EVM (DT)
    [ 1021.157487] pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [ 1021.157497] pc : 0xffff80008041711c
    [ 1021.157500] lr : 0xffff8000804170d4
    [ 1021.157504] sp : ffff00000c753af0
    [ 1021.157507] x29: ffff00000c753af0 x28: ffff00007bff0000 x27: ffff8000792cb008
    [ 1021.157519] x26: 0000000000000040 x25: 0000000000000000 x24: 0000000000000007
    [ 1021.157530] x23: 0000000000000080 x22: 0000000000000001 x21: 0000000000000000
    [ 1021.157541] x20: ffff000008ca0000 x19: ffff00007bff0000 x18: fffffffffffeabd0
    [ 1021.157552] x17: ffff7fffff23c000 x16: ffff00007ff87840 x15: ffff00007ff8c740
    [ 1021.157564] x14: 0000000000000001 x13: 0a74756f656d6974 x12: ffff000001ad251c
    [ 1021.157575] x11: ffff8000812f8000 x10: ffff800080b92810 x9 : 1fffe00000311cc1
    [ 1021.157586] x8 : ffff00000c753ab0 x7 : 0000000000000040 x6 : fffffffffffffffe
    [ 1021.157598] x5 : 0000000000000000 x4 : ffffffffffffffff x3 : ffff8000812f8038
    [ 1021.157609] x2 : 0000000000000002 x1 : 0000000000000001 x0 : 0000000000000001
    [ 1021.157620] Call trace:
    [ 1021.157625]  0xffff80008041711c
    [ 1021.157629]  0xffff8000806da498
    [ 1021.157632]  0xffff8000792be704
    [ 1021.157635]  0xffff8000792be9b0
    [ 1021.157639]  0xffff8000792beb54
    [ 1021.157642]  0xffff8000808b23d8
    [ 1021.157645]  0xffff8000808b2620
    [ 1021.157649]  0xffff80008003b850
    [ 1021.157652]  0xffff80008003baf0
    [ 1021.157655]  0xffff800080089d6c
    [ 1021.157659]  0xffff80008008a218
    [ 1021.157662]  0xffff800080059c40
    [ 1021.157665]  0xffff800080014870
    [ 1021.157674] Code: a94363f7 a8c47bfd d65f03c0 d4210000 (d4210000) 
    [ 1021.157682] ---[ end trace 0000000000000000 ]---
    [ 1021.157689] Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt
    [ 1021.391042] SMP: stopping secondary CPUs
    [ 1021.394967] Kernel Offset: disabled
    [ 1021.398443] CPU features: 0x0,00000008,00000000,1000400b
    [ 1021.403743] Memory Limit: none
    [ 1021.406791] ---[ end Kernel panic - not syncing: Oops - BUG: Fatal exception in interrupt ]---

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您想在我们的下一个 SDK 版本之前进行检查、我建议在6.12
    上构建 Linux 内核映像

    Ive 将其更新为 "6.12.13-g1a2d611ee02d"、page_pool 问题已解决。

    在卸载模式下进行测试时、您应该会在尝试在 L2模式下运行 PTP 时看到这一点。 每当我们看到"NETDEV watchdog"错误时,它就会完全崩溃接口,无法通信。

    我从7个月前 在这里看到了同样的问题。

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

    您好、Mustafa、

    在卸载模式下进行测试时、您应该会在尝试在 L2模式下运行 PTP 时看到这一点。
    根据我的理解和我自己的测试结果、基于未卸载 HSR 的 PTP 应该可以在最新的 RT-Linux SDK (版本10.1)上运行、但基于 HSR 的 PTP 仍需要额外开发。 我怀疑你所指出的对 linuxptp 的这一承诺是为了在不卸载 HSR 上启用 PTP。 卸载侧需要更改 ti-pruss 固件侧的实现方式。  [/报价]

    如前所述、基于 HSR 卸载的 PTP 仍需要额外的开发。 我们目前在 SDK 中不支持此函数。 因此、预计会出现您看到的误差。 事实上、当我尝试通过 HSR 卸载 PTP 时、我也看到了它们。  

    已将其更新为 "6.12.13-g1a2d611ee02d"、page_pool 问题已解决。

    很高兴听到 page_pool 问题已通过较新的内核版本解决。

    是的、如所示、基于已卸载 HSR 的线程 PTP 不起作用、但这是正常现象、因为我们目前不声称支持此功能。 但是、PTP 高于 HSR 非卸载确实可以如您所见。

    -道林

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

    您好:

    我想确认、它是否一步都不支持 P2P L2?

    configfile.cfg
    [global]
    network_transport	L2
    delay_mechanism		P2P
    time_stamping		hardware
    twoStepFlag		    0
    clientOnly		    1
    clock_type		    BC
    boundary_clock_jbod	1
    tc_spanning_tree	1
    
    $ ptp4l -f configfile.cfg -i eth1 -i eth2 -p /dev/ptp2
    
    ptp4l[5418.779]: selected /dev/ptp2 as PTP clock
    ptp4l[5418.820]: driver rejected most general HWTSTAMP filter
    ptp4l[5418.820]: ioctl SIOCSHWTSTAMP failed: Numerical result out of range
    ptp4l[5418.860]: port 1 (eth1): INITIALIZING to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED)
    ptp4l[5418.892]: driver rejected most general HWTSTAMP filter
    ptp4l[5418.892]: ioctl SIOCSHWTSTAMP failed: Numerical result out of range
    ptp4l[5418.924]: port 2 (eth2): INITIALIZING to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED)
    ptp4l[5418.924]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[5418.925]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    

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

    您好、Mustafa、

    到3月底,道林已经下台了。 请期待收到延迟的回复。

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

    您好、Mustafa、

    我想确认、它是否只需一步即可支持 P2P L2?

    一般而言、似乎不支持已卸载的 PTP 上的 HSR。 我仅使用两步配置专门测试了 P2P L2、但我怀疑在使用 PTP 卸载一步 HSR 时仍然不起作用。

    -道林

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

    您好:

    啊、我请求使用 HSR 非卸载模式。 忘了记下它。

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

    尊敬的 Mustafa:  

    我没有使用一步配置专门对其进行测试。 仔细检查一下、PTP 一步配置是否在不进行任何 HSR 配置(非卸载)的情况下工作?

    -道林

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

    它在 无 HSR 网络配置和无 HSR 卸载两种情况下都可以避免此错误。

    IVE 在上一个帖子中共享了完整的配置和输出。


    driver rejected most general HWTSTAMP filter
    ioctl SIOCSHWTSTAMP failed: Numerical result out of range

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

    尊敬的 Mustafa:  

    我将使用一步配置在无 HSR 网络的 PTP 上再次检查、看看是否可以重现相同的问题。 我会试着在星期五之前回复你。 如果您在周五前未收到回复、请发送此主题的 ping。

    -道林

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

    尊敬的 Mustafa:  

    根据 twoStepFlag 的 ptp4l 联机帮助页、"尚不支持一步时钟。 默认值为1 (已启用)。"  https://linux.die.net/man/8/ptp4l

    此外、此源 https://linuxptp.nwtime.org/documentation/default/ 指示一步配置只能与硬件时间戳一起使用;看起来"time_stamping"配置设置为硬件。

    经过进一步研究、似乎仅当硬件发送时间戳模式列出"one-step-sync"时才支持一步配置、该选项与 HWTSTAMP_TX_OneStep_SYNC 关联、当"twoStepFlag"为 false 时 SIOCSHWTSTAMP 需要该设置。 它应该如下所示的示例。

    root@am64xx-evm:~# ethtool -T eth2
    Time stamping parameters for eth2:
    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
           one-step-sync
    Hardware Receive Filter Modes:
           none
           all
    root@am64xx-evm:~#

    但是、当我检查 TMDS64EVM 上 eth1和 eth2的时间戳属性时、缺少"一步同步"、这表明 PRU_ICSSG 以太网驱动程序不支持单步模式。

    root@am64xx-evm:~# ethtool -T eth2
    Time stamping parameters for eth2:
    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
           all
    root@am64xx-evm:~#

    尝试启用一步模式时(twoStepFlag 为 false)、我看到了以下消息(如您在日志中所看到的)。 硬件传输时间戳模式列表中缺少"one-step-sync"、这可能是出现"ioctl SIOCSHWTSTAMP Failed"错误消息的原因。

    root@am64xx-evm:~# ptp4l -f configfile.cfg -i eth1 -i eth2 -p /dev/ptp2 -m
    ptp4l[961.616]: selected /dev/ptp2 as PTP clock
    ptp4l[961.632]: driver rejected most general HWTSTAMP filter
    ptp4l[961.632]: ioctl SIOCSHWTSTAMP failed: Numerical result out of range

    总之、基于这些发现、我认为我们不支持单步模式。

    -道林

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

    您好:

    感谢您的澄清。  

    是否会  将一步模式添加到 PRU_ICSSG 驱动程序中?

    我问的是、PTP 功率曲线标准要求它。

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

    尊敬的 Mustafa:

    [引用 userid="642574" url="~/support/processors-group/processors/f/processors-forum/1475005/tmds64evm-hsr-with-ptp-problems/5766984 #5766984"]

    是否会  将一步模式添加到 PRU_ICSSG 驱动程序中?

    我问的是、PTP 功率曲线标准要求它。

    [/报价]

    目前、添加单步模式不在计划中。 内部团队的反馈是、 对于 RTOS 中的 L3 PTP 数据包、我们只支持千兆位 EtherNet/IP 的一步模式。 目前未计划对任何其他平台上的单步模式提供支持。

    -道林