1.mac控制器,phy芯片,rgmii协议
2.寄存器介绍
3.驱动源码解析
4.nanopi t2 移植rtl8211e网卡驱动(首发)

s5p4418 gmac概述


支持千兆速度,协议为RGMII。另外支持全双工,可编程控制的帧大小,MDIO主机管理接口,专用DMA控制器。图就不贴了。总架构图如下:

物理连接:

DMA相关寄存器


概括解释一下,可能有错

  • register 0:总线模式寄存器,包含了数据总线的一些设置,不详细解释
  • register 1:写入任何数据都可以启动DMA发送
  • register 2:写入任何数据启动DMA接收
  • register 3:DMA接收描述符,DMA使用这个描述符的信息进行批量数据传送,里面有状态标志和目的存放地址。
  • register 4:DMA发送描述符
  • register 5:状态寄存器,不解释每一位的详细含义,只读
  • register 6:操作模式寄存器
  • register 7:中断使能寄存器
  • register 8:丢帧和缓冲区溢出控制寄存器
  • register 18:当前发送描述符(由DMA再传送的时候更新这个寄存器的值)
  • register 19:当前接收描述符(由DMA再传送的时候更新这个寄存器的值)
  • register 20:当前发送缓冲区地址(由DMA再传送的时候更新这个寄存器的值,值来自发送描述符中的缓冲区地址)
  • register 21:当前接收缓冲区地址(由DMA再传送的时候更新这个寄存器的值,值来自发送描述符中的缓冲区地址)

mac控制器相关寄存器


挑几个关键的解释(可能会说错):

  • register 0:mac配置寄存器,很重要的一个配置寄存器,内容比较多,主要是配置了传输速度10M/100M/1000M、双工模式、链路使能、发送接收使能、Jabber、watchdog、CRC等等。
  • register 1:帧过滤,这个可以开启网卡的混淆模式
  • register 2:mac地址高32位
  • register 3:mac地址低32位
  • register 4:GMII管理接口,表示要访问的PHY寄存器的地址(读写PHY就靠这个)
  • register 5:GMII管理接口,读写的数据
  • register 16-17:需要过滤的mac地址
  • register 54:主要是状态寄存器,只读,调试的时候可以读这个寄存器看看

PHY:rtl8211e寄存器

  • register0:控制寄存器,有复位、loopback(回传,调试比较有用,发送的数据会发回来,验证MII接口的连通性)、速度设置(这里设置的速度不一定就是工作状态的速度,实际速度取决于PHY链路自动协商)、电源开关、双工模式。
  • register1:PHY状态寄存器,主要有当前工作速度、网口连接状态、Jabber Detect(超时)
  • register9-10、15:千兆状态标志,读取这个可以知道PHY是否工作在千兆模式,调整gmac速度予以匹配。

资源

rtl8211e芯片手册

【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍相关推荐

  1. 【NanoPi T2】 7.uboot gmac网卡驱动(3) - 驱动源码解析

    1.mac控制器,phy芯片,rgmii协议 2.寄存器介绍 3.驱动源码解析 4.nanopi t2 移植rtl8211e网卡驱动(首发) 驱动注册入口 驱动的注册分两个部分,一个部分是静态编译的时 ...

  2. 【NanoPi T2】 5.uboot gmac网卡驱动(1) - mac控制器,phy芯片,rgmii协议

    1.mac控制器,phy芯片,rgmii协议 2.寄存器介绍 3.驱动源码解析 4.nanopi t2 移植rtl8211e网卡驱动(首发) 硬件构成部分 以太网卡或者是ARM开发板的网络部分通常由M ...

  3. UEFI 中的Gmac网卡驱动实现

    UEFI 中的Gmac网卡驱动实现 最近在龙芯平台完成了Gmac网卡驱动的迁移,目前已经在UEFI上跑起来了,经过大量的测试,gmac搭配Rtl或者intel的网卡进行pxe启动都是没有问题的.也算是 ...

  4. 在rk3328上从零构建ubuntu16.04系统系列(1):sdk的环境配置和编译与uboot的网卡驱动配置

    如果有问题,请加QQ群 891339868 进行交流 当前的项目是基于RK3328的硬件方案,安装ubuntu16.04系统,现在基本上告一段落,现在将这个过程记录下来,以备以后查阅,今天先描述一下怎 ...

  5. Dm9000aep在u-boot下网卡驱动调试笔记

    作者:杨硕,华清远见嵌入式培训中心讲师. 最近在将u-boot1.3.4移植到三星s5pc100 SOC平台发现u-boot启动之后无法ping通主机,也不能用tftp下载内核.硬件平台用的网卡芯片是 ...

  6. gmac网卡驱动1-------mac与phy基础知识

    GMAC简介 网卡 用于报文控制,一般有mac和phy组成. mac: 一般用于数据的过滤 phy: 操作数据实际的收发 mac 分类: mac按最大传输速率可以分为emac,gmac组成: 帧发送( ...

  7. 2015版uboot的启动过程及网卡驱动结构分析

    启动流程和上篇博文介绍的rtems类似 首先是start.s: 在这里选择arm的arm7作为例子分析,代码:/arch/arm/cpu/armv7/start.s /** armboot - Sta ...

  8. linux怎么每次都要手动启动网卡驱动,Linux系统如何快速安装网卡驱动_Shell script即可解决 - 驱动管家...

    Linux系统内核在升级的时候,网卡驱动就要重新安装一次,那么有什么简单的方法进行网卡驱动的安装呢?下面小编就给大家介绍下Linux使用Shellscript安装网卡驱动的方法,一起来了解下吧. ## ...

  9. linux gianfar 网口驱动源码,基于MPC8313ERDB平台的Marvell88E1111型网卡驱动移植(uboot+kernel)...

    最近一个月挣扎于千兆网的设备驱动移植,现在终于弄出来了,虽然有点累但是收获还是挺多的. 进入主题前,首先要感谢网友gorilla0123,他的博客给了我很多启发,在此非常感谢.我建议做网卡驱动这方面的 ...

最新文章

  1. 4. 编程规范和编程安全指南--go语言
  2. [安卓] 7、页面跳转和Intent简单用法
  3. 布式缓存系统Memcached简介与实践
  4. mysql udb_MySQL InnoDB的一些参数说明
  5. 检测和删除多余无用的css
  6. 无数踩坑系列(1)--Brightness Controller
  7. 【Python】玫瑰花绘制
  8. Python程序设计语言基础03:基本数据类型
  9. 安装mysql后电脑右下角_windows安装mysql方法 mysql5.7以后的安装方法
  10. document.documentElement.clientWidth与document.body.clientWidth在浏览器滚动条的情况
  11. 计算机操作常用的五大功能是,计算机操作系统的五大功能是什么
  12. 【教程】如何查看自己的外网ip是不是公网ip
  13. 《东周列国志》第五十五回 华元登床劫子反 老人结草亢杜回
  14. youtube批量采集-低成本解决方案-2
  15. uni-app实战之社区交友APP(4)首页开发
  16. FMI人工智能与大数据线下沙龙第869期北京场圆满落幕
  17. 初创软件企业如何合理避税?
  18. (二)jenkins+bonobo git server+windows系统自动化部署springboot项目(自动化部署)
  19. 上海贝岭携手亚信安全治理勒索邮件 建设主动防护体系实现零感染率
  20. 洛谷 P2495 [SDOI2011]消耗战 题解

热门文章

  1. 【机器学习】吴恩达机器学习个人笔记
  2. 雅思阅读考点词-同义替换
  3. 机智云AIoT开发平台,物联网开发和运营从未如此简单
  4. EM期望最大化算法实现二项混合分布与高斯混合分布
  5. iOS指纹识别(解锁)
  6. 设置MFC对话框背景图片
  7. Lambda表达式-常见的函数式接口
  8. UI设计初学者应该如何入门?
  9. 墙裂推荐6个优质公众号
  10. OpenCV算法加速的一些学习总结