【Trusted Firmware-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

结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/a1379292747/article/details/128807120