Page tree
Skip to end of metadata
Go to start of metadata

TF-A介绍

TF-A(Trusted Firmware-A)是由ARM®提供的安全类软件的参考实现。TF-A最初设计是为Armv8-A 平台,现在由STMicroelectronics适配并使用在Armv7-A 平台。现在该项目已经将Trusted Firmware项目移交给Linaro作为开源项目来管理。这部分代码遵守BSD-3-Clause 版权。

如果是Trusted boot chain方式,TF-A就是作为 FSBL。


The global architecture of TF-A is explained in the Trusted Firmware-A design [8] document.

TF-A分为不同的阶段,每个都有主要的功能。

  • Boot loader stage 1 (BL1) application processor trusted ROM
  • Boot loader stage 2 (BL2) trusted boot firmware
  • Boot loader stage 3-2 (BL32) runtime software
  • Boot loader stage 3-3 (BL33) non-trusted firmware

BL1, BL2和BL32部分是属于TF-A,BL33是在不在TF-A里的。 

BL1 目前是可选项,如果编译试开启参数BL2_AT_EL3,BL1就会被移除。在PanGu开发板上,由于这部分功能是由ROM code和BL2完成的,所以BL1部分是移除的。BL2就是PanGu开发板第一个要加载的部分。

BL33是由TF-A加载的第一个非安全的代码。在启动过程中,这个就是SSBL,对于PanGu开发板SSBL就是U-Boot。

在PanGu开发板上,这两个二进制BL2和 BL32,还有device tree都放在同一个binary文件中,上电时由ROM加载到SYSRAM。


TF-加载顺序:

  1. ROM code加载TF-A binary,然后调用BL2
  2. BL2 准备BL32
  3. BL2 加载BL33
  4. BL2 调用 BL32
  5. BL32 调用 BL33



编译TF-A

下载TF-A源码包,并放在开发目录下,然后解压代码

$ cd $HOME/PanGu
$ tar xvf arm-trusted-firmware.tar.gz


编译TF-A前,需要一个Makefile.sdk文件,点击下面链接后下载,放在开发目录下。

下载Makefile.sdk

$ mv ~/Makefile.sdk $HOME/PanGu
$ make -f ../Makefile.sdk  TFA_DEVICETREE=stm32mp157a-panguboard TF_A_CONFIG=trusted ELF_DEBUG_ENABLE='1' all

编译结束后,生成的文件在开发目录下的build目录,即$HOME/PanGu/build。编译出来的二进制文件名是tf-a-stm32mp157a-panguboard.stm32。

  • No labels