hi3531 SDK 編譯 uboot, 修改PHY地址, 修改 uboot 參數 .
一,編譯uboot
SDK文檔寫得比較清楚了,寫一下需要注意的地方吧.
1. 之前用SDK裏和別人給的已經編譯好的uboot,使用fastboot工具都刷不到板子上.最後自己用SDK裏uboot源碼編譯的則成功刷了進去,不知道具體什麼問題,但是一直沒試試有點不應該了.
2. 文檔中說要用一個Excel表格做配置然後用mkboot.sh將配置文件和uboot.bin文件一起生成最終的uboot,我一直糾結那個Excel不能配置,裏麵的參數也看不懂.誰知道其實不用配影響也不大.
3. 之前用別人的uboot刷到板子上一直提示SPI 不識別,用自己編譯的就可以了,可能我用的是最新的SDK,SPI支持的比較多吧.
二, 修改PHY 地址
板子之前其實就有uboot, 但是網口不通,這是PHY地址設置的問題. 其實到現在我對PHY地址了解的仍然不太多.PHY應該就是網絡OSI模型的物理層(Physical),Hi3531 芯片支持雙網卡,因此有兩個 PHY 地址,PHYADDR0,PHYADDR1, 現在就是要把PHY地址設對,具體原理不太懂,反正就一個個的試吧.網友給了好多幫助,下麵是一位網友從海思那邊得到的郵件回複內容.
1. 內核下的方法:
在osdvr/kernel/linux -3.0.y目錄下運行
“make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfig”
在 menuconfig 菜單下, 選擇以下選項:
Device Drivers --->
[*] Network device support --->
[*] Ethernet (1000 Mbit) --->
<M> STMicroelectronics 10/100/1000 Ethernet driver --->
(1) STMMAC MAC #0 PHY ID << 表示 phy 地址是 1.
(2) STMMAC MAC #1 PHY ID << 表示 phy 地址是 2.
2. u-boot 代碼中, 修改方法如下:
u-boot代碼中,修改 “include\configs\godnet.h” 文件:
#define CONFIG_NET_STMMAC
#define CONFIG_TNK
#ifdef CONFIG_NET_STMMAC
#define STMMAC_GMACADDR (0x101c0000)
#define STMMAC_DMAADDR (0x101c1000)
#define STMMAC_IOSIZE (0x10000)
#define STMMAC_FRQDIV (0)
#define STMMAC_PHYADDR0 (1) << 表示 phy 地址是 1.
#define STMMAC_PHYADDR1 (2) << 表示 phy 地址是 2.
#define STMMAC_PHYNAME "0:01"
#define STMMAC_RGMII
#define CONFIG_PHY_GIGE
#endif /* CONFIG_NET_STMMAC */
具體我沒試過哦!這個是海思給我的
在osdvr/kernel/linux -3.0.y目錄下運行
“make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfig”
在 menuconfig 菜單下, 選擇以下選項:
Device Drivers --->
[*] Network device support --->
[*] Ethernet (1000 Mbit) --->
<M> STMicroelectronics 10/100/1000 Ethernet driver --->
(1) STMMAC MAC #0 PHY ID << 表示 phy 地址是 1.
(2) STMMAC MAC #1 PHY ID << 表示 phy 地址是 2.
2. u-boot 代碼中, 修改方法如下:
u-boot代碼中,修改 “include\configs\godnet.h” 文件:
#define CONFIG_NET_STMMAC
#define CONFIG_TNK
#ifdef CONFIG_NET_STMMAC
#define STMMAC_GMACADDR (0x101c0000)
#define STMMAC_DMAADDR (0x101c1000)
#define STMMAC_IOSIZE (0x10000)
#define STMMAC_FRQDIV (0)
#define STMMAC_PHYADDR0 (1) << 表示 phy 地址是 1.
#define STMMAC_PHYADDR1 (2) << 表示 phy 地址是 2.
#define STMMAC_PHYNAME "0:01"
#define STMMAC_RGMII
#define CONFIG_PHY_GIGE
#endif /* CONFIG_NET_STMMAC */
具體我沒試過哦!這個是海思給我的
看了這個至少能定位到uboot修改的位置了,但一開始一直在改下 邊 0:01 類似
最後更新:2017-04-03 07:57:08