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

    文章

    872

    浏览量

    50824
  • 代码
    +关注

    关注

    30

    文章

    4977

    浏览量

    74431

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    0基础看懂电阻:它到底在电路做什么?

    不管是手机、充电器、家电,还是各种电路板,里面藏着一个超基础的电子元件——电阻。它看起来就是个小小的贴片、不起眼的小圆柱,很多人都好奇:这个小东西,到底在电路有什么用? 这篇文章完全抛开复杂公式
    的头像 发表于 04-27 14:32 196次阅读
    0基础看懂电阻:它到底在电路<b class='flag-5'>里</b>做什么?

    亮相2026亚洲蓝牙大会

    及工业物联网等领域的创新应用。作为蓝牙技术生态中的核心参与者与产业物联网领域的领先产品方案提供商,云全程参与了这场年度科技盛会。
    的头像 发表于 04-24 17:13 842次阅读

    解读蓝牙工业应用新价值

    近日,云(股票代码:920374)总经理张敏先生受邀接受全球权威组织蓝牙技术联盟(Bluetooth SIG)专访,围绕蓝牙技术在工业场景的应用痛点、技术优势、落地价值及未来拓展等核心议题分享深度见解,为工业物联网数字化转型提供实践参考。
    的头像 发表于 04-22 10:20 356次阅读

    藏在PCB的杂散电容才是隐形杀手

    做硬件开发的朋友大概率遇到过这种糟心事:明明选了参数匹配的晶振,焊上板子却要么不起振,要么频率飘得离谱,换了好几个晶振都没用。其实很多时候,真不是晶振质量差,而是你忽略了PCB无处不在的“隐形
    的头像 发表于 04-22 08:47 277次阅读
    藏在PCB<b class='flag-5'>里</b>的杂散电容才是隐形杀手

    CONFIG_STATIC_DDR 在 LS1028ARDB 上破坏 ATF 编译的定义,怎么解决?

    ls1028ardb 来源build_ls1028ardb 比特贝克 Qoriq-ATF ## Hack code to insert #define CONFIG_STATIC_DDR
    发表于 04-09 06:09

    东西协作·芯向未来|先楫半导体亮相2026成工博会

    2026年3月11-13日,成都|上海先楫半导体科技有限公司(先楫半导体,HPMicro)携全系列RISC-VMCU产品及行业解决方案重磅亮相2026成国际工业博览会(成都工博会)。作为国产高性能
    的头像 发表于 03-16 11:50 504次阅读
    <b class='flag-5'>东西</b>协作·芯向未来|先楫半导体亮相2026成<b class='flag-5'>都</b>工博会

    如何使 i.MX93 上的 U-Boot SPL 和 ATF/BL31输出静音

    到外部网络设备时,U-Boot SPL 和 ATF/BL31 启动消息会回显到外部设备的控制台。如果外部设备也在启动,它可以将这些字符解释为输入命令,从而可能损坏其引导加载程序或配置。 我成功静音的内容
    发表于 03-09 08:28

    医疗设备的 “稳” 选手:Trinamic 精准控制有多强?

    Trinamic精准控制有多强医疗设备的“稳”选手在各类医疗设备的运行逻辑,“精准”与“稳定”是核心刚需。小到药液输送、光学定位,大到样本传输、器械驱动,离不开可靠的运动控制技术
    的头像 发表于 01-21 14:45 307次阅读
    医疗设备<b class='flag-5'>里</b>的 “稳” 选手:Trinamic 精准控制有多强?

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

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

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

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

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

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

    CPU真的有黄金:看完秒懂

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

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

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

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

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

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

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