Trusted Firmware-A移植

来自华清远见研发中心
FarSight讨论 | 贡献2021年3月18日 (四) 11:20的版本 TF卡分区

跳转至: 导航搜索

Trusted Firmware-A简介

嵌入式高速发展的今天,大量的嵌入式设备使用了Arm为核心的芯片。我们会接触到越来越多的嵌入式设备,一个问题油然而生:数量如此巨大的嵌入式设备的安全性如何?目前针对嵌入式安全的技术和标准可谓千姿百态,除了必要的硬件安全技术,与之配套的安全软件也是必不可少的一部分。今天我们要介绍的是基于Arm 的可信固件Trusted Firmware-A,简称TF-A。它是一个开源软件,运行在一个硬件隔离的安全环境中并提供安全服务。

实验目的

完成TF-A的基本功能实现TF-A引导u-boot启动。

实验平台

华清远见开发环境,FS-MP1A平台

实验步骤

本实验基于tf-a-stm32mp-2.2版本,然后添加意法半导体提供的补丁文件。在意法半导体官方的tf-a中移植我们自己的tf-a。

导入源码

如果之前已经建立了源码目录,并且导入了源码包,即可跳过本小节。

建立源码目录

linux@ubuntu:$ cd ~
linux@ubuntu:$ mkdir FS-MP1A

将【华清远见-FS-MP1A开发资料\02-程序源码\04-Linux系统移植\01-官方源码】下的en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz压缩包,导入到ubuntu下的${HOME}/FS-MP1A目录下。

39-4-1-1.png

解压缩源码包

linux@ubuntu:$ tar xvf en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz

解压完成后得到“stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24”目录

39-4-1-2.png

进入tf-a目录下

inux@ubuntu:$ cd ~/FS-MP1A/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/tf-a-stm32mp-2.2.r1-r0

39-4-1-3.png

该目录下以patch结尾的文件为ST官方提供的补丁文件;tf-a-stm32mp-2.2.r1-r0.tar.gz为标准tf-a源码包。

解压标准tf-a源码包

linux@ubuntu:$ tar -xvf tf-a-stm32mp-2.2.r1-r0.tar.gz

解压完成后得到tf-a-stm32mp-2.2.r1目录

39-4-1-4.png

进入tf-a源码目录下:

linux@ubuntu:$ cd tf-a-stm32mp-2.2.r1

39-4-1-5.png

将ST官方补丁文件打到tf-a源码中:

linux@ubuntu:$ for p in `ls -1 ../*.patch`; do patch -p1 < $p; done

TF卡分区

要对TF卡进行烧录,需要先将TF接入到ubuntu系统中。

查看TF卡分区

linux@ubuntu:$ ls /dev/sd*

39-4-2-1.png

由上图所示只有“/dev/sdb1”一个分区则需要重新进行分区。

首先删除原有分区

linux@ubuntu:$ sudo parted -s /dev/sdb mklabel msdos

如果显示如下内容,则表示设备已经被挂载,需要卸载掉设备再删除分区。

39-4-2-2.png

卸载设备

linux@ubuntu:$ umount /dev/sdb1

卸载完成后重新执行删除分区命令

linux@ubuntu:$ sudo parted -s /dev/sdb mklabel msdos

对tf进行重新分区

linux@ubuntu:$ sudo sgdisk --resize-table=128 -a 1 -n 1:34:545 -c 1:fsbl1 -n 2:546:1057 -c 2:fsbl2 	-n 3:1058:5153 -c 3:ssbl -n 4:5154:136225 -c 4:bootfs -n 5:136226 -c 5:rootfs -A 4:set:2 -p /dev/sdb -g

39-4-2-3.png

注意:最后-p /dev/sdb参数中的/dev/sdb需要按照实际ubuntu中的tf节点为准,否则可能发生不可预料的后果。

建立自己的平台

调整设备树电源配置

eMMC移植