作者简介
baron,九年手机安全/soc底层安全开发经验。擅长trustzone/tee安全产品的设计和开发。是国内较早一批做tee的,对商用tee、开源tee研究也比较深入,对未来的安全架构/安全趋势也有着明确的看法...
1、什么是atf
首先什么是tf-a(atf)?atf就是一个固件, 一段代码,一个为armv7-a/armv8-a/armv9-a提供的参考实现代码。(注意,这只是参考实现,你也可以不用atf,用自己写的一个固件。)
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的概念)
4、atf的rt_svc介绍(runtime service)
4.1、spd(opteed)举例
例如负责双系统切换的spd,它是 oen_tos的rt-service,它负责启动tee和双系统切换。
补充双系统切换时寄存器的保存和恢复模型( switchcpu_context模型)
5、atf参与的多系统交互模型
特权等级、security state之间的交互模型,atf是一段跑在el3特权等级的代码。如下是一个特权等级、security state之间的切换模型,可以看出所有的交互和跳转都是通过异常向量表进行的。
异常特权等级之间的跳转模型都是通过同步异常或异步异常进行的:
进入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?
水分含量传感器根据电磁波在介质中传播频率来测量土壤的介电常数
华为Mate20降至“新低价”,用户纷纷表示说买早了
I2C总线协议及其应用(图)
圣诞节蓝牙耳机选哪款作为礼物比较好?耐用的蓝牙耳机推荐
坐拥多种优势的临港,已经站上了人工智能的风口
ATF里都包括哪些东西呢?
高通携手移动软件技术提供商,为新一代Brew MP手机上市铺
浅谈Linux系统的管理系统
关于CPU和FPGA的概念以及两者之间的联系详解
PLC模块化和结构化编程实例
2018恩智浦未来科技峰会隆重召开 聚焦人工智能物联网生态建设
苹果或将让iPhone支持Pencil手写笔?
中国进入长寿时代,超能健康服务机器人将成为居家养老新宠!
基于STM32制作的500KHz示波器项目
人工智能方案
从芯片到射频前端 助力5G规模商用
组态软件的变量类型
任天堂Switch评测 值不值得买
采用FPGA作为主芯片设计诱发电位仪系统
诺基亚3310还有的买吗,经典重生