3. U-boot 移植¶
3.1. U-boot 硬件环境¶
cv184x开发板上的外围处理器包括 DDR、eMMC、SPI NAND
Flash和 SPI NOR Flash,所有型号
请参阅 CV184x_硬件设计用户指南_V1.0
3.2. 管脚配置(Pinmux)¶
针对不同的EVB和不一样的外围装置,可以在cvi_board_init.c做好初始化设定。
$ cat build/boards/cv184x/cv1842hp_wevb_0014a_spinor/u-boot/cvi_board_init.c
int cvi_board_init(void)
{
PINMUX_CONFIG(PAD_MIPIRX1P, IIC1_SDA);
PINMUX_CONFIG(PAD_MIPIRX0N, IIC1_SCL);
PINMUX_CONFIG(PAD_MIPIRX1N, XGPIOC_8);
PINMUX_CONFIG(PAD_MIPIRX0P, CAM_MCLK0);
return 0;
}
3.3. 编译U-boot¶
编译U-boot操作如下:
$ source build/envsetup_soc.sh
$ defconfig cv1842hp_wevb_0014a_spinor
$ clean_uboot && build_uboot
[TARGET] u-boot-dts
......
[TARGET] u-boot-build
......
取得fip_spl.bin和fip.bin(内含bootloader+uboot)
$ ls install/soc_cv1842hp_wevb_0014a_spinor/fip.bin
install/soc_cv1842hp_wevb_0014a_spinor/fip.bin
$ ls install/soc_cv1842hp_wevb_0014a_spinor/fip_spl.bin
install/soc_cv1842hp_wevb_0014a_spinor/fip_spl.bin
U-boot 组态设定
默认EVB 的U-boot组态设定
$ cat build/boards/cv184x/cv1842hp_wevb_0014a_spinor/u-boot/cvitek_cv1842hp_wevb_0014a_spinor_defconfig
CONFIG_ARM=y
CONFIG_SYS_MALLOC_F_LEN=0x100000
CONFIG_NR_DRAM_BANKS=1
CONFIG_DEFAULT_DEVICE_TREE="cv184x_asic"
CONFIG_IDENT_STRING=" cvitek_cv184x"
...
有两种修改defconfig档案的方式,一种是直接修改其defconfig档案文件(不推荐),第二种是使用图形化菜单界面的方式(推荐)。
执行menuconfig_uboot命令,以图形化接口修改U-boot组态设定
退出后会把设定储存在:
u-boot-2021.10/build/cv1842hp_wevb_0014a_spinor/.config
由于原生u-boot编译出u-boot.bin 无法直接刻录到FLASH中。我们采取ARM Trusted Firmware Design中的Firmware Image Package (FIP)方式, 将uboot.bin封装在fip.bin里面,而fip_spl.bin是引导快启过程中加载的镜像的文件。