U-Boot网口驱动

  1. U-Boot网口驱动

U-Boot网口驱动

​ SR8201F 内部是有寄存器的,I.MX6ULL 会读取 SR8201F 内部寄存器来判断当前的物理链接状态、连接速度(10M 还是 100M)和双工状态(半双工还是全双工)。I.MX6ULL 通过 MDIO 接口来读取 PHY 芯片的内部寄存器,MDIO 接口有两个引脚,ENET_MDC 和 ENET_MDIO, ENET_MDC 提供时钟,ENET_MDIO 进行数据传输。一个 MDIO 接口可以管理 32 个 PHY 芯片,同一个 MDIO 接口下的这些 PHY 使用不同的器件地址来做区分,MIDO 接口通过不同的器件地址即可访问到相应的 PHY 芯片。I.MX6U-ALPHA 开发板 ENET1 上连接的 SR8201F 件地址为 0X2

通过IMX6ULL芯片参考手册Chapter 2:Memory Maps可知:

ETH1基地址: 0x2188000 末地址:0x218BFFF size:16KB

ETH2基地址: 0x20B4000 末地址:0x20B7FFF size:16KB

![Memory Maps](/images/Memory Maps.png)

![Memory Maps2](/images/Memory Maps2.png)

通过IMX6ULL_ALPHA_V2.8(底板原理图)可知:

ENET1:

​ ENET1 的网络 PHY 芯片为 SR8201F,通过 RMII 接口与 I.MX6ULL 相连,正点原子 I.MX6U-ALPHA 开发板的 ENET1 引脚与 NXP 官方的 I.MX6ULL EVK 开发板基本一样,唯独复位引脚不同。从图 33.2.8.1 可以看出,正点原子 I.MX6U-ALPHA 开发板的 ENET1 复位引脚 ENET1_RST 接到了 I.M6ULL 的 SNVS_TAMPER7 这个引脚上。

底板原理图

底板原理图2

查看SR8201F PHY芯片手册可知:

ENET1/2 复位需要等待150ms上电时间,复位期间拉低需要等待至少10ms,

![SR8201F PHY芯片手册](/images/SR8201F PHY芯片手册.png)

管脚控制复位: 低电平复位输入。 默认高电平

![SR8201F PHY芯片手册1](/images/SR8201F PHY芯片手册1.png)

寄存器控制复位: 寄存器0的 第15位设为1为软件复位,待恢复完成,会自动清除该位为0.

![SR8201F PHY芯片手册2](/images/SR8201F PHY芯片手册2.png)

修改:

①、ENET1 复位引脚初始化。

②、SR8201F 的器件 ID。

③、SR8201F 驱动

具体修改查看 添加相关配置文件以及U-Boot网口驱动适配 · 4b9395d · 浩鑫/U-Boot2016.3移植 - Gitee.com


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 351134995@qq.com

×

喜欢就点赞,疼爱就打赏