1.3 px30驱动移植 | 您所在的位置:网站首页 › rtl8367rbi参数 › 1.3 px30驱动移植 |
文章目录
写在前面一 、驱动框架二、驱动调用流程
写在前面
移植瑞芯微px30 网卡RTL8363的时候,不能识别到网卡 日志打印No found PHY, 只能调试一下代码,调试完成后,梳理网卡框架如下 一 、驱动框架此框架是很老的linux kernel 4.4内核思路,我看最新内核的GMAC结构体略有不同 匹配过程如下 1 在phy_device.c中,通过get_phy_device 函数拿到设备的id号 2 phy_device_register 将设备节点挂到phy_map中 3 通过mii_bus 注册的函数操作设备读写 二、驱动调用流程 kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c rk_gmac_probe() //探测px30 gmac kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c stmmac_dvr_probe() kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c stmmac_mdio_register() kernel/drivers/of/of_mdio.c of_mdiobus_register() mdiobus_register() kernel/drivers/net/phy/mdio_bus.c // __mdiobus_register() mdiobus_scan() kernel/drivers/net/phy/phy_device.c get_phy_device() rtl8367rb_init() rtk_switch_init() get_phy_device() a、通过bus->id区别rtl8363 phy设备与fixed phy设备 b、rtl8363NB 扫描端口1 3 16 // 测试函数,读取到的默认数据为 0x0432 mdio读取没问题 rtk_switch_reg1b03() drivers/net/ethernet/stmicro/stmmac/rtl8367c/rtk_switch.c smi_readreg1b03() drivers/net/ethernet/stmicro/stmmac/rtl8367c/smi.c MDC_MDIO_READ drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c stmmac_mdio_write_switch()// 真正调用mdio的地方 stmmac_mdio_read_switch()//所有的通信都是通过这两个函数去通信的 这是rk平台自定的,正常通过mii_bus->stmmac_read_switch/mii_bus->stmmac_write_switch |
CopyRight 2018-2019 实验室设备网 版权所有 |