1、概述
以太网 PHY 驱动移植,主要包括 Linux、 u-boot 及设备树等三个方面标准框架下的移植。本文以裕太8511PHY为例展开说明。一般国产芯片厂商会提供在uboot/linux下PHY的驱动。在uboot/linux的PHY框架是有区别的,这点要注意。
YT8511 PHY 驱动的移植主要基于 genphy 驱动,在 genphy 驱动的基础上增补了设备树节点的解析及 PHY TX/RX 延迟的配置功能。最近调试国产雄立科技的phy也主要是增补的延迟功能的配置。
2. 设备树属性配置
设备树文件主要涉及 system-top.dts, 可在 gmac0、 gamc1 节点中添加 phy 子节点的一些配置属性信息,如下图。
其中 phy-connection-type = "rgmii-id":表示 PHY 需要配置 TX/RX 延迟,具体解释为"rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the MAC should not add the RX or TX delays in this case);yt,phy-delay = <0x80a3>:表示 PHY 延迟相关的配置参数信息,用于配置 PHY 延迟相关的寄存器。添加上述两项属性信息后, u-boot 及 Linux 内核在成功完成设备及驱动的匹配后, 会调用 ytphy8511_config 进行设备树的解析并完成相关配置操作。
3. u-boot PHY 驱动移植
3.1 涉及文件
1. 在 ../u-boot/drivers/net/phy 目录下添加 yt_phy.c 文件;
2. 修改../ u-boot/drivers/net/phy 目录下的 Kconfig 文件,如下图所示。
3. 修改../ u-boot /drivers/net/phy 目录下的 Makefile 文件,如下图所示。
4.修改../ u-boot /drivers/net/phy 目录下的 phy.c 文件,如下图所示。
3.2 驱动添加
完成 3.1 章节的内容后,进入 u-boot 目录下执行 make menuconfig 进行 u-boot 配置,添加 YT PHY 驱动,如下图所示。
最后如何硬件没问题,在uboot启动打印中就能看到识别该网卡。设置好ip就能ping通PC了。
下次讲一下在linux在如何添加驱动。