Linux|Linux系统移植篇1:STM32MP1微处理器之源码编译( 三 )



将fsmp1a-trusted-firmware-2.2.tar.xz解压之后得到fsmp1a-trusted-firmware-2.2文件夹
linux@ubuntu:$ tar -xvf fsmp1a-trusted-firmware-2.2.tar.xz

loptee_os源码
将光盘资料中【华清远见-FS-MP1A开发资料\\02-程序源码\\05-预装系统源码\\optee】下的fsmp1a-optee_os-3.9.0.tar.xz和Makefile.sdk导入到fs-mp1a目录下optee-os文件夹中

将fsmp1a-optee_os-3.9.0.tar.xz解压之后得到fsmp1a-optee_os-3.9.0文件夹
linux@ubuntu:$ tar -xvf fsmp1a-optee_os-3.9.0.tar.xz

llinux源码
盘资料中【华清远见-FS-MP1A开发资料\\02-程序源码\\05-预装系统源码\\linux】下的fsmp1a-linux-5.4.31.tar.xz导入到fs-mp1a目录下linux文件夹中

将fsmp1a-linux-5.4.31.tar.xz解压之后得到fsmp1a-linux-5.4.31文件夹
linux@ubuntu:$ tar -xvf fsmp1a-linux-5.4.31.tar.xz

lYocto源码
盘资料中【华清远见-FS-MP1A开发资料\\02-程序源码\\05-预装系统源码\\Yocto】下的fsmp1a-ST-Yocto.tar.xz导入到fs-mp1a目录下

将fsmp1a-ST-Yocto.tar.xz解压之后得到fsmp1a-ST-Yocto文件夹
linux@ubuntu:$ tar -xvf fsmp1a-ST-Yocto.tar.xz

盘资料中【华清远见-FS-MP1A开发资料\\02-程序源码\\05-预装系统源码\\Yocto】下的downloads.tar.xz导入到由fsmp1a-ST-Yocto.tar.xz得到的fsmp1a-ST-Yocto文件夹下 。

将downloads.tar.xz解压之后得到downloads文件夹 。
linux@ubuntu:$ tar -xvf downloads.tar.xz

至此OpenSTLinux全部源码就导入完成了 。 导入源码完成后的fs-mp1a目录结构如下 。

1.2u-boot源码编译1)导入交叉编译工具链并验证
linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
linux@ubuntu:$$CC --version

2)将工作目录切换到u-boot-fsmp1a-2020.01源码目录下 。
linux@ubuntu:$ cd ${HOME/fs-mp1a/u-boot/u-boot-fsmp1a-2020.01

3)导入配置文件 。
fsmp1a的u-boot可以支持basic、trusted、optee三种配置 。 分别对应三种配置文件 。

这里使用trusted配置来编译
linux@ubuntu:$ make stm32mp15_trusted_defconfig

4)编译源码
linux@ubuntu:$ make DEVICE_TREE=stm32mp157a-fsmp1a all
编译完成后得到u-boot.img文件

l使用Makefile.sdk编译
除了传统的编译方式之外还可以通过上层目录下的Makefile.sdk来编译镜像 。 使用此方法需要将先前编译过的源码清除后再编译 , 否则会导致编译出错 。
linux@ubuntu:$ make distclean
l编译basic镜像
【Linux|Linux系统移植篇1:STM32MP1微处理器之源码编译】linux@ubuntu:$make -f $PWD/../Makefile.sdk all UBOOT_CONFIGS=stm32mp15_fsmp1a_basic_defconfigbasicu-boot.img
编译成功后会在上级目录下生成build-basic目录 。 其中的u-boot-stm32mp157a-fsmp1a-basic.img和u-boot-spl.stm32-stm32mp157a-fsmp1a-basic即为生成的烧写镜像

l编译trusted镜像
linux@ubuntu:$make -f $PWD/../Makefile.sdk all UBOOT_CONFIGS=stm32mp15_fsmp1a_trusted_defconfigtrustedu-boot.stm32
编译成功后会在上级目录下生成build-trusted目录 。 其中的u-boot-stm32mp157a-fsmp1a-trusted.stm32即为生成的烧写镜像

l编译optee镜像
linux@ubuntu:$make -f $PWD/../Makefile.sdk all UBOOT_CONFIGS=stm32mp15_fsmp1a_trusted_defconfigopteeu-boot.stm32
编译成功后会在上级目录下生成build-optee目录 。 其中的u-boot-stm32mp157a-fsmp1a-optee.stm32即为生成的烧写镜像

l编译basic、trusted、optee三种镜像
linux@ubuntu:$ make -f $PWD/../Makefile.sdk all
编译成功后会在上级目录下会同时生成build-basic、build-trusted、build-optee三个目录 。

1.3tf-a源码编译1)导入交叉编译工具链并验证
linux@ubuntu:$ source /opt/st/stm32mp1/3.1-openstlinux-5.4-dunfell-mp1-20-06-24/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi