文章目录
写在前面
移植瑞芯微px30 网卡RTL8363的时候,遇到了一些坑,为此理了一下GMAC的代码思路,所遇到的问题主要是没有识别到 phy,表象为启动日志里打印 no found phy,调试过程总结如下
一、网卡物理结构梳理
将网卡与cpu的连接关系可以抽象成
其中 移植时有几个引脚需要关注一下
引脚名 | 作用 |
---|---|
MDC | 时钟线 |
MDIO | 数据线 |
RESET | 复位管脚 |
从上面这张图我们可以看到,我们有三个PHY,在分析代码时候会遇到。
其中
MAC: 通常集成在ARM芯片中,功能类似于一个controller,以太网协议层数据传送给MAC,由MAC通过DMA发送到外部接口,外部接口连接着PHY。或者接收从PHY传过来的信号,DMA搬运到内存中存储。
PHY:通常是一个独立芯片,负责把从 MAC 传送过来的数据转换成可以在网线上传输的信号,或者接收网线上传输过来的信号,转换成数字信号回传给 MAC ,分为百兆 PHY 和千兆 PHY
MDIO:用于读写每个 PHY 的控制寄存器和状态寄存器,以达到控制PHY行为和监控 PHY 状态的目的。其有两根线,分别为双向的 MDIO 和单向MDC 。