天天看點

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 */

具體我沒試過哦!這個是海思給我的

  看了這個至少能定位到uboot修改的位置了,但一開始一直在改下 邊 0:01 類似