hi3531 uboot phy除錯總結

2021-08-12 00:14:45 字數 1565 閱讀 5877

首先除錯檢查硬體,再除錯軟體

首先仔細閱讀phy和主晶元datesheet ,尤其著重閱讀mii暫存器,它是mac和phy交換資訊的媒介。

硬體注意:關於phy的晶元需要注意的有幾點:1、mdio介面和rgmii或者mii介面是否正確。2、電源是否穩定,晶振是否起振並且頻率匹配。3、phy位址的配置是否正確,不能是0位址,因為0位址預設是所以晶元的位址。4、phy晶元輸出時鐘是否正確。4、phy和主晶元rgmii介面電平是否匹配。5、phy間的線序是否正確以及線路是否完好。6、mac和phy間的資料速率是否匹配即都是千兆百兆或10兆。

關於主晶元mac部分介面注意:1、rgmii或者mii以及mdio介面是否正確。2、mdio時序是否正確。3、rgmii時鐘是否正確。

需要了解自協商過程以及mac->phy->phy->mac中間的連線,如果有乙個斷了就不能正確通訊,因此首先得確保每段連線的介面物理和時序是正確的:對於phy間就是自協商成功,對於mac和phy間就是rgmii的時序正確即確保都是相同的資料速率(千兆百兆或10兆)。

mii暫存器解讀:status register 0x01以及extended status register 0x0f是用來顯示phy自身能力以及當前狀態的暫存器,因此有些值是預設的不能修改的,link partner ability register 0x05是用來顯示連線夥伴能力的暫存器,而最終的協商結果是在control register 0x00的6、13 speed selection和8 duplex mode位中的,因此程式中讀取phy連線速度時應該讀取該暫存器的值,而不是自身能力暫存器的值。海思的uboot中就出現了該錯誤。

注意mdio介面是主從介面可以一拖多,所以位址尤為重要,00位址是廣播位址,不能使用該位址,uboot mii命令的使用,其可以驅動mdio介面,可以用此來除錯phy晶元暫存器!!關於其應用可以在common/cmd_mii.c 檔案結尾出看到,或者此博文中

關於rgmii時序問題,rgmii的傳送和接收時鐘一直是125mhz,不過在100m和10m模式時,資料的取樣頻率會延遲一些時鐘,因此在mac端的資料要保持一些時鐘,否則時序會出錯!!

關於phy晶元的配置,正常情況下phy暫存器因為是mii標準暫存器,所以用原廠自帶uboot配置就可以,除非自己除錯phy晶元自帶的功能,才配置其特殊功能暫存器,比如回環測試等。

在除錯ar8031時可以通過loopback來測試環路是否通,有本地回環測試和遠端回環測試,這樣分別檢查本地和遠端迴路是否聯通,這樣很容易發現哪邊不通,具體看ar8031手冊2.5.2,來通過mii配置暫存器。100m loopback: register 0x0 = 0xa100是錯誤的應該是6100。

本地回環測試就是ping自己的ip位址,這樣資料就會接收回來。

遠端回環測試

軟體方面注意:需要分兩部分來除錯:1、phy晶元mii標準暫存器的配置以及phy工作原理,以及主晶元mac部分的暫存器配置和時鐘配置是否正確,phy介面配置正確,mdio部分配置是否正確。

2、詳細了解uboot下mac和phy驅動架構。3、在uboot**中跟蹤除錯。

下面介紹uboot-2010.06中hi3531的mac phy驅動架構以及工作流程。

未完待續。。。。

hi3531的pcie atu資源重對映

1.設定atu 區域號暫存器為需要配置的位址轉換區編號。2.設定atu region lower base address register 和atu region upper base address register。在此區域內的目標位址將由區域號暫存器所在的atu 轉換 3.設定atu reg...

hi3531晶元的標識暫存器

晶元的標識暫存器 0xee0 0xee4 0xee8 0xeec 基址是0x2005 0000 系統控制器提供了晶元標識 id 暫存器sc sysid。這個標識暫存器是乙個概念上 的32bit 的標識唯讀暫存器,實際上由4 個8bit 標識暫存器組成 sc sysid3 sc sysid2 sc s...

HI3531的DDR3配置流程

ddr3 初始化配置流程 系統上電之後,必須先完成ddr3 sdram 的初始化操作,系統才能訪問ddr3 sdram。在進行初始化之前需要注意以下幾點 對ddr3 sdram 進行上電操作時,需要遵循jedec 標準。即先提供vdd,然 後提供vddq,最後提供vref 和vtt。該初始化過程需要...