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.

[参考译文] PROCESSOR-SDK-AM62X:MDIO 手动模式启用的勘误表更改不起作用

Guru**** 2474690 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1428737/processor-sdk-am62x-errata-changes-for-mdio-manual-mode-enablement-not-working

器件型号:PROCESSOR-SDK-AM62X

工具与软件:

您好!

我们使用 AM62x 电路板进行开发。 我们已 将 TI 在 "SDK8.0https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/enetmdio_manualmode.html#autotoc_md1990"中提到的 MDIO 手动模式启用权变措施更改集成 到 VxWorks 中 。 应用补丁后、我们看到 通过以太网执行"ping"操作不起作用。

如果有任何其他修复或缓解措施可用于解决此问题、请建议执行此操作。 请考虑此勘误表在 AM64x 和 AM65x 等其他适用电路板上的兼容性。

谢谢!

Aditya

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

    尊敬的  Aditya:

    感谢您的提问。

    [报价用户 id="628100" url="~/support/processors-group/processors/f/processors-forum/1428737/processor-sdk-am62x-errata-changes-for-mdio-manual-mode-enablement-not-working ]基于 SDK8.0[/报价]

    使用 MCU+SDK 8.0的任何具体原因?

    [quote userid="628100" url="~/support/processors-group/processors/f/processors-forum/1428737/processor-sdk-am62x-errata-changes-for-mdio-manual-mode-enablement-not-working 应用补丁后、我们看到 通过以太网 ping 无效。

    在应用手动模式补丁之前、是一个正常运行的设置?

    您是否可以共享工作中和非工作中的设置的 UART 控制台日志?

    此致

    Ashwani

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

    尊敬的 Ashwani:

    客户使用的是 SDK 8.0、只需在此基础上更改 MDIO 手动模式权变措施。 在应用手动模式补丁之前、设置正常。

    我需要 为该问题重新生成日志、但问题在于"ping"、如下所示。 MDIO 手动模式启用是否会中断任何 PHY 操作?

    -> ping "192.168.3.25" ping 192.168.3.25 (192.168.8.3.25)
    
    、其中包含64字节的数据:
    
    -- 192.168.3.25 ping statistics --
    发送1个数据包、接收0个数据包、丢失100%数据包、时间1016 ms
    值=-1 = 0xffffffff 

    此致、

    Aditya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    应用手动模式补丁之前、设置运行正常。

    感谢您的确认。

    启用 MDIO 手动模式是否干扰任何 PHY 操作

    您是否能够检查与 PHY 的通信? (是否能够读写 PHY 寄存器?)

    MAC 环回在启用手动模式的情况下工作正常吗?

    启用手动模式后、PHY 环回功能正常?

    您是否可以共享工作和非工作设置的 UART 控制台日志?

    器件启动期间的 UART 控制台日志。

    我需要 为此问题重新生成日志

    我将等待他们。 工作设置日志。

    仅供参考、 我下周就要休假了。 因此、预计会有一些延迟响应(到11月的第1周结束)。

    此致

    Ashwani

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

    Ashwani 您好!

    我现在重新生成了 MDIO 手动模式修补程序的工作日志和非工作日志。

    请您分享  以下测试的具体期望。

    MAC 环回在启用手动模式的情况下工作正常吗?  启用手动模式后、PHY 环回功能正常?

    谢谢!

    Aditya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MAC 回送在启用手动模式的情况下运行正常?  启用手动模式后、PHY 环回运行正常?

    很好的..MAC 和 PHY 环回在启用手动模式时正常工作。 这看起来与工作日志有关吗?

    我现已重新生成 MDIO 手动模式修补程序的工作日志和非工作日志。

    非工作日志的情况如何?

    此致

    Ashwani

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

    尊敬的 Ashwani:

    请在日志(主机 PC:192.0.0.2、目标:192.0.0.3)上找到以下信息。  

    工作日志:

    -> ifconfig
    Lo0链路类型:本地环回
    INET 127.0.0.1 mask 255.255.255.255
    inet6单播 fe80::1%lo0 prefixlen 64自动
    Inet6 unicast :: 1 prefixlen 128.
    运行环回多播 NOARP ALLMULTI
    MTU:1500公制:1 VR:0 ifIndex:1
    RX 数据包:4 mcast:2错误:0已丢弃:0
    TX 数据包:4mcast:2错误:0
    冲突:0不支持的协议:0
    Rx 字节:474 TX 字节:474

    cpsw0链路类型:以太网 HWaddr 34:08:E1:80:86:01
    功能:VLAN_MTU
    INET 192.0.0.3 mask 255.255.255.0广播192.0.0.255
    inet6单播 fe80::3608:e1ff:fe80:8601%cpsw0 prefixlen 64暂定自动
    运行单工广播组播
    MTU:1500公制:1 VR:0 ifIndex:2
    RX 数据包:2 mcast:1错误:0已丢弃:0
    TX 数据包:4mcast:3错误:0
    冲突:0不支持的协议:0
    RX 字节:146 TX 字节:300

    value = 0 = 0x0

    -> ping "192.0.2"

    对具有64字节数据的主机(192.0.0.2)执行 Ping 操作:
    从192.0.0.2字节=64 TTL=128序列=0时间<1ms 的回复

    ---主机 ping 统计信息---
    发送1个数据包、接收1个数据包、0%数据包丢失、时间0ms
    RTT min/avg/max = 0/0/0 ms
    value = 0 = 0x0
    -> ping "192.0.2"、10.

    对具有64字节数据的主机(192.0.0.2)执行 Ping 操作:
    从192.0.0.2字节=64 TTL=128序列=0时间<1ms 的回复
    从192.0.0.2字节=64 TTL=128 Seq=1时间=16ms 回复
    从192.0.0.2字节=64 TTL=128 Seq=2时间=33ms 回复
    从192.0.0.2字节=64 TTL=128序列=3时间=33ms 的回复
    从192.0.0.2字节=64 TTL=128 Seq=4时间=33ms 回复
    从192.0.0.2字节=64 TTL=128 Seq=5时间=33ms 回复
    从192.0.0.2字节=64 TTL=128 Seq=6时间=33ms 回复
    从192.0.0.2字节=64 TTL=128 Seq=7时间=33ms 回复
    从192.0.0.2字节=64 TTL=128 Seq=8时间=33ms 回复
    从192.0.0.2字节=64 TTL=128 Seq=9时间=33ms 回复

    ---主机 ping 统计信息---
    传输10个数据包、接收10个数据包、0%数据包丢失、时间9033ms
    RTT 最小值/平均值/最大值= 0/28/33ms
    value = 0 = 0x0
    ->

    非工作日志:  

    -> ifconfig
    Lo0链路类型:本地环回
    INET 127.0.0.1 mask 255.255.255.255
    inet6单播 fe80::1%lo0 prefixlen 64自动
    Inet6 unicast :: 1 prefixlen 128.
    运行环回多播 NOARP ALLMULTI
    MTU:1500公制:1 VR:0 ifIndex:1
    RX 数据包:11 mcast:3错误:0已丢弃:0
    TX 数据包:11 mcast:3错误:0
    冲突:0不支持的协议:0
    RX 字节:512 TX 字节:512

    cpsw0链路类型:以太网 HWaddr 34:08:E1:80:86:01
    功能:VLAN_MTU
    INET 192.0.0.3 mask 255.255.255.0广播192.0.0.255
    inet6单播 fe80::3608:e1ff:fe80:8601%cpsw0 prefixlen 64暂定自动
    单工广播组播
    MTU:1500公制:1 VR:0 ifIndex:2
    RX 数据包:0 mcast:0错误:0已丢弃:0
    TX 数据包:0 mcast:0错误:0
    冲突:0不支持的协议:0
    RX 字节:0 TX 字节:0

    value = 0 = 0x0

    -> ping "192.0.2"

    对具有64字节数据的主机(192.0.0.2)执行 Ping 操作:

    ---主机 ping 统计信息---
    发送1个数据包、接收0个、100%数据包丢失、时间1033ms
    值= 4294967295 = 0xffffffff
    -> ping "192.0.3"

    对包含64字节数据的 vxTarget (192.0.0.3)执行 Ping 操作:
    从192.0.0.3字节=64 TTL=64序列=0时间<1ms 的回复

    ——vxTarget ping 统计信息——
    发送1个数据包、接收1个数据包、0%数据包丢失、时间0ms
    RTT min/avg/max = 0/0/0 ms
    value = 0 = 0x0
    -> ping "192.0.2"、10.

    对具有64字节数据的主机(192.0.0.2)执行 Ping 操作:

    ---主机 ping 统计信息---
    发送10个数据包、接收0个、100%数据包丢失、时间10300ms
    值= 4294967295 = 0xffffffff
    ->

    谢谢你。

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

    尊敬的 Ashwani、 对于 MAC 和 PHY 环回、在启用 MDIO 手动模式的情况下不运行测试。 是否仅检查是否接收了传输的数据包?

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

    嗯、上面的日志  

    不带 MDIO 手动模式补丁+ MCU-SDK 8.0安装程序的工作日志

    使用 MDIO 手动模式补丁+ MCU-SDK 8.0安装程序时的非工作日志。

    在 MAC 和 PHY 环回上、在启用 MDIO 手动模式的情况下不运行测试。 是否仅用于检查是否接收到传输的数据包?

    我的意思是、手动模式修补后、您能否确认 PHY 配置是否正确?

    请也在 AM243x 侧共享 UART 控制台日志。

    您是否可以检查主机、CPSW 和 PHY 统计信息以确认 ping 数据包在 PHY 或 MAC 级别被丢弃的位置?

    此致

    Ashwani

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

    Ashwani 您好!

    MDIO 用于 PHY 数据传输(基于配置的读取和写入方向)。 TI 建议、如果器件受到 MDIO 勘误表 i2329的影响、则使用 MDIO 手动模式作为软件权变措施。 手动模式旨在由软件用于低速通用 IO 操作、而不是 如 TRM 中所述用于 MDIO PHY 操作。 请您澄清一下这一点吗?

    6.4.12.2.5手动模式

    手动模式允许软件直接控制串行时钟输出(MDCLK_O)、串行数据输出使能(MDIO_OE_N)和串行数据输出(MDIO_O)。 串行数据输入也可以读取(MDIO_I)。 当 MDIO MDIO_POLL_REG 寄存器中设置了[31] MANUALMODE 位时、此模式启用。 手动模式旨在供软件用于低速通用 IO 操作、而不是用于 MDIO PHY 操作。

    谢谢你。

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

    AM64x MCU+ SDK:MDIO 手动模式启用

    [报价 userid="320995" url="~/support/processors-group/processors/f/processors-forum/1428737/processor-sdk-am62x-errata-changes-for-mdio-manual-mode-enablement-not-working/5509886 #5509886"]

    请也在 AM243x 侧共享 UART 控制台日志。

    您是否可以检查主机、CPSW 和 PHY 统计信息以确认 ping 数据包在 PHY 或 MAC 级别被丢弃的位置?

    [报价]

    这里有更新吗?

    此致

    Ashwani

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

    Ashwani 您好!

    我们已经从电路板上捕获了 MDIO 手动更改前后的网络状态。

    在 MDIO 之前:

    -> netstat "-a"
    INET 套接字
    Prot Recv-Q Send-Q 本地地址         外部地址       未定义状态
    TCP 0 0            0.0.0.0.23            0.0.0.0。*              倾听
    TCP 0 0           128.224.19.155.23.      128.224.19.15.58188   已建立
    UDP 0 0 localhost.20005 localhost.20004

    Inet6插槽
    Prot Recv-Q Send-Q 本地地址外部地址   状态
    TCP 0 0            ::.23.         *:               倾听
    TCP 0 0            :: 1.49636.     : 1.54632.          成熟
    TCP 0 0            : 1.54632.     :: 1.49636.          成熟

    在 MDIO 之后:

    ->netstat -a
    INET 套接字
    Prot Recv-Q Send-Q 本地地址         外部地址        未定义状态
    TCP 0   0         0.0.0.0.23             0.0.0.0。*               倾听
    UDP 0 0            localhost.20005        localhost.20004

    Inet6插槽
    Prot Recv-Q Send-Q 本地地址         外部地址        未定义状态
    TCP 0      0        ::.23.                  *:                  倾听

    我可以看到更改后未建立 TCP 连接。

    谢谢你。

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

    您好 、Aditya、

    您正在崇拜"AM62X-AM62X" MCU-PLUS-SDK 或"AM62X-AM62X" PROCESSOR-SDK-LINUX?

    此致

    Ashwani

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

    Ashwani 您好!

    我们正在开发  PROCESSOR-SDK-LINUX AM62X。

    谢谢你。

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

    Ashwani 您好!

    您能否告诉我们、有关启用 MDIO 手动模式和使用  PROCESSOR-SDK-LINUX 操作的情况、我们可以从最新的 PHY-AM62X 参考哪个源文件? 这将帮助我们进一步在 VxWorks 上实施相同功能。  

    我们可以在以下位置看到多个源文件:  

    board-support\linux-extras-6.1.83+gitAUTOINC+ffc2ff4d45-ti\drivers\net\MDIO 目录。

    从此对话中您可以看到、我们已实施勘误表 i2329中提及的权变措施 、但仍面临问题、我们希望将我们的驱动程序升级至最新的 PROCESSOR-SDK-LINUX AM62X-AM62X。 您能就此向我们建议一下吗?

    谢谢、此致、

    Revashankar

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

    Ashwani 您好!

    在以上问题上、您能支持我们吗? 此外、您能否确认我们是否还需要升级固件、才能在手动模式下使用 MDIO 和 PHY 操作。 谢谢!!

    此致、

    Revashankar  

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

    您好!

    这些是 TI 器件使用的与 MDIO 相关的文件。

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/net/ethernet/ti/davinci_mdio.c

    当模式设置为手动模式时、驱动程序将定义为内核的一部分的位转换功能。 查找名称为 mdiobb 的函数。

    这是被调用的内核中的文件、这里定义了 mdiobb 函数。

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/net/mdio/mdio-bitbang.c

    此致、

    Schuyler

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

    尊敬的  Schuyler:

    感谢您更新文件。 比如、我们用于 MDIO 的 VxWorks 驱动程序与最新的 SDK 同步。 您能否确认我们是否需要执行固件升级以在手动模式下使用 PHY 操作的 MDIO。

    如果确实需要升级固件、请您提供相关帮助。 谢谢!!

    此致、

    Revashankar

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

    尊敬的  Schuyler:

    如果需要、请更新我们的固件升级吗? 谢谢!!

    此致、

    Revashankar

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

    您好!

    使用 Linux 时、A53 cpsw 和 MDIO 驱动程序不依赖于固件。 只是为了确保我正在回答这个问题、您是否有您所指的特定固件? 如果您引用的是 SYSFW、此处不存在依赖关系、因为时钟由 Linux 内核代码生成。

    此致、

    Schuyler

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

    尊敬的  Schuyler:

    感谢您更新固件。 实际上、 MDIO 在自动模式下可以很好地工作。 当我们为勘误表 i2329应用解决方案以使 MDIO 在手动模式下工作时、 cpsw 未启动。 详细信息  AM64x 工业通信 SDK:用于 MDIO 手动模式的 PRU-ICSS 固件、建议将固件从之前的 SDK 版本更新到最新版本(请参阅链接中的 SDK9.0 VS SDK8.6更改部分)。

    也建议使用 使用详细信息 :如何使用 PRU MDIO 手动模式固件来访问 PHY 寄存器。

    我们的驱动程序与最新的 Linux SDK 同步、并具有勘误表中所述的权变措施、 但我们还没有更新固件。 这是我们在与 MDIO 在手动模式下工作的 Linux 工作设置进行比较时可以确定的增量。

    您能不能就此为我们提供指导。  

    此致、

    Revashankar

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

    您好!

    感谢您澄清您指的是哪款 FW。 本文中描述的原始文章中使用了 AM62 EVM、该处理器中没有 PRU_ICSSG 模块、因此无需更新固件。 在我浏览这篇文章时、我也看到提到了 AM64。 这里是否仅使用 AM62处理器?

    此致、

    Schuyler

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

    尊敬的  Schuyler:

    感谢您的更新。 是的、我们在 AM62x、AM64x 和 AM65x 等所有适用电路板上查找此勘误表的手动模式兼容性。 但是、目前我们在 AM62x 电路板上运行测试。 鉴于您提到无需进行固件升级、我们将对此进行进一步研究并采取对策。 谢谢!!

    此致、

    Revashankar

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

    尊敬的  Schuyler:

    感谢您的支持。 我们现在能够在手动模式下运行 MDIO。  

    此致、

    Revashankar

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

    您好!

    这是一个好消息!

    此致、

    Schuyler