STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植
本专栏将以ST官方提供的支持包为基础进行移植,将在100ASK_STM32MP157_V11开发板上进行移植。移植仅实现最基本的驱动可以让系统跑起来,仅供参考和学习,没有进行稳定性验证。
- STM32MP157 tf-a2.6 optee3.16 u-boot2021.10 linux5.15移植
- STM32MP157启动流程
- STM32MP157 tf-a2.6移植
- STM32MP157 optee3.16移植
- STM32MP157 u-boot2021.10移植
- STM32MP157 linux5.15移植
- STM32MP157 buildroot-2022.02.5构建根文件系统
1. 获取源码和工具
源码和工具从ST官网下载。
1.1 STM32CubeProg
我们开始调试程序只能通过串行启动,我们利用STM32CubeProg通过USB启动。
1.2 STM32CubeMX
这个工具是用来生成代码用的,对于Cortex-M4可以生成和配置代码,对于Cortex-A7可以生成设备树。但是STM32CubeMX对于Cortex-A7支持还不是很成熟,只能配置少部分功能,这里我们只是参考生成的设备树,我们主要是自己修改。
1.3 STM32MP1Dev
有两个包STM32MP1Dev和SDK,分别是源码包和编译工具包。源码包括我们移植所需的全部源码,这个编译工具包括编译工具链和一些编译所需的工具命令,用这个省得折腾,比较推荐使用。
源码:en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
SDK:en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
1.4 STM32MP1Starter
STM32MP1Starter包含官方开发板的所有镜像文件,包括烧写脚本,我们可以参考。
链接:en.FLASH-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
2. 安装工具
安装STM32CubeProg和STM32CubeMX。
2.1 STM32CubeProg
双击软件安装包直接安装即可。
2.2 STM32CubeMX
点击INSTALL/REMOVE安装STM32MP1软件包。
选中最新的包点击Install完成安装。
3. 解压源码
在工作目录准备好下载好的三个压缩包
输入下列命令进行解压
$ tar -xvf en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
$ tar -xvf en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
$ tar -xvf en.FLASH-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
得到stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15 文件夹,里面就是源码、工具和镜像包。
stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15
├── images #官方开发板镜像包
├── sdk #交叉编译工具链
└── sources #源码
└── arm-ostl-linux-gnueabi
├── FIP_artifacts #FIP编译生成的结果存放目录
├── gcnano-driver-stm32mp-6.4.7-stm32mp1-r1-rc2-r0 #一个内核模块源码
├── linux-stm32mp-5.15.24-stm32mp1-r1-r0 #Linux源码及补丁
├── optee-os-stm32mp-3.16.0-stm32mp1-r1-r0 #OPTEE源码及补丁
├── tf-a-stm32mp-v2.6-stm32mp1-r1-r0 #TF-A源码及补丁
└── u-boot-stm32mp-v2021.10-stm32mp1-r1-r0 #u-boot源码及补丁
4. 安装编译工具链
创建toolchain目录,进入到sdk目录下。输入命令$ ./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.sh
安装工具链,输入../toolchain
设置安装路径,输入Y
等待安装完成。
安装完成完成进入到toolchain目录下,执行$ source environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
(以后每开一个终端需要使用工具链都要执行这条命令),输入arm双击tab键可以看到工具链。
5. 总结
我们获取到官方源码,并且安装好所需工具,接下来就是移植了。我们参照官方stm32mp157d-dk1开发板进行移植,对于移植我们主要是对设备树的修改。
学习笔记仅供参考,欢迎指正错误,如有侵权请及时联系。移植源码获取:
git clone https://github.com/Sonboy97/arm-ostl-linux-gnueabi.git
版本:9ae04fa8dbea4c984243179d1faa6e39cd18d2dd