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

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。其他平台的差异比较会具体说明

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值