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.

[参考译文] Linux/AM4379:U-boot 中的以太网不工作

Guru**** 2551110 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/696680/linux-am4379-ethernet-not-working-in-u-boot

器件型号:AM4379

工具/软件:Linux

团队、

我的一个客户拥有 AM437x + DP83822IFRHBT。 在这种情况下、以太网不工作、并获取以下 DHCP 命令输出、

=> DHCP
以太网@4a100000等待 PHY 自动协商完成........ 超时!
=>

dts 和 mux.c 中的 pinmux 会根据设计进行更新。  以下是 MII 转储:

=> MII 转储1 0
(    3100)                -- PHY 控制寄存器--
 (8000:0000) 0.15   =    0   复位
 (4000:0000) 0.14   =    0   环回
 (2040:2000) 0。 6、13 =  B01   速度选择= 100Mbps
 (1000:1000) 0.12   =    1   A/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   (保留)


=> MII 转储1 1
(    7849)                -- 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:0000) 1. 8   =    0   扩展状态
 (0080:0000) 1. 7   =    0   (保留)
 (0040:0040) 1. 6   =    1mF   前导码抑制
 (0020:0000) 1. 5   =    0   A/N 完成
 (0010:0000) 1. 4   =    0   远程故障
 (0008:0008) 1. 3   =    1   A/N
 (0004:0000) 1. 2   =    0   链路状态
 (0002:0000) 1. 1   =    0   Jabber 检测
 (0001:0001) 1. 0   =    1   扩展功能


=> MII 转储1 2
(    2000)                -- PHY ID 1寄存器--
 (FFFF:2000) 2.15-0 = 8192   OUI 部分


=> MII 转储1 3.
3.    (A240)                -- PHY ID 2寄存器--
 (fc00:a000) 3.15-10 =   40   OUI 部分
 (03f0:0240) 3. 9 - 4 =   36   制造商器件型号
 (000f:0000) 3. 3- 0 =    0   制造商修订版号


=> MII 转储1 4
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


=> MII 转储1 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   选择器=???


此设计使用25MHz 的外部时钟。 似乎设备没有复位...有什么建议? 可以根据需要共享原理图。

此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    第一项任务是了解为何未检测到链路状态。
    (0004:0000) 1. 2 = 0链路状态

    查看连接方的 MII 转储1 5似乎全为零、自动协商过程似乎失败了。 查看 MII 转储1、可以看到自协商未完成。

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

    由于这是一个 TI PHY、我将尝试将此线程传输到 PHY 论坛、他们可以在其中帮助解决 A/N 未完成的原因。

    此致、
    Schuyler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    团队、
    在对硬件进行一些更改后、我们会看到以下输出(链路已启动)、但 DHCP 仍无法正常工作。 请帮助解决问题。

    => MII 转储1 0
    0。 (3100) -- PHY 控制寄存器--
    (8000:0000) 0.15 = 0复位
    (4000:0000) 0.14 = 0回送
    (2040:2000) 0。 6、13 = B01速度选择= 100Mbps
    (1000:1000) 0.12 = 1 A/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 (保留)


    => MII 转储1 1
    1。 (786d) -- 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:0000) 1. 8 = 0扩展状态
    (0080:0000) 1. 7 = 0 (保留)
    (0040:0040) 1. 6 = 1mF 前导码抑制
    (0020:0020) 1. 5 = 1 A/N 完成
    (0010:0000) 1. 4 = 0远程故障
    (0008:0008) 1. 3 = 1 A/N
    (0004:0004) 1. 2 = 1链路状态
    (0002:0000) 1. 1 = 0 Jabber 检测
    (0001:0001) 1. 0 = 1扩展功能


    => MII 转储1 2
    0。 (3100) -- PHY 控制寄存器--
    (8000:0000) 0.15 = 0复位
    (4000:0000) 0.14 = 0回送
    (2040:2000) 0。 6、13 = B01速度选择= 100Mbps
    (1000:1000) 0.12 = 1 A/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 (保留)


    => MII 转储1 3.
    0。 (3100) -- PHY 控制寄存器--
    (8000:0000) 0.15 = 0复位
    (4000:0000) 0.14 = 0回送
    (2040:2000) 0。 6、13 = B01速度选择= 100Mbps
    (1000:1000) 0.12 = 1 A/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 (保留)


    => MII 转储1 4
    0。 (3100) -- PHY 控制寄存器--
    (8000:0000) 0.15 = 0复位
    (4000:0000) 0.14 = 0回送
    (2040:2000) 0。 6、13 = B01速度选择= 100Mbps
    (1000:1000) 0.12 = 1 A/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 (保留)


    => MII 转储1 5
    0。 (3100) -- PHY 控制寄存器--
    (8000:0000) 0.15 = 0复位
    (4000:0000) 0.14 = 0回送
    (2040:2000) 0。 6、13 = B01速度选择= 100Mbps
    (1000:1000) 0.12 = 1 A/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 (保留)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Prahalad 和 Shiv、

    正如讨论过的、如果链路已启动且数据包未通过、我们现在需要查看 RGMII 接口。

    1.检查接口是否配置为 RGMII。
    2.查看 RGMII 接口的时钟和数据关系、并检查它们在接收器之间的偏差是否为2ns。 如果关系不正确、您可以尝试通过寄存器配置启用延迟模式选项。
    3.如果上述情况正常,请尝试 MII 回送,并检查是否将数据包正确地返回到处理器。

    此致、
    GET