从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(三)

准备stm32mp-ddr-phy

复制代码
参考stm32mp-ddr-phy-A2022.11-r0目录下README.HOW_TO.txt.stm32mp2,非常重要!!!

cd ~/develop/STM32MP2/test/stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27/sources/ostl-linux

#准备stm32mp-ddr-phy源码
cd stm32mp-ddr-phy-A2022.11-r0/
tar xf stm32mp-ddr-phy-A2022.11-r0.tar.xz
cd stm32mp-ddr-phy-A2022.11/
test -d .git || git init . && git add . && git commit -m "new stm32mp-ddr-phy" && git gc
git checkout -b WORKING

准备TF-A

复制代码
参考tf-a-stm32mp-v2.10.13-stm32mp-r2-r0目录下README.HOW_TO.txt.stm32mp2,非常重要!!!
cd tf-a-stm32mp-v2.10.13-stm32mp-r2-r0/
vi test.sh

#在test.sh增加以下内容,参考README.HOW_TO.txt.stm32mp2的4.2,打补丁+git管理
tar xf tf-a-stm32mp-v2.10.13-stm32mp-r2-r0.tar.xz
cd tf-a-stm32mp-v2.10.13-stm32mp-r2
test -d .git || git init . && git add . && git commit -m "tf-a source code" && git gc
git checkout -b WORKING
for p in `ls -1 ../*.patch`; do git am $p; done
#end of test.sh

/bin/bash test.sh

export FIP_DEPLOYDIR_ROOT=/home/niuke/develop/STM32MP2/test/stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27/sources/ostl-linux/FIP_artifacts

export FWDDR_DIR==/home/niuke/develop/STM32MP2/test/stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27/sources/ostl-linux/stm32mp-ddr-phy-A2022.11-r0/stm32mp-ddr-phy-A2022.11

export DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/arm-trusted-firmware
source ~/sdk6.6_mp2
cd tf-a-stm32mp-v2.10.13-stm32mp-r2/
make -f $PWD/../Makefile.sdk.stm32mp2 clean
make -f $PWD/../Makefile.sdk.stm32mp2 stm32

按照步骤,编译成功如下图所示,同时会在arm-trusted-firmware目录下生成多个文件和目录

准备optee

复制代码
参考optee-os-stm32mp-4.0.0-stm32mp-r2-r0目录下README.HOW_TO.txt.stm32mp2,非常重要!!!
!!!注意:如果是在当前的shell环境下面,则不需要重新声明TF-A的环境变量


#将DEPLOYDIR修改成optee
export DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/optee

cd optee-os-stm32mp-4.0.0-stm32mp-r2-r0/
vi test.sh

#在test.sh增加以下内容,参考README.HOW_TO.txt.stm32mp2的4.2,打补丁+git管理
tar xf optee-os-stm32mp-4.0.0-stm32mp-r2-r0.tar.xz
cd optee-os-stm32mp-4.0.0-stm32mp-r2
test -d .git || git init . && git add . && git commit -m "optee-os source code" && git gc
git checkout -b WORKING
tar xf ../fonts.tar.gz
for p in `ls -1 ../*.patch`; do git am $p; done
#end of test.sh

/bin/bash test.sh

cd optee-os-stm32mp-4.0.0-stm32mp-r2/

make -f $PWD/../Makefile.sdk.stm32mp2 clean
make -f $PWD/../Makefile.sdk.stm32mp2 optee

按照步骤,编译成功如下图所示,同时会在optee目录下生成多个文件和目录

准备u-boot

复制代码
参考u-boot-stm32mp-v2023.10-stm32mp-r2-r0目录下README.HOW_TO.txt.stm32mp2,非常重要!!!
!!!注意:如果是在当前的shell环境下面,则不需要重新声明TF-A的环境变量


#将DEPLOYDIR修改成u-boot
export DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/u-boot

cd u-boot-stm32mp-v2023.10-stm32mp-r2-r0/
vi test.sh

#在test.sh增加以下内容,参考README.HOW_TO.txt.stm32mp2的4.2,打补丁+git管理
tar xf u-boot-stm32mp-v2023.10-stm32mp-r2-r0.tar.xz
cd u-boot-stm32mp-v2023.10-stm32mp-r2
test -d .git || git init . && git add . && git commit -m "U-Boot source code" && git gc
git checkout -b WORKING
for p in `ls -1 ../*.patch`; do git am $p; done
#end of test.sh

/bin/bash test.sh

cd u-boot-stm32mp-v2023.10-stm32mp-r2/

make -f $PWD/../Makefile.sdk.stm32mp2 clean
make -f $PWD/../Makefile.sdk.stm32mp2 UBOOT_CONFIG=default UBOOT_DEFCONFIG=stm32mp25_defconfig UBOOT_BINARY=u-boot.dtb DEVICE_TREE=stm32mp257f-ev1 all

按照步骤,编译成功如下图所示,同时会在u-boot和fip目录下生成多个文件和目录

准备kernel - 暂时不需要

下一章

使用STM32CubeMX生成的设备树

编译TF-A

编译optee

编译uboot和fip

相关推荐
sRect36 分钟前
用ESP32-S3开发板开发一个接收消息的BB机
android·serverless·嵌入式
sibylyue2 小时前
工作流表单和流程设计前端
开发语言·javascript·开源
2401_894915532 小时前
新手落地 Geo 优化:源码下载、依赖安装、数据库初始化完整步骤
运维·服务器·数据库·人工智能·缓存·开源
LCG元2 小时前
STM32软件模拟I2C驱动多从机实战:AHT20温湿度 + BH1750光照 + 0.96寸OLED实时显示
stm32·单片机·嵌入式硬件
fthux2 小时前
装闭 RenoPit 源码解析(08):多模态AI调用、重试与文本降级
人工智能·ai·开源·github·open source·renopit
冬奇Lab2 小时前
开源项目第186期:Open Ontologies — Rust 实现的 AI 原生本体工程 MCP 服务器
人工智能·开源·资讯
vipjx13 小时前
2026最新实测:PanDownload复活版百度网盘解析工具,突破限速跑满带宽
开源
2401_894915533 小时前
Geo 优化源码部署避坑指南:解决访问异常、定位失效、收录卡顿问题
java·服务器·后端·缓存·开源
小白说大模型3 小时前
OpenClaw 测试策略实战:AI Agent 自动化测试体系搭建与落地
人工智能·重构·开源·prompt·embedding
天天爱吃肉82184 小时前
【工程师硬件学习笔记:串口‑总线体系与三电试验室异构系统集成深度实战】
大数据·笔记·python·嵌入式硬件·学习·汽车