stm32mp157工作有两种模式:普通模式/安全可靠模式
1.新建工作目录
mkdir -p /home/work/stm32mp157
2.获取ST官方源码有以下文件
- v2018.11.tar.gz
- 000*.patch
- Makefile.sdk
3.解压uboot源码,并打补丁
$> tar xfz v2018.11.tar.gz
$> cd u-boot-2018.11
$> for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
4.编译,在源文件外面目录进行编译,便于管理输出代码(信任模式)
1)在uboot同级目录新建一个build目录
mkdir build
2)创建一个编译输出目录
export KBUILD_OUTPUT=../build
3)先配置相对应的板子
#>make stm32mp15_trusted_defconfig
4)然后根据设备树编译相对应的板子
#> make DEVICE_TREE=stm32mp157c-dk2 all
出错报告:我用export创建build文件夹的时候,总是出现please run 'make mrproper',然后make mrproper之后发现还是提示此错误
原因:因为我执行这个命令会进入../build目录清除上次的编译结果,但是uboot树目录中却没有清理,然后再此目录树下执行make mrproper或者make distclean就可以了。
也可以这样编译
1)make O="../build" stm32mp15_trusted_defconfig
2) make O="../build" DEVICE_TREE=stm32mp157c-dk2 all
3)make distclean清除上一次的编译结果
4)输出文件(安全可靠模式)
u-boot.stm32 应该拷贝到第三分区SSBL
tf-a.stm32 (provided by TF-A compilation) 拷贝到第一分区FSBL
5.普通模式编译
1)uboot同级目录新建一个普遍编译输出目录
mkdir basic
2)配置模式:make O=“../basic” stm32mp15_basic_defconfig
3)编译模式:make O="../basic/" DEVICE_TREE=stm32mp157c-dk2 all
4)进入basic目录
cd ../basic
5)输出文件
>spl/u-boot-spl.stm32: spl目录下的u-boot-spl.stm32 需要拷贝到磁盘第一、二分区作为FSBL第一阶段启动文件,需要拷贝2此
> u-boot.img: 此文件需要拷贝到第三分区作为SSBL第二阶段启动文件
普通模式只需把“trusted” 改成“basic”就可以