BPI-R3开发板 - atf编译

一. 获取源码

        https://github.com/mtk-openwrt/arm-trusted-firmware

二. 编译步骤

        和编译uboot一样,编译环境为ubuntu 18.04。交叉编译工具链我用的是openwrt编译生成的工具链,并设置到环境变量,如下:

export PATH=$PATH:/root/mt8976/BPI-R3-OPENWRT-V21.02.3-main/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_musl/bin

export STAGING_DIR=/root/mt8976/BPI-R3-OPENWRT-V21.02.3-main/staging_dir

        编译的过程,STAGING_DIR可能会导致编译报错,可以去掉。

1. 编译

命令如下:

make -f Makefile \
CROSS_COMPILE=aarch64-openwrt-linux- \
PLAT=mt7986 \
BOOT_DEVICE=nor \
DRAM_USE_DDR4=1 \
BL33=/root/mt8976/u-boot-mtksoc/u-boot-dtb.bin \
all fip V=1

CROSS_COMPILE:选择交叉编译工具

PLAT:表示CPU平台名。可选的是mt7622/mt7981/mt7986。

BOOT_DEVICE:系统从什么存储设备启动。可选的设备如下: 

NAND_TYPE:当BOOT_DEVICE选择的是snand或spim-nand时,此选项才有效。如果不配置此选项,NAND_TYPE将会被配置为默认值。注意:NAND_TYPE必须被配置为开发板上SPI-NAND的正确参数,否则设备将启动失败。可配置的值如下:

DRAM_USE_DDR4:此选项只用于mt7981/mt7986。 

DDR3_FLYBY:此选项只对于mt7622有效。

BL33:指定uboot镜像的路径。

2. 制作镜像

        make完成后,会产生两个文件:bl2.img和fip.bin。路径在arm-trusted-firmware-mtksoc/build/mt7986/release下。将两个文件打包成一个镜像文件,命令如下:

dd if=bl2.img of=spi-nor.img
dd if=fip.bin of=spi-nor.img bs=1k seek=1024

        运行上面两条指令后,内核启动之前需要的程序都打包好了。由于在编译atf的时候指定了uboot的路径,所以,uboot其实已经包含在了fip.bin文件中。至于为什么fip.bin为什么烧写在偏移起始位置,后面文章再说。

三. 总结

        本文介绍了BPI-R3开发板的atf文件的编译过程,主要介绍了编译参数的含义和适用范围。最后介绍了如何制作atf镜像。

猜你喜欢

转载自blog.csdn.net/to_be_better_wen/article/details/129776535
今日推荐