文章目录
- 1.MII:ISO网络模型中物理层(phy)和数据链路层(mac)属于硬件,其余都属于软件kernel
- 2.MDC/MDIO:不仅管phy,只要支持mdio协议都可以管
- 2.1
- 3.RGMII时序调整:下面波形图都是测的bmc rx
- 4.NCSI:
1.MII:ISO网络模型中物理层(phy)和数据链路层(mac)属于硬件,其余都属于软件kernel
SOC内部没有网络MAC外设:缺:网络效率不高。
SOC内部集成网络MAC外设:MII/RMII
接口用来传输网络数据。MDIO
(读写PHY内部寄存器)类似IIC两根线:一根数据线叫做MDIO(management data input/output,双向,不像MII那些串口单向有TX/RX),一根时钟线叫做MDC(clock,由bmc mac端驱动给出)。优:SOC内置DMA加速,支持10/100/1000M网速。
AST2600配置寄存器选择RMII还是RGMII
如上4个mac配置好RMII和RGMII后,如下通过MAC控制器下的50寄存器控制速率,实质是控制时钟频率。
2.MDC/MDIO:不仅管phy,只要支持mdio协议都可以管
如下ast2500-mdio时序
:时序由bmc端和phy端驱动实现,上面采集数据时间在下面范围内才有效,ast2500芯片限制。
如下ast2500-mdio协议
:如下分为22和45两种规则,默认22。
如下ast2500-mdio寄存器
:基地址0x1e680000,第26bit为1就是读。如果mdio/mdc线直接连到了switch上,需配置0:5,
如下第一行就是写入芯片和寄存器地址等。
如上读出0x11400000后去除0-15bit即变为0x1140。
如下对应00寄存器第6位和13位:1 0 ,所以当前phy工作在1000兆自适应全双工模式。
如上方法繁琐,如下uboot提供modio tool。
2.1
如下BMC速率适配:phy和switch同步速率不用管,只管phy和mac。
如下如果上面什么都识别不到走deflaut,speed = 1000写死(没有phy和rj45),
如下phy led控制:根据灯确认有没有数据一直在传输和速率。led0是有数据传输时闪烁,led1(10、100兆)和led2(1000兆)匹配到速率后常亮。
3.RGMII时序调整:下面波形图都是测的bmc rx
phy芯片支持边缘和中间对齐,但是如下bmc芯片中:rgmii千兆时钟是125MHZ,时钟周期是1/125=8ns。
如下边缘对齐:bmc rx和clock时序相位重合,黄色下降和上升沿不在
红色数据段。
如下中央对齐:黄色下降和上升沿在
红色数据段,所以不满足bmc rx边缘对齐,bmc rx数据采样受到clk线影响,丢包,需要调相位。
如下bmc芯片提供寄存器写入 0x0-0x1f 进行相位调节。
uboot有mactest工具,关闭WDT2,原理如下,发500个包,收到499个,说明丢包,验证通路,也会压力测试tx和rx时序。