Linux eth phy驱动框架分析

27 篇文章 36 订阅 ¥299.90 ¥399.90

Linux中,对于eth phy的驱动,是依附于 mdiobus的,物理上,soc内部会有 mac控制器,要想实现以太网数据收发,需要外挂一颗 phy芯片,然后 soc内部的mac控制器驱动,一般都由 soc厂家来实现,在 mac控制器驱动中,又会集成 mdio 总线来实现对 phy 芯片或者switch芯片的控制接口,所以在mac控制器驱动中,又会 调用到 mdio总线的注册函数,如:of_mdiobus_register 等,所以在 mac 控制器驱动中,会有 mdio 总线相关的 读写函数

    根据总线、设备、驱动框架,phy驱动对应 phy_driver ,然后一般使用:module_phy_driver ,或者 phy_driver_register 来注册,Linux系统中,默认使用 两个通用的 phy_driver,在 phy_init 函数中。

有了phy的驱动,那么对应的phy_device 如何进行创建和初始化呢?

    查看代码,phy_device 的创建有两个入口:

1. 在 mac控制器驱动注册mdio总线时,通过 mdiobus_scan 函数,最终调用到 phy_device_register 函数来注册 phy_device,此函数会扫描mdio总线上的所有设备,然后匹配设备id,有的话,会创建  phy_device

2. 在 mac控制器驱动解析 设备树时,根据 设备树的节点,如: fix-linked节点,那么会创建 fix-linked的phy_device,

在 nvidia的mac控制器驱动中,

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技之光666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值