ZHCAES5 July 2024 DP83822H , DP83822HF , DP83822I , DP83822IF , DP83826E , DP83826I , DP83848-EP , DP83848Q-Q1 , DP83867CR , DP83867CS , DP83867E , DP83867IR , DP83867IS , DP83TC812R-Q1 , DP83TC812S-Q1 , DP83TC813R-Q1 , DP83TC813S-Q1 , DP83TC814R-Q1 , DP83TC814S-Q1 , DP83TG720R-Q1 , DP83TG720S-Q1 , DP83TG721R-Q1 , DP83TG721S-Q1
dmesg 是一個 Linux 命令,顯示寫入內(nèi)核的消息。| 符號叫做 pipe 命令,它將一條命令的輸出直接連接至另一個命令的輸入。grep 是用于查找字符串的 Linux 命令,-i 參數(shù)忽略字符串的大小寫??傊?strong class="ph b">dmesg | grep -i mdio 會查找所有寫入內(nèi)核的消息并篩選出包含 mdio 的消息。MDIO 接口是處理器訪問 PHY 寄存器的方式。
該命令的目的是,確認驅(qū)動程序是否正確加載,或者從軟件角度提供有關(guān) PHY 行為錯誤起因的幾條調(diào)試線索。
不良輸出示例:
davinci_mdio c000f00.mdio: phy[10]: device c000f00.mdio:0a, MDIO device at address 10 is missing.
該消息指示未在 MDIO 總線上找到 PHY,這可能是由多個問題引起的。最常見的原因是器件樹缺失或不正確(更多信息參閱節(jié) 3.1),但也可能是因為 PHY 無法正常工作或 MDIO 連接不良。
一旦可以在 MDIO 總線上檢測到 PHY,另一個常見的錯誤消息是:
am65-cpsw-nuss c000000.ethernet eth1: PHY [c000f00.mdio:0a] driver [Generic PHY] (irq=POLL)
davinci_mdio c000f00.mdio: phy[10]: device c000f00.mdio:0a, driver unknown
驅(qū)動程序未知 和通用 PHY 消息均指示驅(qū)動程序文件未正確加載、未編譯或完全丟失;Linux 加載的通用驅(qū)動程序無法配合 PHY 正常運行。在這種情況下,請驗證驅(qū)動程序是否已成功編譯并添加到 Linux。更多有關(guān)該過程的信息,請參閱節(jié) 3.2。
最后,良好輸出示例如下所示:
root@j7-evm:~# dmesg | grep mdio
davinci_mdio 46000f00.mdio: phy[0]: device 46000f00.mdio:00, driver TI DP83867
am65-cpsw-nuss 46000000.ethernet eth0: PHY [46000f00.mdio:00] driver [TI DP83867] (irq=POLL)
在此處我們可以看到,phy[0] 識別為 DP83867 并分配為端口 eth0