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

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

s5p4418 gmac概述

【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍_第1张图片
支持千兆速度,协议为RGMII。另外支持全双工,可编程控制的帧大小,MDIO主机管理接口,专用DMA控制器。图就不贴了。总架构图如下:
【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍_第2张图片
物理连接:
【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍_第3张图片

DMA相关寄存器

【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍_第4张图片
概括解释一下,可能有错

  • 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控制器相关寄存器

【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍_第5张图片
挑几个关键的解释(可能会说错):

  • 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寄存器

【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍_第6张图片

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

你可能感兴趣的:(uboot,gmac,phy,uboot,驱动,linux)