0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ATF里都包括哪些东西呢?

Linux阅码场 来源:代码改变世界ctw ATF 作者:代码改变世界ctw 2022-06-08 09:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者简介

baron,九年手机安全/SOC底层安全开发经验。擅长trustzone/tee安全产品的设计和开发。是国内较早一批做TEE的,对商用TEE、开源TEE研究也比较深入,对未来的安全架构/安全趋势也有着明确的看法...

1、什么是ATF

首先什么是TF-A(ATF)?ATF就是一个固件, 一段代码,一个为armv7-A/armv8-A/armv9-A提供的参考实现代码。(注意,这只是参考实现,你也可以不用ATF,用自己写的一个固件。)

b06f37a4-e6c0-11ec-ba43-dac502259ad0.png

2、那么ATF里都包括哪些东西呢?

最初的功能很简单:

cpu_context的保存和恢复,即: 双系统的切换

电源管理、PSCI等

但是随着技术的发展,功能也越来越多,越来越复杂,以下列举了当前的部分功能:

安全世界的初始化,例如异常向量表、一些控制寄存器和中断寄存器

CPU reset和power down的时序。包括Arm DynamIQ cpu的支持

标准的system IP的驱动,例如Generic Interrupt Controller (GIC), Cache Coherent Interconnect (CCI), Cache Coherent Network (CCN), Network Interconnect (NIC) and TrustZone Controller (TZC).

一种通用的SCMI驱动程序, 适用于电源控制接口,例如ARM SYSTEM Control Processor(SCP)

smc处理,using an EL3 runtime services framework

PSCI库的支持,用于CPU/Cluster/system的电源管理,这个库集成到了aarch64 el3的runtime中,也适用于aarch32 el3

secure monitor代码,用于world切换、中断routing

SPDs for the OP-TEE Secure OS, NVIDIA Trusted Little Kernel and Trusty Secure OS

SecureBoot实现

预集成TBB与Arm CryptoCell产品,利用其硬件Root的信任和加密加速服务。

3、ATF定义的启动模型

ATF将镜像进行了划分,BL1 BL2属于启动引导镜像,BL3属于runtime镜像。BL3又分为BL31 BL32 BL33对应的分别是ATF Runtime、REE Runtime、TEE Runtime。

(注:本文是Quick Start,不深入解释这些概念,请自行理解:BL1 BL2 BL31 BL32 BL33的概念、EL3 S-EL1 NS-EL1的概念)

b0ae77de-e6c0-11ec-ba43-dac502259ad0.png

4、ATF的rt_svc介绍(runtime service)

b0de612e-e6c0-11ec-ba43-dac502259ad0.png

4.1、SPD(opteed)举例

例如负责双系统切换的SPD,它是 OEN_TOS的RT-Service,它负责启动TEE和双系统切换。

b10927a6-e6c0-11ec-ba43-dac502259ad0.png

补充双系统切换时寄存器的保存和恢复模型( switchcpu_context模型)

b12ec0ba-e6c0-11ec-ba43-dac502259ad0.png

5、ATF参与的多系统交互模型

特权等级、security State之间的交互模型,ATF是一段跑在EL3特权等级的代码。如下是一个特权等级、security State之间的切换模型,可以看出所有的交互和跳转都是通过异常向量表进行的。

b15ad8d0-e6c0-11ec-ba43-dac502259ad0.png

异常特权等级之间的跳转模型都是通过同步异常或异步异常进行的:

b178a37e-e6c0-11ec-ba43-dac502259ad0.png

进入ATF的方式触发异常:同步异常(不限于smc)、异步异常(irq,fiq,serror)

➨ 如果是同步异常,那么会判断是不是smc调用触发的同步异常,如果是则进入跳转ATF中异常向量表中的同步异常程序smchandler64或smchandler32 在该程序中,解析smc id,来选择跳转到具体哪一个rt-svc(runtime service)

➨ 如果是异步异常,那么一定是触发了irq或fiq或serror中断等,此时进入跳转ATF中异常向量表中的异步异常程序,进而跳转到响应的中断处理函数。

6、ATF如何处理业务逻辑的呢

那么ATF里都有哪些业务逻辑呢,如何区分和处理的呢?

当有异常进来后,进行一些判断,如您是同步异常还是异步异常? 如果是异步异常,那么你是 dosomething 还是 转发中断 ?如果是同步异常,那么你是 dosomething,还是执行 RT-Service?

b1c34230-e6c0-11ec-ba43-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动程序
    +关注

    关注

    19

    文章

    868

    浏览量

    49997
  • 代码
    +关注

    关注

    30

    文章

    4946

    浏览量

    73214

原文标题:ATF快速扫盲(Quick Start)

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    以物联网技术助力博物馆智慧安防

    针对博物馆安防与运营两大核心需求,云打造全链条产品解决方案,用先进的物联网智能硬件构建无死角防护网 。
    的头像 发表于 10-29 11:00 555次阅读

    学linux?还是去研究学习单片机内核,一些很底层的东西啥的?

    学生阶段学技术,最容易陷入的误区就是 “把课本看懂了,就觉得自己会了”。不是你不用功,是很多技术的门道藏在 “动手实操” ,没真刀真枪做过项目,根本摸不到精髓。就拿嵌入式的传感器调试来说吧,你
    的头像 发表于 10-22 11:16 248次阅读
    学linux<b class='flag-5'>呢</b>?还是去研究学习单片机内核,一些很底层的<b class='flag-5'>东西</b>啥的<b class='flag-5'>呢</b>?

    打造校园安全物联网解决方案

    如何利用科技手段提升校园安全水平,既是教育部门和家长关心的问题;同时也是云聚焦的重要课题。基于对校园安全场景的深度洞察,云依托低功耗蓝牙、北斗、4G等技术,量身打造了校园安
    的头像 发表于 09-08 17:21 875次阅读

    CPU真的有黄金:看完秒懂

    在大家的印象中,黄金是珠宝、投资品和工业原料,但很少有人知道,我们每天使用的电脑CPU竟然也隐藏着这种贵金属。那为什么芯片会用到黄金,一颗CPU中能有多少纯金?不依靠专业设备能提取出来吗?
    的头像 发表于 08-30 15:41 1855次阅读

    如何烧录程序进入自己画的20829板

    Hi,请问如何烧录程序进入自己画的20829板?可以使用20829EVK的J11来实现么?或者有没有其它的烧录工具
    发表于 07-01 07:42

    可靠性测试包括哪些测试和设备?

    在当今竞争激烈的市场环境中,产品质量的可靠性成为了企业立足的根本。无论是电子产品、汽车零部件,还是智能家居设备,需要经过严格的可靠性测试,以确保在各种复杂环境下都能稳定运行,为用户提供可靠的使用体验。那么,可靠性测试究竟包括哪些内容
    的头像 发表于 06-03 10:52 1151次阅读
    可靠性测试<b class='flag-5'>包括</b>哪些测试和设备?

    电子纸标签技术助力博物馆绿色转型

    电子纸标签拥有类纸张的显示效果,有效弥补传统说明牌字体较小、信息承载有限的不足,专注于提升文博场景观展便利性与友好度为目标。
    的头像 发表于 05-30 10:34 812次阅读

    携手Nordic推出多合一气体传感器

    此前,5月22日至23日,2025蓝牙亚洲大会在深圳隆重启幕。云新品“多合一气体传感器”在Nordic展位上重磅亮相。产品搭载了Nordic nRF54L系列首款系统级芯片(SoC),兼具超低
    的头像 发表于 05-27 18:01 1002次阅读

    DLP4710EVM I2C指令中的LED current数值和GUI的mA数是什么对应关系

    1.能否编写程序,烧录光栅,然后利用SDK的函数,设置光栅的投射时间,I2C命令是什么? 2.I2C指令中的LED current数值和GUI的mA数是什么对应关系
    发表于 02-26 06:16

    ADS7864 0~5V在AD编码是怎么表示的

    ADS7864如果采用单端输入,-IN端接内部标准电压2.5V,+IN端接0~5V模拟电压,请问0~5V在AD编码是怎么表示的?难道是0表示为0000H,5V表示为FFFFH吗?
    发表于 01-14 08:02

    企业AI解决方案包括哪些内容

    企业AI解决方案是一种集成了人工智能技术的综合性方案,旨在提高企业运营效率、降低成本、优化业务流程,并提升企业的整体竞争力。那么,企业AI解决方案包括哪些内容?下面,AI部落小编带您了解。
    的头像 发表于 01-10 10:15 1056次阅读

    请问使用AFE4400SPO2EVM测试完之后,GUI里面的数据如何作为原始数据导入到python操作界面

    请问使用AFE4400SPO2EVM测试完之后,GUI里面的数据如何作为原始数据导入到python操作界面
    发表于 01-03 07:38

    AFE4300 EVM-PDK测得的阻抗能否存到电脑的excel文件或者txt文件中

    AFE4300 EVM-PDK测得的阻抗能否存到电脑的excel文件或者txt文件中?另外,AFE4300有6个电流输出端口(Iout0~Iout5)和6个电压测量端口(Vsense0~Vsense5),这些端口是否具体对应到人体的四肢
    发表于 12-30 06:11

    折叠屏2024的新东西、好东西、旧东西

    折叠屏2024的新东西、好东西、旧东西
    的头像 发表于 12-21 16:05 4814次阅读
    折叠屏2024的新<b class='flag-5'>东西</b>、好<b class='flag-5'>东西</b>、旧<b class='flag-5'>东西</b>

    FDC2114手册说的shield和gnd是具体连击到哪里

    请问手册说的shield和gnd是具体连击到哪里?有点搞不明白,做了测试感觉没效果啊!
    发表于 12-16 08:03