Zynq&ZU+ Mpsoc的以太網使用普遍,從功能大致分為2類應用:調試管理、數據傳輸。本文主要集中在PS端的Ethernet RGMII外接phy設計和調試,該部分客戶用的最多也最容易出問題,希望通過本文對基于RGMII+phy的典型應用快速入門,解決問題。
1. 以太網接口介紹
以太網接口包含管理、數據通信接口,管理接口也就是我們常說的MDC/MDIO,用來訪問phy寄存器,配置工作模式、檢測工作狀態。數據接口:常見的有MII, GMII, RGMII,SGMII, QSGMII等,我們本次專注在RGMII。
TX/RX data between MAC & PHY
2. MDC/MDIO接口
幀格式: CL22(GE), CL45(XE);
Phy地址: 訪問外部哪顆phy;
MDC clock頻率: 不超過2.5 MHz (defined by the IEEE802.3);
3. RGMII接口
硬件設計Tips:
RGMII規范中約定data和clock之間需要有2ns延遲,實現方式:
B. PCB(data/clock等長處理)+PHY芯片上分別設置TX/RX delay(現在phy基本上均支持,使用前請查看phy手冊確認);
RGMII規范約定:
帶有internal delay的phy/mac:
4. 軟件開發Tips
Linux如何配置phy地址&phy delay,以ZCU102為例,GEM3 phy address=0xC,采用phy internal tx/rx delay,在設備樹system-usr.dsti中添加phy地址和delay(有的phy硬件配置好,無需額外添加)。
5. 調試Tips
在uboot下通過mii命令查看phy的link/AN/Speed狀態,或者配置loopback測試。
常用命令有mii info、mii dump、miiwrite等等。
通過mii info可以查看MDC/MDIO總線下掛載了哪些phy address。
ZynqMP》 mii info
PHY0x07: OUI = 0x5043, Model = 0x21, Rev = 0x00, 1000baseX, FDX
PHY0x0C: OUI = 0x5043, Model = 0x21, Rev = 0x00, 1000baseX, FDX
ZynqMP》
ZynqMP》mii device
MIIdevices: ‘eth0’
Currentdevice: ‘eth0’
通過mii dump可以查看phy的狀態,可讀性好。
ZynqMP》 mii dump 7 0
0. (1140) -- PHY control register --
(8000:0000) 0.15 = 0 reset
(4000:0000) 0.14 = 0 loopback
(2040:0040) 0. 6,13 = b10 speed selection = 1000 Mbps
(1000:1000) 0.12 = 1 A/N enable
(0800:0000) 0.11 = 0 power-down
(0400:0000) 0.10 = 0 isolate
(0200:0000) 0. 9 = 0 restart A/N
(0100:0100) 0. 8 = 1 duplex = full
(0080:0000) 0. 7 = 0 collision test enable
(003f:0000) 0. 5- 0 = 0 (reserved)
6. 常見問題及解決方法
Q1:PHY無法訪問?
A1:查看原理圖MDIO是否有上拉、phy address是否正確、降低MDC clock測試。
Q2:能link但是ping不通?
A2:PC防火墻是否關閉,包含windows自帶的防火墻?設備ip和pcip地址是否配置正確?如果以上均已操作正確,重點檢查RGMII PHY的TX/RX delay配置。
審核編輯:郭婷
-
以太網
+關注
關注
40文章
5449瀏覽量
172175 -
寄存器
+關注
關注
31文章
5359瀏覽量
120795
發布評論請先 登錄
相關推薦
評論