全志A40i雙網口方案的網路卡軟體問題分析以及排查方向
OKA40i-C開發板的底板雖然只有一個網口,但A40i本身是有兩個網路控制器的,因此在飛凌嵌入式釋出的資料中有雙網口方案。有的工程師小夥伴在開發過程中會遇見一些網路卡的設計問題,今天小編來為大家分析3種常見的網路卡軟體問題以及排查思路。
1
問題分析
問題描述1:
乙太網初始化報錯 No phy found
在執行ifconfig eth0 up命令時,出現"No phy found"異常log。
問題分析:
出現"No phy found",常見原因是供給phy使用的25M時鐘異常,導致phy工作不正常,gmac驅動透過mdio介面也讀不到phy的裝置資訊。
或者MDIO引腳配置不正確或者phy地址不正確,再就是MDIO沒做上拉電阻,GMAC讀取不到phy裝置資訊,用示波器量一下MDIO波形是否正確。
再或是phy晶片復位失敗,需要更換phy晶片復位上拉電阻。
排查步驟:
(1)檢查phy供電是否正常;
(2)檢查phy使用的25M時鐘(Soc ephy25M或外部晶振)是否正常;
(3)檢查phy-mode是否按板級實際情況配置(mii/rmii/rgmii);
(4)檢查MDIO是否有上拉電阻;
(5)檢查MDIO引腳配置是否正確;
(6) eMAC phy地址是否和硬體一致;
(7) 檢查復位上拉電阻是否和原理參考方案一致。
MDIO通訊正常驗證:
使用phytool工具讀取0x02 0x03暫存器 是否正確讀取PHY晶片ID,讀取成功,代表MDIO通訊正常。
問題描述2:
乙太網初始化報錯NO SUCN DEVICE
執行ifconfig -a/ifconfig eth0/ifconfig eth0 up命令,找不到eth0裝置。
問題分析:
乙太網模組配置未生效或存在GPIO衝突。
排查步驟:
步驟1:抓取核心啟動log,搜尋"gmac"關鍵欄位,檢查gmac驅動是否probe成功;
步驟2:若核心啟動log顯示mac控制器probe失敗,常見原因是GPIO資源衝突導致。
解決方法:
GPIO衝突會有報錯資訊,根據報錯資訊,檢視GPIO衝突引腳。
檢視乙太網模組是否配置。
問題描述3:
乙太網初始化報錯Initialize hardware error
執行ifconfig eth0 up命令,出現"Initialize hardware error"異常log。
問題分析:
出現"Initialize hardware error",一般是由於phy沒有輸出RX CLK至MAC控制器,導致MAC控制器內部soft reset失敗,常見原因是phy供電異常或25M時鐘異常;或者是檢查資料引腳的時鐘是否正確,RMILL RX CLK TX CLK 是否是正確時鐘。
排查步驟:
用示波器抓取rx_clk時鐘波形,檢視是否保持25M時鐘穩定,如果出現25M/2.5M 來回跳動。即MAC與phy未link成功。
解決方法:
軟體上可透過在phy復位之後,設定暫存器0 固定為100M全雙工,可link成功。目前可這樣解決問題:
在drivers/net/ethernet/allwinner/sunxi-gmac.c 中 geth_phy_init函式中 phy_connect_direct 之前加入phy_write(phydev, 0x0, 0x2100)。
以上是我們在A40i開發過程中常見網路卡設計問題,有些可能是因為大家在參考方案時出現了配置問題,或者是因為晶片輸出的訊號不正常導致。大家在參考飛凌A40i的雙網口方案時,可以檢視本文章整理的問題點,說不定就是您現在專案中遇見的bug。
接下來,小編將給大家介紹一些常用的網路卡軟體問題對應的排查手段。這些排查手段可以幫助您在除錯phy時有一個基本的除錯思路,提到的一些工具可以幫助您快速定位並且解決網路卡問題。
2
排查手段
(1)檢查menuconfig及dts乙太網配置是否開啟;
(2)檢查phy-mode配置是否與PHY和GMAC之間的物理介面匹配,如rgmii、rmii等;
(3)檢查GPIO配置是否正確,如IO複用功能、驅動能力等;
(4)使用phytool工具讀取phy ID 驗證MDIO是否正確。
如下圖示例,能夠正常讀取JL11x1的phy ID則代表MDIO通訊正常。
使用phytool工具讀取phy 狀態暫存器,檢視phy晶片狀態。以JL11x1為例,如0x01狀態暫存器讀取值為0x786d,說明link成功並且工作正常。
以上就是小編為大家整理的關於A40i雙網口方案的網路卡軟體問題分析以及排查方向。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989353/viewspace-2905923/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全志A40I sys_config.fex使用配置說明,全志A40I軟體開發
- Redis阻塞問題排查方向Redis
- 物聯網路卡常見問題及解決方案
- 全志處理器,全志A40i晶片引數分享晶片
- Linux 雙網路卡雙IP配置Linux
- 聯瑞40G雙光口網路安全網路卡推動構建網路空間命運共同體
- 深度分析Linux下雙網路卡繫結七種模式 多網路卡的7種bond模式原理Linux模式
- RTThread 自動網路卡使用問題thread
- 使用 nsenter 排查容器網路問題
- 如何排查網路問題-開發眼裡的網路
- 【硬體設計風口】RK3399實現雙網口
- OpenHarmony雙網路卡配置例項
- 網路問題排查必備利器:Pingmesh
- 產品升級:聯瑞推出國產化雙口千兆光纖網路卡
- 全網首發:使用安卓MediaCodec Encoder進行編碼時的方向問題安卓
- Vbox 未指定XXX網路名稱 找不到網路卡問題
- 全志A40i開發板編譯環境的搭建編譯
- Oracle 11gR2 RAC 單網路卡轉雙網路卡繫結配置Oracle
- 全志A40i核心板實現高清模擬攝像頭720P方案
- 排查Java的記憶體問題Java記憶體
- 雙網路卡環境下如何內網外網同時用內網
- 選擇物聯網路卡需注意哪些問題
- 故障分析 | 租戶 memstore 記憶體滿問題排查記憶體
- 運維常見軟體問題排查與修復運維
- 如何使用物聯網路卡以及其作用
- 全志A40i/T3如何透過SPI轉CAN
- 請教硬改蝸牛星際c主機板,單網路卡改雙網路卡
- 【Linux伺服器雙IP配置】如何實現不同IP的雙網路卡同時上網?Linux伺服器
- [專題]網路 IO 高階篇:一次有趣的 Docker 網路問題排查原創Docker
- 千兆網路卡與萬兆網路卡的區別在哪?
- A40i如何使用 ADB 除錯工具-國產工業級全志A40i系列乾貨分享除錯
- 批量getshell軟體<全網最全最新exp>
- 分析|什麼是物聯網路卡
- atxserver2 怎麼解決 server 多個網路卡的問題Server
- Redis 大key(bigkey)問題的排查與解決方案Redis
- php無法正常修改網站,如何排查和解決PHP網站修改問題PHP網站
- CentOS7 配置靜態IP 及網路問題排查CentOS
- php的curl選擇其他網路卡的ip來訪問網站PHP網站