Trusted Firmware-A 移植
- Trusted Firmware-A 简介
- 步骤
- 一、解压标准 tf-a 源码包,进入 tf-a 源码目录下:
- 二、将 ST 官方补丁文件打到 tf-a 源码中:
- 三、配置交叉编译工具链
- 四、添加设备树文件
- 五、编译源码
- 六、固件烧写
- 结果
Trusted Firmware-A 简介
嵌入式高速发展的今天,大量的嵌入式设备使用了 Arm 为核心的芯片。我们会接触到越来越多的嵌入式设备,一个问题油然而生:数量如此巨大的嵌入式设备的安全性如何?目前针对嵌入式安全的技术和标准可谓千姿百态,除了必要的硬件安全技术,与之配套的安全软件也是必不可少的一部分。今天我们要介绍的是基于 Arm 的可信固件 Trusted Firmware-A,简称 TF-A。它是一个开源软件,运行在一个硬件隔离的安全环境中并提供安全服务。
步骤
一、解压标准 tf-a 源码包,进入 tf-a 源码目录下:
tar -xvf tf-a-stm32mp-2.2.r2-r0.tar.gz
cd tf-a-stm32mp-2.2.r2
二、将 ST 官方补丁文件打到 tf-a 源码中:
for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
三、配置交叉编译工具链
vi Makefile.sdk
修改如下内容
四、添加设备树文件
进入到tf-a源码目录
cp fdts/stm32mp15xx-dkx.dtsi fdts/stm32mp15xx-fsmp1x.dtsi
cp fdts/stm32mp157a-dk1.dts fdts/stm32mp157a-fsmp1a.dts
修改上层目录下的 Makefile.sdk 编译脚本在 TFA_DEVICETREE 配置项中添加 stm32mp1
57a-fsmp1a
TFA_DEVICETREE ?= stm32mp157a-fsmp1a stm32mp157a-dk1 stm32mp157d-dk1 stm32
mp157c-dk2 stm32mp157f-dk2 stm32mp157c-ed1 stm32mp157f-ed1 stm32mp157a-ev1 stm32m
p157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1
修改 fdts/stm32mp157a-fsmp1a.dts 将
#include “stm32mp15xx-dkx.dtsi”
修改为
#include “stm32mp15xx-fsmp1x.dtsi”
cd fdts
vi stm32mp157a-fsmp1a.dts
五、编译源码
make -f $PWD/../Makefile.sdk TFA_DEVICETREE=stm32mp157a-fsmp1a TF_A_CONFIG=trusted ELF_DEBUG_ENABLE='1' all
会出现如下错误
解决方法
安装stm32wrapper4dbg 工具
下载后使用unzip stm32wrapper4dbg-master.zip解压,然后进入文件夹使用make命令编译,编译完成以后就会得到一个名为“stm32wrapper4dbg”的工具就是我们要的,然后使用命令sudo cp stm32wrapper4dbg /usr/bin拷贝到/usr/bin 目录下
再次编译成功
六、固件烧写
sudo dd if=tf-a-stm32mp157a-fsmp1a-trusted.stm32 of=/dev/sdb1 conv=fdatasync
sudo dd if=tf-a-stm32mp157a-fsmp1a-trusted.stm32 of=/dev/sdb2 conv=fdatasync
sudo dd if=u-boot-stm32mp157a-fsmp1a-trusted.stm32 of=/dev/sdb3 conv=fdatasync