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.

[参考译文] DP83867E:显示错误的 PHY 地址并且链路不工作

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1354524/dp83867e-wrong-phy-addr-showing-and-link-not-working

器件型号:DP83867E

大家好、我使用的是定制 Zynq MPSoC 板、我使用的是 TI DP83867ERGZ PHY 器件。 我有自举配置、因此 PHY 地址应该为3、但在 u-boot 上仅在 PHY 地址7上检测到。 我还注意到、只要我为 MPSoC 上电、所有自举引脚上的分压器电压就会变为0伏。 在 u-boot PHY 上成功检测到。 但当我连接 PHY 与 PC 链路总是关闭,链路状态为0 . 亲切的建议

mii 转储(u-boot):

0.(1140 )-- PHY 控制寄存器--

(8000:0000) 0.15 = 0复位

(4000:0000) 0.14 = 0环回

(2040:0040) 0。 6、13 = B10速度选择= 1000Mbps

(1000:1000) 0.12 = 1A/N 使能

(0800:0000) 0.11 = 0断电

(0400:0000) 0.10 = 0隔离

(0200:0000) 0。 9 = 0重新启动 A/N

(0100:0100) 0。 8 = 1双工=全双工

(0080:0000) 0。 7 = 0冲突测试使能

(003f:0000) 0。 5- 0 = 0 (保留)

1.(7949)-- PHY 状态寄存器--

(8000:0000) 1.15 = 0 100BASE-T4可用

(4000:4000) 1.14 = 1 100BASE-X 可全双工

(2000:2000) 1.13 = 1 100BASE-X 半双工

(1000:1000) 1.12 = 1 10 Mbps 可实现全双工

(0800:0800) 1.11 = 1 10 Mbps 半双工能力

(0400:0000) 1.10 = 0 100BASE-T2可全双工

(0200:0000) 1. 9 = 0 100BASE-T2可半双工

(0100:0100) 1. 8 = 1扩展状态

(0080:0000) 1. 7 = 0 (保留)

(0040:0040) 1. 6 = 1 MF 前导码抑制

(0020:0000) 1. 5 = 0 A/N 完成

(0010:0000) 1. 4 = 0远程故障

(0008:0008) 1. 支持3 = 1A/N

(0004:0000) 1. 2 = 0链路状态

(0002:0000) 1. 1 = 0 Jabber 检测

(0001:0001) 1. 0 = 1扩展功能

2.(2000年)---- PHY ID 1寄存器----

(FFFF:2000) 2.15- 0 = 8192 OUI 部分

3.(a231) PHY ID 2寄存器--

(fc00:a000) 3.15-10 = 40 OUI 部分

(03f0:0230) 3. 9-4 = 35制造商器件型号

(000f:0001) 3. 3- 0 = 1制造商版本号

4.(01e1)--自动协商通告寄存器--

(8000:0000) 4.15 = 0下一页可用

(4000:0000) 4.14 = 0 (保留)

(2000:0000) 4.13=0远程故障

(1000:0000) 4.12 = 0 (保留)

(0800:0000) 4.11 = 0非对称暂停

(0400:0000) 4.10 = 0暂停使能

(0200:0000) 4. 支持9 = 0 100BASE-T4

(0100:0100) 4. 8 = 1 100BASE-TX 全双工

(0080:0080) 4. 支持7 = 1 100BASE-TX

(0040:0040) 4. 可支持6 = 1 10BASE-T 全双工

(0020:0020) 4. 5 = 1支持10BASE-T

(001f:0001) 4. 4- 0 = 1选择器= IEEE 802.3 CSMA/CD

5.(0000)--自动协商伙伴能力寄存器--

(8000:0000) 5.15 = 0下一页功能

(4000:0000) 5.14 = 0确认

(2000:0000) 5.13 = 0远程故障

(1000:0000) 5.12=0 (保留)

(0800:0000) 5.11 = 0可实现非对称暂停

(0400:0000) 5.10 = 0暂停可用

(0200:0000) 5. 支持9 = 0 100BASE-T4

(0100:0000) 5. 可进行8 = 0 100BASE-X 全双工处理

(0080:0000) 5. 支持7 = 0 100BASE-TX

(0040:0000) 5. 可进行6 = 0 10BASE-T 全双工操作

(0020:0000) 5. 5 = 0 10BASE-T 可用

(001f:0000) 5. 4- 0 = 0伙伴选择器=???

ZynqMP>MII 读取0x07 0x0000

1140

ZynqMP>MII 读取0x07 0x0001

7949

ZynqMP>MII 读取0x07 0x0003

A231

ZynqMP>MII 读取0x07 0x0004

01页1

ZynqMP>MII 读取0x07 0x0005

0000

ZynqMP>MII 读取0x07 0x0009

0300

ZynqMP>MII 读取0x07 0x000A

0000

ZynqMP>MII 读取0x07 0x0010

5048

ZynqMP>MII 读取0x07 0x0011

0302

ZynqMP>MII 读取0x07 0x0012

0000

ZynqMP>MII 读取0x07 0x0013

0040

ZynqMP>MII 读取0x07 0x0014

29C7

ZynqMP>MII 读取0x07 0x0015

0000

ZynqMP>MII 读取0x07 0x0016

0000

ZynqMP>MII 读取0x07 0x0017

0040

ZynqMP>MII 读取0x07 0x0018

6150

ZynqMP>MII 读取0x07 0x0019

4444

ZynqMP>MII 读取0x07 0x001E

0002

ZynqMP>MII 读取0x07 0x006E

00A8

ZynqMP>MII 读取0x07 0x006F

3000

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

    您好、Ashutosh:

    有趣的是、在加电期间、MAC 似乎会驱动和影响自举引脚。 什么是上电顺序?

    感谢您分享寄存器转储、配置对我来说很好... 这里不清楚为什么自动协商失败。

    请分享原理图以便我审阅(可以通过电子邮件发送至 e-mayhew@ti.com 进行私人共享)。

    谢谢!

    埃文

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

    已连接设备的 e2e.ti.com/.../0525.schematics.pdfSchematics。 此外、我们还将使用两种电源模式。

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

    您好、Ashutosh:

    您能否在测试过程中确认是否启用了自动协商? 我看到自举寄存器0x6E[7]表示模拟禁用、但是原理图中包含了用于自动协商的启用自举。

    是否可以在 SoC 之前为 PHY 供电、以确保 MAC 不会加载自举引脚?

    谢谢!

    埃文

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

    您好、Evan:

    感谢您的回复。 AutoNeg 在该板连接到的对等 PC 上启用。 是自举寄存器显示自动协商禁用。 是的、可以在 SoC 之前为 PHY 供电。 在此场景中、PHY 上到底需要检查什么? 是的、我也发现签带配置与寄存器值不对齐这一点非常奇怪。 我还想通过 PHY 的复位引脚连接到看门狗 POR 和 IO 扩展器来共享一点。 当我从 IO 扩展器进行复位时、PHY 基本控制寄存器将 resetbit[15]显示为1、这表明 PHY 没有结束复位。

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

    您好、Ashutosh:

    感谢您的澄清。 在首先为 PHY 供电之后、在 MAC 之前、请共享寄存器转储。

    要检查的两个事项:

    [1]首先为 PHY 供电后,自举值符合预期的自举设置。

    [2]在 MAC 通电和未通电的情况下,复位行为与预期相同。

    谢谢!

    埃文

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

    您好、Evan:

    我们对电路板的复位过程进行了一些更改、现在只能通过 I/O 扩展器进行控制、通过该扩展器、我们可以将 PHY 置于复位状态并使其脱离复位状态、这是之前没有发生的。 当我们在连接到该 PHY 的 MPSoC 内使用 GEM1时、我们将 RX_D0、RX_D2和 RX_CTL 引脚的上拉强度从"上拉"更改为"禁用"、从而根据自举配置"3"得到正确的 PHY 地址。

    第二、我们发现必须通过间接寻址方法而不是直接读取命令来读取状态寄存器、在执行此操作后即可正确读取自举配置。 相同的 PHY 地址可见于 MII INFO、也可见于006E 的寄存器。  6E 和6F 寄存器的正确值如下所示、它也与自举配置匹配。

    ZynqMP>MII 写入0x03 0x0d 0x001f
    ZynqMP>MII 写入0x03 0x0E 0x006e
    ZynqMP>MII 写入0x03 0x0d 0x401f
    ZynqMP>MII 读取0x03 0x0E        
    0003

    ZynqMP>MII 写入0x03 0x0d 0x001f
    ZynqMP>MII 写入0x03 0x0E 0x006F
    ZynqMP>MII 写入0x03 0x0d 0x401f
    ZynqMP>MII 读取0x03 0x0E        
    0154

    由于我们正在使用 Zynq UltraScale+ MPSoC (11eg 系列)、该 PHY 连接到 GEM1接口、只有在在位流中配置并启用时才会在 u-boot 上可见。 因此、我认为我们不能启用 PHY 并在不启用 MAC (在本例中为 GEM)的情况下读取寄存器。

    但即使在此之后链路状态仍然为关闭、如果需要通过寄存器进行任何特定配置来开启链路状态、您能否说明。

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

    您好、Ashutosh:

    很高兴听到扩展寄存器过程会返回正确的自举值。

    在本例中、哪个器件是链路伙伴? 首先要确认的是、两个 PHY 都启用了自动协商功能和兼容的速度广播。 相关寄存器为:

    - 0x0[12]='1'的自动协商启用

    - 0x4以检查速度广播

    - 0x5以检查 LP 广播(自动协商完成后)

    - 0x9以检查千兆位广播

    可通过直接寄存器读取来访问这些寄存器。

    谢谢!

    埃文

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

    您好、Evan:

    我们已将 PHY 连接到我们工作的 PC 之一。 自动协商未完成(我们还尝试了在 AutoNeg 关闭时使用不同速度、结果相同且链路状态仅显示为低)。 PHY 器件的寄存器转储:

    ZynqMP>MII 转储0x03 0x00
    0.(1140 )-- PHY 控制寄存器--
    (8000:0000) 0.15 = 0复位
    (4000:0000) 0.14 = 0环回
    (2040:0040) 0。 6、13 = B10速度选择= 1000Mbps
    (1000:1000) 0.12 = 1A/N 使能
    (0800:0000) 0.11 = 0断电
    (0400:0000) 0.10 = 0隔离
    (0200:0000) 0。 9 = 0重新启动 A/N
    (0100:0100) 0。 8 = 1双工=全双工
    (0080:0000) 0。 7 = 0冲突测试使能
    (003f:0000) 0。 5- 0 = 0 (保留)


    ZynqMP>MII 转储0x03 0x04
    4.(01e1)--自动协商通告寄存器--
    (8000:0000) 4.15 = 0下一页可用
    (4000:0000) 4.14 = 0 (保留)
    (2000:0000) 4.13=0远程故障
    (1000:0000) 4.12 = 0 (保留)
    (0800:0000) 4.11 = 0非对称暂停
    (0400:0000) 4.10 = 0暂停使能
    (0200:0000) 4. 支持9 = 0 100BASE-T4
    (0100:0100) 4. 8 = 1 100BASE-TX 全双工
    (0080:0080) 4. 支持7 = 1 100BASE-TX
    (0040:0040) 4. 可支持6 = 1 10BASE-T 全双工
    (0020:0020) 4. 5 = 1支持10BASE-T
    (001f:0001) 4. 4- 0 = 1选择器= IEEE 802.3 CSMA/CD


    ZynqMP>MII 转储0x03 0x05
    5.(0000)--自动协商伙伴能力寄存器--
    (8000:0000) 5.15 = 0下一页功能
    (4000:0000) 5.14 = 0确认
    (2000:0000) 5.13 = 0远程故障
    (1000:0000) 5.12=0 (保留)
    (0800:0000) 5.11 = 0可实现非对称暂停
    (0400:0000) 5.10 = 0暂停可用
    (0200:0000) 5. 支持9 = 0 100BASE-T4
    (0100:0000) 5. 可进行8 = 0 100BASE-X 全双工处理
    (0080:0000) 5. 支持7 = 0 100BASE-TX
    (0040:0000) 5. 可进行6 = 0 10BASE-T 全双工操作
    (0020:0000) 5. 5 = 0 10BASE-T 可用
    (001f:0000) 5. 4- 0 = 0伙伴选择器=???


    ZynqMP>MII 转储0x03 0x01
    1.(7949)-- PHY 状态寄存器--
    (8000:0000) 1.15 = 0 100BASE-T4可用
    (4000:4000) 1.14 = 1 100BASE-X 可全双工
    (2000:2000) 1.13 = 1 100BASE-X 半双工
    (1000:1000) 1.12 = 1 10 Mbps 可实现全双工
    (0800:0800) 1.11 = 1 10 Mbps 半双工能力
    (0400:0000) 1.10 = 0 100BASE-T2可全双工
    (0200:0000) 1. 9 = 0 100BASE-T2可半双工
    (0100:0100) 1. 8 = 1扩展状态
    (0080:0000) 1. 7 = 0 (保留)
    (0040:0040) 1. 6 = 1 MF 前导码抑制
    (0020:0000) 1. 5 = 0 A/N 完成
    (0010:0000) 1. 4 = 0远程故障
    (0008:0008) 1. 支持3 = 1A/N
    (0004:0000) 1. 2 = 0链路状态
    (0002:0000) 1. 1 = 0 Jabber 检测
    (0001:0001) 1. 0 = 1扩展功能


    ZynqMP>MII 转储0x03 0x09
    9.(0300)-- 1000BASE-T 控制寄存器--
    (E000:0000) 9.15-13 = 0测试模式
    (1000:0000) 9.12 = 0手动主/从使能
    (0800:0000) 9.11 = 0手动主/从值
    (0400:0000) 9.10 = 0多/单端口
    (0200:0200) 9. 9 = 1 1000BASE-T 全双工
    (0100:0100) 9. 8 = 1 1000BASE-T 半双工
    (0080:0000) 9. 链路断开时7 = 0自动 TDR
    (1fc0:0300) 9. 6 = 12 (保留)

    链路伙伴(连接 PHY 的 PC)的 ethtool 输出:

    用户@用户:~$ ethtool eno1
    ENO1设置:
       支持的端口:[ TP ]
       支持的链路模式:  100baseT/Full
                              1000baseT/Full
                              10000baseT/完整
                              2500baseT/完整
                              5000baseT/满
       支持的暂停帧使用:对称
       支持自动协商:是
       支持的 FEC 模式:未报告
       广播的链路模式: 100baseT/Full
       广播暂停帧使用:对称
       广播的自动协商:否
       广播的 FEC 模式:未报告
       速度:未知!
       双工:全双工
       端口:双绞线
       PHYAD:0
       收发器:内部
       自动协商:关闭
       MDI-X:未知
    无法获取局域网唤醒设置:操作不允许
       检测到链路:无

    我想说的更多是、模拟环回成功(参考资料来自 DP83867故障排除指南)。 请推荐未来的调试序列。

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

    您好、Ashutosh:  

    广告自动协商:否

    连接方是否启用了自协商功能? 这个 ethtool 输出表明、它仍然可以在 PC 端被禁用。

    请在 PC 端共享有线网络设置。

    谢谢!

    埃文

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

    您好 Evan:

    感谢你的帮助。 我们能够使链路正常工作。 该问题是由于 钳位中的某种硬件问题造成的。 我们在移除钳位后、连接就启动并且正常工作