海思Hi3519AV100配置uboot百兆网模式
“ 海思hi3519av100的uboot默认的phy模式是rgmii的千兆网模式,在自己的开发环境中,需要rmii的百兆网模式才能进行kernel的烧录等后续系列操作。”
一、编译方式一
# 第一次编译必须先生存 .config 文件才行
# 可根据需要修改 menuconfig 来配置选项
# 执行编译命令,生成 u-boot.bin ,注意,u-boot.bin 并不是可以进行烧录的正确的 uboot 文件,还需要使用 mkboot.sh 脚本来进一步生成真正的可烧录文件
# 关于 DDR 的配置在 reg_info.bin 配置文件中,需要使用正确的 .xlsm 文件来生成,否则会烧录失败,提示 发送帧失败 等错误
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11# pwd
/root/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11# make ARCH=arm CROSS_COMPILE=arm-himix200-linux- hi3519av100_defconfig
#
# configuration written to .config
#
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11# make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
HOSTCC scripts/kconfig/mconf.o
HOSTCC scripts/kconfig/lxdialog/checklist.o
HOSTCC scripts/kconfig/lxdialog/util.o
HOSTCC scripts/kconfig/lxdialog/inputbox.o
HOSTCC scripts/kconfig/lxdialog/textbox.o
HOSTCC scripts/kconfig/lxdialog/yesno.o
HOSTCC scripts/kconfig/lxdialog/menubox.o
HOSTLD scripts/kconfig/mconf
scripts/kconfig/mconf Kconfig
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11# make ARCH=arm CROSS_COMPILE=arm-himix200-linux-
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config.h
UPD include/config.h
CFG u-boot.cfg
GEN include/autoconf.mk
...
...
...
LD test/built-in.o
CC test/dm/cmd_dm.o
LD test/dm/built-in.o
CC examples/standalone/stubs.o
LD examples/standalone/libstubs.o
CC examples/standalone/hello_world.o
LD examples/standalone/hello_world
OBJCOPY examples/standalone/hello_world.srec
OBJCOPY examples/standalone/hello_world.bin
LDS u-boot.lds
LD u-boot
OBJCOPY u-boot.srec
OBJCOPY u-boot-nodtb.bin
COPY u-boot.bin
SYM u-boot.sym
./scripts/check-config.sh u-boot.cfg \
./scripts/config_whitelist.txt . 1>&2
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11#
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11# ls
Kbuild MAINTAINERS System.map board config.mk doc examples lib product test u-boot-nodtb.bin u-boot.cfg.configs u-boot.srec
Kconfig Makefile api cmd configs drivers fs net scripts tools u-boot.bin u-boot.lds u-boot.sym
Licenses README arch common disk dts include post snapshot.commit u-boot u-boot.cfg u-boot.map
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11# cp u-boot.bin ../../../tools/pc/uboot_tools/
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11# cd ../../../tools/pc/uboot_tools/
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/tools/pc/uboot_tools# ./mkboot.sh reg_info.bin u-boot.real.bin
64+0 records in
64+0 records out
64 bytes copied, 0.000127011 s, 504 kB/s
0+1 records in
1+0 records out
8192 bytes (8.2 kB, 8.0 KiB) copied, 4.1688e-05 s, 197 MB/s
622412+0 records in
622412+0 records out
622412 bytes (622 kB, 608 KiB) copied, 1.0527 s, 591 kB/s
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/tools/pc/uboot_tools# ls -l u-boot.real.bin
-rw-r--r-- 1 root root 630668 Mar 13 13:33 u-boot.real.bin
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/tools/pc/uboot_tools#
root@wzy-VirtualBox:~/hisiSDK/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/tools/pc/uboot_tools#
具体指引详见海思SDK开发包里面的《Hi3519AV100╱Hi3556AV100 U-boot 移植应用开发指南.pdf》
二、编译方式二
还有一种不使用 mkboot.sh 脚本来生成真正可烧录 uboot 的方法。
# Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/uboot/u-boot-2016.11
make ARCH=arm CROSS_COMPILE=arm-himix200-linux-
cp ../../../tools/pc/uboot_tools/reg_info.bin .reg
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin
此方法生成的文件默认名字为 u-boot-hi3519av100.bin
# 具体细节可以查看当前目录的 Makefile
# 和
# u-boot-2016.11/arch/arm/cpu/armv7/hi3519av100/hw_compressed/ 目录的 Makefile
三、修改代码
一、修改 ./include/configs/hi3519av100.h ,确认 phy 地址和模式
/*Network configuration*/
#define CONFIG_PHY_GIGE
#ifdef CONFIG_NET_HIGMACV300
#define CONFIG_GMAC_NUMS 1
#define CONFIG_HIGMAC_PHY0_ADDR 1
#define CONFIG_HIGMAC_PHY0_INTERFACE_MODE 1 /* rgmii 2, rmii 1*/
#define CONFIG_HIGMAC_DESC_4_WORD
#define CONFIG_SYS_FAULT_ECHO_LINK_DOWN 1
#endif
二、修改寄存器配置文件 Hi3519AV100-DMEB_ONLY_1V8_8L_T-DDR4_2664M_2GB_16bitx2-A53_1500M.xlsm 。
注意,可能有多个寄存器配置xlsm文件,不要修改错了。
将 0x71 改为 0x72 , RMII_CLK
然后生成新的配置文件 reg_info.bin ,重新编译 uboot
四、烧录uboot
# 烧录
“ 到此为止,理论上 uboot 下的网口应该就通了。但是,骚操作来了。此时我的网口并不通,查了一下网口芯片手册,发现我们用的网口芯片是 8211f ,这个网口芯片,额,怎么说呢,就是只支持 rgmii ,不支持 rmii 模式。之前已经测试过,在 rgmii 模式下的千兆,网络仍然不通,所以只能是 rgmii 下的百兆可以通。注意, rmii 下的百兆和 rgmii 下的百兆是不一样的,所以,上面改的 uboot需要全部改回去,重新把 uboot 改为 rgmii 下的百兆就好了”
下面是调试过程。
五、配置8211F网口芯片rgmii下的百兆
# 首先使用 uboot 的 mii 命令来调试,先看一下用法
hisilicon # mii -h
mii - MII utility commands
Usage:
mii device - list available devices
mii device <devname> - set current device
mii info <addr> - display MII PHY info
mii read <addr> <reg> - read MII PHY <addr> register <reg>
mii write <addr> <reg> <data> - write MII PHY <addr> register <reg>
mii modify <addr> <reg> <data> <mask> - modify MII PHY <addr> register <reg>
updating bits identified in <mask>
mii dump <addr> <reg> - pretty-print <addr> <reg> (0-5 only)
Addr and/or reg may be ranges, e.g. 2-7.
hisilicon #
这里稍微解释一下, addr 指的是 phy 的地址,我这里 phy 地址是 1 ,所以 addr 是 1 ; reg 就是芯片的寄存器地址,具体可查阅芯片手册,我这里用的是 BMCR 寄存器的地址,为 0 ;data 是需要写入寄存器的值。
# 示例1
# 示例二
此时,使用 mii write 命令来设置好 BMCR 寄存器后,发现仍然 ping 不通,经过检查发现,代码在执行 ping 的时候,代码里面会把 BMCR 寄存器复位一下,所以用 mii 设置的数值根本没有生效,所以只能来修改代码。但是代码有个 ld->initalized 的 flag 来控制只执行一次,很奇怪。由于时间关系,没做深究。代码修改如下:
# 设置寄存器(默认值为 0x1040)。建议 miiphy_reset 函数也要设置一下
hisilicon # mii write 1 0 0x2100
hisilicon #
# 修改宏定义,去掉千兆定义
# 至此,重新编译烧录后就可以愉快的 ping 了
- 分享
- 举报
-
浏览量:1115次2023-10-12 14:25:01
-
2020-08-10 09:21:07
-
浏览量:2500次2021-12-10 16:36:33
-
浏览量:2688次2020-08-04 20:30:30
-
浏览量:1770次2024-01-08 17:24:15
-
浏览量:888次2024-01-08 18:13:05
-
浏览量:2241次2020-08-05 21:02:35
-
浏览量:2526次2021-12-03 17:42:05
-
浏览量:3365次2019-12-28 10:19:54
-
浏览量:773次2024-01-10 14:28:04
-
浏览量:7484次2020-09-06 16:25:23
-
浏览量:1202次2024-01-06 10:33:06
-
浏览量:4781次2020-08-14 11:29:53
-
浏览量:905次2023-10-25 15:43:39
-
浏览量:10609次2020-08-03 14:27:03
-
浏览量:10861次2022-08-12 15:15:09
-
浏览量:5737次2017-11-21 13:45:07
-
浏览量:3687次2022-01-04 09:00:18
-
浏览量:4756次2020-08-30 08:25:06
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
不会编程的老王
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明