当前位置:   article > 正文

ATF(Arm Trusted Firmware)/TF-A Chapter 01. 介绍

tf-a

1.TF-A 介绍

TF-A是一套通用的软件架构+特定于平台的实现代码。

TF-A满足大多数SoC厂商的CPU设计:单核启动,多核启动,自定义reset vector,可裁剪的启动阶段,bootrom多平台支持,SCP-AP通讯,COT,FW update, all in one package,factory test等等。

SoC厂商需要理解ARM的firmware design,并根据ARM提供的porting guide,同时熟悉ARM的PSCI,TBBR等规范,即可实现完整的TF-A

1.1代码结构

类别:

  1. plat。 架构特定代码。
  2. Common。 平台和架构无关的代码。
  3. library。PSCI实现和其他EL3运行时framework。
  4. blx。 特定于引导阶段的代码。TF-A代码跟据BL阶段划分:
C01.2-1
  1. Driver。
  2. service。 EL3运行时服务(例如:SPD)。 特定的SPD服务在services / spd目录中(例如services / spd / tspd)。\

各个阶段的使用的代码如下所示:

C01.1-1-02

build 系统在build blx时,会定义宏IMAGE_BLx(其中x = BL阶段),用户不用参与build 定义,这使TF-A能够仅为特定的boot阶段编译一些代码

所有汇编程序文件都都为.S扩展名。 每个BL的链接器源文件都为.ld.S的扩展名。GCC会处理并创建.ld的链接描述文件。

FDT提供硬件平台的描述,并在启动时由Linux内核使用。在fdts目录中。

1.2 BL执行顺序

对于AARCH64,分为5个阶段:

  1. Boot Loader stage 1 (BL1) AP Trusted ROM
  2. Boot Loader stage 2 (BL2) Trusted Boot Firmware
  3. Boot Loader stage 3-1 (BL31) EL3 Runtime Software
  4. Boot Loader stage 3-2 (BL32) Secure-EL1 Payload (optional)
  5. Boot Loader stage 3-3 (BL33) Non-trusted Firmware (u-boot)

TF-A提供另外一种启动代码流程:使用BL3作为reset entrypoint,即复位后执行bl3_entrypoint的代码,在bl3章节说明

其他平台如I.mx,在./docs/plat/imx.rst中描述的:

Boot Sequence

=============

Bootrom --> BL31 --> BL33(u-boot) --> Linux kernel

1.3 TF-A software architectural diagrams

TBD

1.4 参考平台

平台:默认FVP。其他平台的差异比较会具体说明

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/129967
推荐阅读
相关标签
  

闽ICP备14008679号