一,編譯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 */
具體我沒試過哦!這個是海思給我的
看了這個至少能定位到uboot修改的位置了,但一開始一直在改下 邊 0:01 類似