You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

U-boot下适配驱动模型的MAC驱动与非DM PHY驱动的链接问题

DM架构MAC驱动对接Legacy PHY驱动适配方案

前置场景说明

你的场景为U-Boot下使用驱动模型注册的TSEC MAC,对接使用phy_register()注册的非驱动模型KSZ804 PHY驱动,要实现MAC与PHY正常关联、支持mii/mdio工具访问寄存器,按以下步骤操作即可:


1. 保证MDIO总线正确注册

  • DM模式的TSEC驱动在probe阶段必须完成MDIO控制器硬件初始化,正确实现MDIO总线的mdio_read/mdio_write硬件操作回调,并将MDIO总线注册到U-Boot的MDIO子系统。
  • 设备树配置必须匹配硬件:TSEC节点的phy-handle、phy-mode属性正确指向KSZ804对应的PHY节点,PHY节点的reg属性与硬件上的PHY地址完全一致。

2. 完成MAC与PHY的绑定关联

非驱动模型的PHY驱动不需要走DM绑定流程,直接在TSEC驱动的初始化回调(通常为start回调)中调用Legacy PHY子系统接口完成关联:

  • 调用phy_connect()函数,传入已注册的MDIO总线实例、PHY地址、MAC设备指针、PHY接口模式(如PHY_INTERFACE_MODE_RMII),该函数会自动匹配已通过phy_register()注册的KSZ804驱动,完成PHY初始化与绑定。
  • 将phy_connect()返回的struct phy_device结构体指针保存在TSEC驱动的私有数据结构中,供后续寄存器读写调用。

3. 验证mii/mdio工具访问

只要MDIO总线注册成功、PHY绑定完成,U-Boot自带的mii/mdio工具即可直接访问PHY寄存器:

  • 执行mdio list命令可列出所有MDIO总线上扫描到的PHY设备,确认KSZ804的总线编号、PHY地址正确。
  • 读寄存器:mdio read <总线号> <PHY地址> <寄存器地址>
  • 写寄存器:mdio write <总线号> <PHY地址> <寄存器地址> <写入值>

异常排查

  • 扫描不到PHY时优先排查MDIO总线的读写回调实现,确认硬件访问逻辑无错。
  • 确认KSZ804驱动已编译进U-Boot,且phy_register()在启动阶段正常执行完成注册。
  • 检查设备树中MDIO总线节点、PHY节点的属性配置与硬件匹配。

内容的提问来源于stack exchange,提问作者user3693586

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:51:03