一、硬體簡單確認:
1、確認rgmii模式(hi3559a支援rgmii/rmii)
2、phy的位址phy_addr
3、phy是否有延時電阻(rtl8211有)
4、phy晶振時鐘
5、速率1000m clk 125m,100m clk 25m
二、軟體確認
1、uboot涉及驅動:drivers/net/higmacv300,phy配置驅動:drivers/net/phy/realtek.c
2、先看mdio能否掃瞄到phy,讀出的phy id要和phy datasheet一致;同時,讀出phyid的addr需要和上面硬體的phy_add一致
3、如果第二步是正確的,那麼說明mdio介面和phy已經工作;接下來要檢查rgmii介面
4、將板子和筆記本直連:gmac<—>phy<—>pc
板子ping pc 以及pc ping板子,然後讀gmac和phy的暫存器(讀gmac要自己寫,讀phy有個mii命令)
可以檢視gmac收發了多少資料,phy收發了多少資料,從而判斷是gmac發給phy異常還是phy發給pc異常,或gmac接收異常還是phy接收異常
5、到這一步還是不行,就需要自己寫回環測試**:
乙個是gmac回環:mac_if_stat_ctrl暫存器
第二個phy回環:bmcr暫存器
6、uboot遇到時通時不通時,將uboot強製成100m速率試試
使用AXD除錯u boot
用ads axd debugger 實現u boot的源 級除錯 c語言級 如果板子沒有網口,在除錯u boot和uclinux時就沒法用gdb除錯。這時只能利用串列埠和jtag口進行除錯,linux下可以用bdi這個玩意除錯,可是bdi非常昂貴,不適合大眾需求。我總結了下,根據我的除錯經驗,可以用...
使用QEMU除錯u boot
參考 qemu uboot kernel nfs檔案系統 qemu system arm vexpress a9踩坑記 u boot 分析 2 在qemu環境下的除錯 1.安裝交叉編譯和除錯工具 sudo apt get install gcc arm linux gnueabi sudo apt ...
除錯U Boot筆記(二)
大概的思路就是用axd來除錯u boot,方法很簡單。在linux下編譯u boot的目錄除了生成u boot.bin檔案,還有乙個u boot檔案。將u boot,u boot.bin這兩個檔案複製到windows下的乙個目錄下,如 e u boot gdb。然後將 u boot 重新命名為 u ...