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/DP83867IR:在 Petalinux 中无法识别 dp83867ir 以太网 phy

Guru**** 2484615 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/680665/linux-dp83867ir-dp83867ir-ethernet-phy-not-recognized-in-petalinux

器件型号:DP83867IR

工具/软件:Linux

我使用 Xilinx 的 Zynq 芯片。 


我们在设计该板时没有参考板。
最重要的一点是 Linux 不能识别以太网 phy (ti、dp83867)。

下面是我们检查的器件。 
使用 petalinux 版本17.3
它使用 Xilinx 提供的 Xilinx 内核、内核版本基于4.9x。 
U-boot 还使用 Xilinx 的版本2017.1。

1.以太网在独立模式下工作良好。 
2.我们使用 Vivado 工具创建基于硬件逻辑设计的项目,并创建一个包含使用它创建的硬件相关信息的文件(.HDF)
3.在内核中从 menuconfig 中添加 ti (dp83867)千兆位以太网驱动程序。
4.使用创建的 fsbl.elf、u-boot.elf [FPGA].bit 文件,创建 boot.bin 引导文件并将其插入 SD 卡并引导。

问题

-当我们不包含 dp83867驱动程序时,我们连接了 phy,ping 命令正常工作,但 ping 不能正常到达。
如果添加了 dp83867驱动程序,则根本不会创建 eth0设备,并显示 no PHY 消息。 此外,还会显示消息“未链接...” 并且设备未正常注册。



我修改了器件树以解决此问题。 我们使用 RGMII 接口并希望使用1g 以太网。
因此,我们检查了如何注册位于[kernel_DIR]/Documentation/中的 ti 设备树。 并创建了设备树。 (我目前无法向您展示如何创建此设备树。

但是、phy 始终发送一条消息、表示没有 PHY、这不能解决问题。

在同一 Xilinx 产品系列中、zynqMP 板的 zcu102使用相同的 ti、dp83867芯片、这是一个参考板。 我用它来创建器件树、但它的工作方式不同。


当 u-boot​​通过 MII 命令向 dp83867数据表的 RW 授权寄存器写入值和其他值时、以太网 phy 会成功进行自动协商、并且链路状态也为1。
但是,ping 仍然不起作用。


结论和问题
我们设计时没有参考板。 然而、内核中的 defconfig 针对一个完全不相关的名为 zc702的电路板。 您认为这会是个问题吗?

-以太网 PHY 在自动协商中成功,在 Linux 中成功连接和查找 Eth0设备,这是否与此不同?

u-boot 还具有 ti 的驱动程序,内核也有一个名为 dp83867的驱动程序。 这两个角色是否不同?

-我是否需要修复设备驱动程序本身以解决此问题?

我必须解决这个问题。
感谢你的帮助。
谢谢你。 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TI 不支持 Xilinx 芯片和 Petalinux。 请联系 Xilinx 获取有关其 Linux 版本的支持。