天天看点

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 类似