Uboot 的制作(RMII 网络)
注意:
1.解压 Hi3516AV100 最新 SDK 版本 1.0.6.0;
# Hi3516A_SDK_V1.0.6.0.tgz
2.安装 Hi3516AV100 环境;(进入步骤 1 解压出来的目录)
#./sdk.unpack
3.安装交叉编译环境;(已安装服务器可略过)
#cd Hi3516A_SDK_V1.0.6.0/osdrv/opensource/toolchain/arm-hisiv300-linux
#./cross.install.v300
一、进入 uboot 源码目录,解压 uboot 压缩文件到当前目录并重命名为 u-boot-2010-06-rmii;
#cd ~/work/SDK_HI3516AV100/Hi3516A_SDK_V1.0.6.0/osdrv/opensource/uboot/
#tar zxvf u-boot-2010.06.tgz
#mv u-boot-2010.06 u-boot-2010-06-rmii
二、进入解压出来的 uboot 源码目录,并生成配置文件(hi3516a_config)
#cd u-boot-2010-06-rmii
# make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- hi3516a_config
三、修改 include/configs/hi3516a.h 头文件:
#vim include/configs/hi3516a.h
1) 配置分区及启动参数
sf probe 0;sf read 0x82000000 0x80000 0x300000;bootm 0x82000000
mem=80M console=ttyAMA0,115200 mtdparts=hi_sfc:512K(boot),3M(kernel),11M(app),1M(app_ext),512K(param)
以下分别是修改之前和修改之后的截图:
2) 配置网络
以下分别是修改之前和修改之后的截图:
3) 配置 uboot 程序空间和环境参数空间大小
以下分别是修改之前和修改之后的截图:
#vim product/env_setup.h
4) 修改对应的 spi flash 驱动代码:
#vim drivers/mtd/spi/hisfc350/hisfc350_spi_ids.c
A:支持 MX25L12835F
B:支持 GD25Q127C
四、编译生成 uboot 镜像,完成后将在当前目录生成 u-boot 和 u-boot.bin,我们需要的是
u-boot.bin
#make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-
以上所生成的 u-boot.bin 就是可以接使用的 uboot 镜像;
补充说明以下几点:
一、flash 分区在 uboot 的配置中直接进行分区,不需要到内核中的源码中进行分区或在编译
内核时在 cmdline 命令行选项上进行分区(内核编译时,此选项为空不写任何内容)
二、RMII 网络,此 uboot 已经默认是 RGMII 网络,如果实际硬件板子用的是 RMII 网络时,
需要到 include/configs/hi3516a.h 这个文件修改配置具体修改项如下:
三、如果硬件板子有寄存器需要重新设置的(Hi3516A 需要重新配置 DDR 和网络),请按
如下操作步骤操作:
(1)在 windows 操作系统中进入 SDK 中的 uboot_tools 目录
(2)用 Microsoft Execl 打开(WPS 打开是不行的)
修改相应内容:
1. DDR 修改配置
A: 在 mddrc_dmc1 页,设置为 16bit 位宽,地址和相应 bit 位:0x2011_1050【 5:4】,
见 datasheet;
0x26 修改为->0x16.
B: 在 mddrc_dmc2 页,修改配置 AXI_CONFIG【 3:0】: 0xb,设置为 2k bank 位宽;
0x2000C 修改为->0x2000b.
C: 在 mddrc_phy 页,屏蔽高 16 位的写数据。
0x0 修改为->0x3.
0x0 修改为->0x3.
D: mddrc_dmc1 页面
0x142 修改为->0x132.
E: mddrc_dmc1 页面 : 0x4126804c -------> 0x41268028
【 7:0】进行修改:我们的 uboot 默认发布 DDRC 总线 250M: 160/4 = 40 =0x28
F: mddrc_phy 页面 : 0x089726c4 -------> 0x085026c4
【 24:16】进行修改:修改为 160/2 = 80 = 0x50;
2.网络配置
A: muxctrl_reg 页面 : 0x1 -------> 0x2
muxctrl_reg93 进行修改
修改完相应设置后,保存一下,切换到 main 页面,点击 Generate reg bin file 按钮,执行之
后,在 uboot_tools 目录下生成 reg_info.bin 文件
(3)生成 u-boot.bin 镜像:
在 Linux 环境界面下,将原来生成的 u-boot.bin 拷贝到此目录下,需要使用的文件有
mkboot.sh
reg_info.bin
u-boot.bin
执行 ./mkboot.sh reg_info.bin u-boot-hi3516a.bin
生成 u-boot.bin 查看更新时间,确保是新生成的