Xavier 平台上的88E1512 PHY芯片,88E1512芯片寄存器手册描述比较详细。
先了解下基本概念:
千兆以太网的物理层
千兆以太网的物理层分为物理编码子层PCS(Physical Coding Sublayer)、物理介质连接子层PMA(Physical Medium Attachment)和物理介质相关子层PMD(Physical Medium Dependent)三层,如下图所示:
其中PCS子层负责8b10b编码,它可以把从GMII口接收到的8位并行的数据转换成10位并行的数据输出。因为10比特的数据能有效地减小直流分量,降低误码率,另外采用8b10b编码便于在数据中提取时钟和进行首发同步。可以把PCS两头看成GMII接口和TBI接口。
PMA子层进一步将PCS子层的编码结果向各种物理媒体传送,主要是负责完成串并转换。PCS层以125M的速率并行传送10位代码到PMA层,由PMA层转换为1.25Gbps的串行数据流进行发送,以便实际能得到1Gbps的千兆以太网传送速率。可以把PMA子层的两头分别看做TBI接口和SGMII接口。
PMD子层将对各种实际的物理媒体完成接口,完成真正的物理连接。由于1000BASE-X支持多种物理媒介,如光纤和屏蔽双绞线,它们的物理接口显然不会相同。有的要进行光电转换,有的要完成从不平衡到平衡的转换。PMD层将对这些具体的连接器作出规定。
88E1512的四种loopback模式
1.System Interface Loopback
2.Synchronous SERDES Loopback
3.Line Loopback
4.External Loopback
先来使用System Interface Loopback,比较简单直接配置 0_0.14 = 1
我使用开源phytool工具配置BMCR 的bit14 GitHub - wkz/phytool: Linux MDIO register accesshttps://github.com/wkz/phytool这款工具同时支持C45和C42协议
先使用ethtool查看下当前状态:
读取phy当前寄存器的值
设置成loopback模式
Loopback speed is determined by Registers 21_2.{6,13} |