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


通过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 这个引脚上。


查看SR8201F PHY芯片手册可知:
ENET1/2 复位需要等待150ms上电时间,复位期间拉低需要等待至少10ms,

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

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

修改:
①、ENET1 复位引脚初始化。
②、SR8201F 的器件 ID。
③、SR8201F 驱动
具体修改查看 添加相关配置文件以及U-Boot网口驱动适配 · 4b9395d · 浩鑫/U-Boot2016.3移植 - Gitee.com
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 351134995@qq.com