文章目录

  • 写在前面
  • 一 、驱动框架
  • 二、驱动调用流程

写在前面

移植瑞芯微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.cMDC_MDIO_READdrivers/net/ethernet/stmicro/stmmac/stmmac_mdio.cstmmac_mdio_write_switch()// 真正调用mdio的地方stmmac_mdio_read_switch()//所有的通信都是通过这两个函数去通信的 这是rk平台自定的,正常通过mii_bus->stmmac_read_switch/mii_bus->stmmac_write_switch

1.3 px30驱动移植-网卡驱动框架相关推荐

  1. 【Linux高级驱动】如何分析并移植网卡驱动

    dm9000的驱动分析 m9000_init  platform_driver_register(&dm9000_driver); dm9000_probe  /*获取平台数据*/  stru ...

  2. 关于国嵌 实验2 5 网卡驱动移植 网卡地址 的问题

    实验2.5 网卡驱动移植 网卡地址等几个宏的数值怎么得到的 实验2.5 网卡驱动移植中有几个宏 #define CONFIG_DM9000_BASE 0x20000300 #define DM9000 ...

  3. fedora18 fedora17安装显卡驱动和网卡驱动

    fedora18 fedora17安装显卡驱动和网卡驱动 最近一直有种想购物的冲动,压抑了好久,最后购买了一个镁光M4固态硬盘,使用了很长时间fedora系统,恰巧看到fedora 18 alpha版 ...

  4. ar8171 linux网卡驱动,ar8171 8175网卡驱动(ar8171网卡驱动下载)V1.0.1 官方最新版

    ar8171 8175网卡驱动(ar8171网卡驱动下载)是针对同网卡推出的最新驱动软件.适用于win7/8/10系统,ar8171 8175网卡驱动能够快速的进行所需的硬盘驱动,轻松的调用其内的各项 ...

  5. arm平台linux的ethtool配置,ARM-Linux驱动--DM9000网卡驱动分析(四)

    原标题:ARM-Linux驱动--DM9000网卡驱动分析(四) 硬件平台:FL2440 (S3C2440) 内核版本:2.6.35 主机平台:Ubuntu 11.04 内核版本:2.6.39 交叉编 ...

  6. 移植网卡驱动DM9000

    移植DM9000 移植 编译 解决错误 2.1 头文件不对 :去掉或改名 2.2 宏不对 :改名使用新宏 2.3 有些函数没有了 :改名使用新函数 移植前的试验 -之前移植的3.4.2内核是否已经具有 ...

  7. Linux驱动:网卡驱动分析之三--MAC驱动及PHY驱动框架了解

    1.前言 在了解网卡驱动之前,推荐先看linux内核网络分层结构这篇文章,这里就摘取文章中的两张关于网络数据包的流程图(UDP示例),方便后面网络设备驱动程序的了解: 数据结构说明: 内核对网络数据包 ...

  8. micropython 网络驱动_network_网卡驱动

    # `network `_视频 (`import network`) `network` 用于初始化各种网卡驱动 ***** ## **构造函数:** * [ ] **播录视频** ``` class ...

  9. 【华为云技术分享】小熊派华为物联网操作系统LiteOS裸机驱动移植02-LCD驱动移植及使用

    1. LCD裸机驱动 小熊派开发板使用的LCD屏幕为1.3寸的TFT彩屏,色彩深度16bit,分辨率240*240,使用 SPI 接口与 MCU 之间通信. 如果你对裸机玩转LCD屏幕还不熟悉,请先阅 ...

  10. 计算机没网络怎么更新网卡驱动,电脑网卡驱动更新 怎么更新网卡驱动(图文)...

    小编最近逛贴吧经常看到有用户在问,电脑网卡驱动怎么更新?电脑中的驱动程序是在不断地更新的,因此我们有些时候遇到一些问题无法解决的时候往往是由于驱动的原因所导致的,只要对自己的网上驱动进行一下更新或许就 ...

最新文章

  1. 基于实体模型开发主题管理简析
  2. Android应用资源---布局资源类型(Layout)
  3. Android网络编程使用HttpClient访问web站点
  4. 微软警告:Office 已遭IE RCE 新0day 攻击
  5. Java程序设计基础陈国军版第五版第三章习题答案与解析
  6. 我的CSDN账号被偷了
  7. 系统的x86与x64是什么意思以及他们的区别?
  8. php完美pdo类封装,PDO类的封装
  9. nodejs实现读取本地目录生成文件树
  10. SQL DUMB Series-3 4 通关过程分享(sql注入学习DAY2)
  11. 如何在交通事故中保障自己的安全
  12. 线索二叉树(前中后序线索化/遍历/画线索)
  13. 汉字风格迁移篇---MF-NET一种新颖的少镜头风格化多语言字体生成
  14. 脱离鼠标后必须记住地快捷命令方式
  15. 报错!Exception in thread “main“ java.lang.UnsatisfiedLinkError: ilog.cplex.Cplex.CPXopenCPLEX([I)J
  16. 修改树莓派的CoD(即蓝牙识别类型)
  17. 怎样查询计算机登录记录,qq登陆记录,教您QQ如何查看登录历史记录
  18. Linux下用户空间访问I/O端口的相关函数
  19. 2020同远728亲子节“看见美好”公益主题论坛在渝圆满落幕
  20. 【Leetcode】19. Remove Nth Node From End of List (cpp)

热门文章

  1. wps表格宏编辑器简单使用
  2. 计算机如何隐藏任务栏的程序,Win7隐藏任务栏
  3. SMOTE算法代码实现
  4. C语言:斐波那契数列
  5. matlab积分超过最大值,MATLAB 定积分上限是变量a,如何求解目标函数关于变量a的最大值?谢谢...
  6. c语言函数字符传送,C语言中send()函数和sendto()函数的使用方法
  7. 网站漏洞修复之CSRF跨站攻击
  8. jvm之可达性分析算法
  9. vue filters 国家区号json数据
  10. 半桥驱动器芯片 TPS28225 中文资料