赞
踩
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
类别:
各个阶段的使用的代码如下所示:
build 系统在build blx时,会定义宏IMAGE_BLx(其中x = BL阶段),用户不用参与build 定义,这使TF-A能够仅为特定的boot阶段编译一些代码
所有汇编程序文件都都为.S扩展名。 每个BL的链接器源文件都为.ld.S的扩展名。GCC会处理并创建.ld的链接描述文件。
FDT提供硬件平台的描述,并在启动时由Linux内核使用。在fdts目录中。
对于AARCH64,分为5个阶段:
TF-A提供另外一种启动代码流程:使用BL3作为reset entrypoint,即复位后执行bl3_entrypoint的代码,在bl3章节说明
其他平台如I.mx,在./docs/plat/imx.rst中描述的:
Boot Sequence
=============
Bootrom --> BL31 --> BL33(u-boot) --> Linux kernel
TBD
平台:默认FVP。其他平台的差异比较会具体说明
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。