知识点
mdio子模块属于总线型驱动
NAPI(New API)
网卡数据处理API,用于提高网络处理效率。NAPI是中断和轮询poll的结合,数据量低时采用中断,数据量高时采用轮询
通用phy驱动genphy。符合802.3,phy寄存器地址统一
流程梳理
以RK3399(Android7.1.2)为例
路径为: kernel/drivers/net/ethernet/stmicro/stmmac/
dts(“rockchip,rk3399-gmac”)
->rk_gmac_probe(dwmac-rk.c),gmac时钟、电源等配置
->stmmac_dvr_probe(stmmac_main.c)mac时钟使能、mac硬件初始化、net_device和NAPI绑定(netif_napi_add)、register_netdev()等等
->stmmac_mdio_register->mdiobus_register
->
..............
作者: Shell
链接: https://notes.z-dd.online/2021/03/16/Linux%E7%BD%91%E7%BB%9C%E9%A9%B1%E5%8A%A8MDIO%E5%8F%8APhy%E6%A2%B3%E7%90%86/
来源: DD'Notes
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文详细梳理了Linux网络驱动中MDIO子模块、NAPI数据处理API以及通用PHY驱动genphy。MDIO子模块作为总线型驱动,NAPI结合中断和轮询提高网络效率。在RK3399(Android 7.1.2)平台上,从设备树到驱动注册的流程被详细阐述,涉及硬件初始化、MAC配置和PHY寄存器地址统一。
529

被折叠的 条评论
为什么被折叠?



