请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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的驱动程序。 这两个角色是否不同?
-我是否需要修复设备驱动程序本身以解决此问题?
我必须解决这个问题。 感谢你的帮助。 谢谢你。