![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ATF(TF-A)
文章平均质量分 85
专栏刚刚开始写,请不要购买
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
代码改变世界ctw
这个作者很懒,什么都没留下…
展开
-
14-ATF中对多核的支持
讨论一个系统、一个软件或ATF对多核的支持,其实就是看这个软件,在启动阶段如何区分主核、从核的?在runtime阶段,是否能把不同核的CPU Data加以区分?是否能区分出cpuid?原创 2024-02-25 13:27:51 · 200 阅读 · 0 评论 -
11-ATF初始化Normal cpu context
ATF (Arm Trusted Firmware) 初始化 Normal CPU Context 的步骤主要涉及设置正常世界(Normal World)CPU的环境,确保在从安全世界(Secure World)切换到正常世界时,CPU能够正确执行正常世界的代码。设置安全状态: ATF会设置CPU从安全世界(Secure World)到正常世界(Normal World)的切换。上下文保存: 在切换到正常世界之前,ATF会保存当前的CPU上下文,包括寄存器和其他状态信息。处获取跳转到REE的参数。原创 2024-02-25 13:11:33 · 103 阅读 · 0 评论 -
08-BL31对异常中断的支持
ATF的作用就变成了依赖各种RT-Service,对低异常等级发出的各种请求进行响应和处理。很多很多的RT-service都是靠着同步异常中的smc触发的同步异常进行交互处理的。当然了,同步异常也有很多种类,有一些也会trap到ATF中去处理的。异常中断有两类,一类是异步异常的处理。包含target到EL3系统错误、正常的target的EL3的中断、以及多系统之间的转发中断。所以就是一切软件的入口、一切调用的入口,都是从异常中断开始。与之对应的是,一切软件或调用的返回,都是从异常中断返回指令开始。原创 2024-02-25 12:41:54 · 88 阅读 · 0 评论 -
13-ATF中的Switch cpu context
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈。原创 2024-02-25 12:37:10 · 61 阅读 · 0 评论 -
15-ATF中的栈的设计
做为一名软件工程师、嵌入式工程师,不管底层上层,在工作中多多少少都会谈到"栈"这个字,那么何为栈呢? 你真的懂和理解吗?啥又是栈指针?栈内存?本文就以armv8/armv8的aarch64体系、TF-A(ATF)代码为示例,以直接写出答案的方案来总结:栈指针和栈内存的基本概念。1、首先讲解一下aarch64的状态下,有哪些SP寄存器,非常简单:- SP_EL0 //当spsel == 0,高的级别访问的sp就是sp_el0- SP_EL1 //在EL1级别下使用,且spsel == 1,此时sp原创 2024-02-25 12:33:50 · 57 阅读 · 0 评论 -
Runtime Service大总结(系统里包含了哪些Runtime Service)
*(1)、定义实现 **在runtime_svc.h中,DECLARE_RT_SVC宏其实就是在section(“rt_svc_descs”)段中定义了一个全局变量./*/*/*/*/*/*/*/*static/*const/*__section/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*原创 2023-03-31 11:39:45 · 96 阅读 · 0 评论 -
Runtime Service的定义
我们重点看下这张表,对应smc id的定义bit31决定是fast call,还是std call(yield对应的就是std call)bit30表示是以32位传参,还是以64位传参, 注意我们看了optee在linux的driver,都是以32位方式bit29:24 决定服务的类型bit15:0 每种call类型下,表示rangebit31、bit30、bit23:16、bit15:0 都是很好理解,我们来讲一下bit29:24。原创 2023-03-31 11:39:15 · 50 阅读 · 0 评论 -
BL31跳转到BL33的流程详解
ATF原创 2023-03-31 11:40:32 · 85 阅读 · 0 评论 -
BL31的初始化流程详解
ATF原创 2023-03-31 11:39:29 · 174 阅读 · 0 评论 -
03-ATF BL1的启动流程图
在 TF-A 中,BL1(Boot Loader Stage 1)一般就是BOOTROM, 是系统启动的第一个程序,负责系统的初始引导过程。(6)、加载 BL2:BL1 的一个主要任务是加载下一个启动阶段的代码,通常是 BL2(Boot Loader Stage 2)。此外,BL1 通常是高度优化的,以确保快速和高效的启动过程。(2)、系统寄存器、通用寄存器初始化: 在一上电后,CPU将进入最高特权等级/安全状态,同时也需要做一些有必要的系统寄存器初始化,以及通用寄存器的初始化。原创 2024-01-31 08:55:44 · 78 阅读 · 0 评论 -
04-ATF BL2的启动流程图
BL2 主要负责加载和验证 BL3 系列的镜像,包括 BL31(ARM Trusted Firmware)、BL32(可信执行环境,如 OP-TEE)以及 BL33(通常是 U-Boot 或其他第三方引导加载程序)。然而在有些场景下,主要是由MCU来引导的A核Secureboot,在没有bootrom的情况下,也是为了给予BL2一定的特权,所以这是需要把BL2放置到EL3来执行了。(8)、操作系统启动:此时,BL33(例如 U-Boot)接管控制权,进行最终的引导过程,最终加载并启动操作系统。原创 2024-01-31 08:57:35 · 67 阅读 · 0 评论 -
TF-A代码阅读: SP_EL3栈内存-cpu_data内存的介绍(cpu_context介绍)
编译的时候,定义了一个全局数组,数组中的每一个元素代表一个cpu_data初始化core的时候,将对应cpu_data写入到了该core的tpidr_el3寄存器中每个cpu_data中有两个cpu_context,[0]表示secure侧用的,[1]表示给non-secure侧用的使用类似如下这样的宏或函数,即可获取当前cpu、当前security的cpu_context注意:该宏底层会读取tpidr,security_state为SECURE或NON-SECURE。原创 2024-01-31 09:01:47 · 44 阅读 · 0 评论 -
ATF中RESET_TO_BL31宏的含义
Armv8/Armv9架构从入门到精通,Armv8/Armv9架构从入门到精通(一期),Armv8/Armv9架构从入门到精通(二期)Armv8/Armv9架构从入门到精通(三期),Arm一期、Arm二期、学习资料、免费、下载,全套资料,Secureboot从入门到精通,secureboot训练营,ATF架构从入门到精通、optee系统精讲、secureboot精讲,Trustzone/TEE/安全快速入门班,Trustzone/TEE/安全标准版,Trustzone/TEE/安全高配版。全套资料。周贺贺原创 2024-01-31 09:03:36 · 24 阅读 · 0 评论 -
ATF软件按软件如何判断当前是cold reset/warm reset/primary boot/senondary boot
TF-A,TF-M,ATF,TrustedFirmware,trustzone,TEE,optee,trusty,tlk,lk,armv8,armv9,arm,secureboot,BL31,BL32,BL1,BL2,hypervisor,终端安全,secureboot,security,virtulizationArmv8/Armv9架构从入门到精通,Armv8/Armv9架构从入门到精通(一期),Armv8/Armv9架构从入门到精通(二期)Armv8/Armv9架构从入门到精通(三期),Arm一原创 2024-01-31 09:04:29 · 45 阅读 · 0 评论 -
ATF软件对ARMV8 code reset和warm reset的支持
串口中断中敲击reboot命令、或系统panic时导致的机器重启:在一些的SOC厂商设计中,应该是code reboot。比如在Linux Kernel中敲击reboot,到底层还是写的一些寄存器控制pmic(或PMU),直接给cpu下电了。然后再上电,SOC还是会给Core发送signal configuration,此时RVBAR_EL3又会变成ASIC设置的值.Suspend和Resume。原创 2024-01-31 09:05:12 · 38 阅读 · 0 评论 -
Linux Kernel/optee/ATF等操作系统的异常向量表的速查
我们可以看出,实际上有四组表,每组表有四个异常入口,分别对应同步异常,IRQ,FIQ和serror。如果发生异常后并没有exception level切换,并且发生异常之前使用的栈指针是SP_EL0,那么使用第一组异常向量表。如果发生异常后并没有exception level切换,并且发生异常之前使用的栈指针是SP_EL1/2/3,那么使用第二组异常向量表。如果发生异常导致了exception level切换,并且发生异常之前的exception。原创 2024-02-02 10:34:26 · 27 阅读 · 0 评论 -
ATF的代码学习篇-一篇就够了
Armv8/Armv9架构从入门到精通,Armv8/Armv9架构从入门到精通(一期),Armv8/Armv9架构从入门到精通(二期)Armv8/Armv9架构从入门到精通(三期),Arm一期、Arm二期、学习资料、免费、下载,全套资料,Secureboot从入门到精通,secureboot训练营,ATF架构从入门到精通、optee系统精讲、secureboot精讲,Trustzone/TEE/安全快速入门班,Trustzone/TEE/安全标准版,Trustzone/TEE/安全高配版。全套资料。周贺贺原创 2024-02-02 10:29:48 · 71 阅读 · 0 评论 -
TF-A中的密码学算法接口
optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…Non-cacheabl原创 2024-02-02 10:28:50 · 28 阅读 · 0 评论 -
ATF快速扫盲(Quick Start)
首先什么是TF-A(ATF)?ATF就是一个固件,一段代码,一个为armv7-A/armv8-A/armv9-A提供的参考实现代码。(注意,这只是参考实现,你也可以不用ATF,用自己写的一个固件。ATF将镜像进行了划分,BL1 BL2属于启动引导镜像,BL3属于runtime镜像。BL3又分为BL31 BL32 BL33对应的分别是ATF Runtime、REE Runtime、TEE Runtime。原创 2024-02-02 10:27:31 · 53 阅读 · 0 评论 -
ATF RT-SVC的介绍
optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…Non-cacheabl原创 2024-02-02 10:20:05 · 27 阅读 · 0 评论 -
ATF的RT_SVC的详解(runtime service)
Armv8/Armv9架构从入门到精通,Armv8/Armv9架构从入门到精通(一期),Armv8/Armv9架构从入门到精通(二期)Armv8/Armv9架构从入门到精通(三期),Arm一期、Arm二期、学习资料、免费、下载,全套资料,Secureboot从入门到精通,secureboot训练营,ATF架构从入门到精通、optee系统精讲、secureboot精讲,Trustzone/TEE/安全快速入门班,Trustzone/TEE/安全标准版,Trustzone/TEE/安全高配版。全套资料。周贺贺原创 2024-02-02 10:19:09 · 33 阅读 · 0 评论 -
smc指令详解
(1)、在linux的optee_smc.h中,定义了fast call和std call的funcid宏在构造funcid宏时,如果是std call,cmd_id的31位需是0,如果是fast call,funcid的31位需是10131(2)、在optee中 ,对应的也定义了fast和std的type10并且分别注册了std服务和fast服务,虽然指向的是同一个函数然后我们再看看,同步异常中断中,跳转的时候,如何解析TYPE的代码片段..................blr x15。原创 2024-02-02 10:36:55 · 92 阅读 · 0 评论 -
中断配置:SCR.FIQ/SCR.IRQ的配置详解
那么SCR.FIQ/SCR.IRQ是在哪里配置的呢? 因为SCR只有SCR_EL3寄存器,只能在EL3级别操作.在linux+optee的双系统环境下,SCR_EL3的IRQ和FIQ的比特位是在ATF中完成的,ATF对这部分配置的代码进行了封装,如下代码所示,注册了一个cpu执行在non-secure时来响应一个secure中断的机制。传入的参数是INTR_TYPE_S_EL1和flag=0,在该函数的底层,则会配置SCR.FIQ=1.也就是说,当cpu跑在linux的时候,来了一个FIQ中断,此原创 2024-02-02 10:36:07 · 47 阅读 · 0 评论 -
ATF的异常向量表介绍-(irq,fiq,smc,hyc...)
optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…Non-cacheabl原创 2024-02-02 10:35:15 · 34 阅读 · 0 评论 -
armv8/armv9不同特权程序之间的跳转模型
启动时镜像之间是如何跳转的runtime是镜像之间是如何跳转的4个特权等级、4个安全状态、2个执行状态启动模型中的BL1 BL2 BL31 BL32 BL33的概念。原创 2024-02-02 10:32:39 · 331 阅读 · 0 评论 -
思想解读:TF-A(ATF)中栈指针和栈内存的设计思想解读
注意注意注意:并不是说"SP_EL0给EL0使用的,SP_EL1给EL1使用的",也不能说“userspace用SP_EL0, kernel使用SP_EL1”做为一名软件工程师、嵌入式工程师,不管底层上层,在工作中多多少少都会谈到"栈"这个字,那么何为栈呢?本文就以armv8/armv8的aarch64体系、TF-A(ATF)代码为示例,以直接写出答案的方案来总结:栈指针和栈内存的基本概念。在默认情况下,本文讲述的都是armv9/armv8-aarch64架构,TF-A 2.4版本。原创 2024-02-02 10:37:40 · 24 阅读 · 0 评论 -
ARM级别/异常/状态切回时候的寄存器保存与恢复
Armv8/Armv9架构从入门到精通,Armv8/Armv9架构从入门到精通(一期),Armv8/Armv9架构从入门到精通(二期)Armv8/Armv9架构从入门到精通(三期),Arm一期、Arm二期、学习资料、免费、下载,全套资料,Secureboot从入门到精通,secureboot训练营,ATF架构从入门到精通、optee系统精讲、secureboot精讲,Trustzone/TEE/安全快速入门班,Trustzone/TEE/安全标准版,Trustzone/TEE/安全高配版。全套资料。周贺贺原创 2024-02-02 10:39:42 · 39 阅读 · 0 评论 -
TEE/REE系统切换时ATF的寄存器的保存和恢复
Armv8/Armv9架构从入门到精通,Armv8/Armv9架构从入门到精通(一期),Armv8/Armv9架构从入门到精通(二期)Armv8/Armv9架构从入门到精通(三期),Arm一期、Arm二期、学习资料、免费、下载,全套资料,Secureboot从入门到精通,secureboot训练营,ATF架构从入门到精通、optee系统精讲、secureboot精讲,Trustzone/TEE/安全快速入门班,Trustzone/TEE/安全标准版,Trustzone/TEE/安全高配版。全套资料。周贺贺原创 2024-02-02 10:40:58 · 41 阅读 · 0 评论 -
TF-A代码阅读: SP_EL3栈内存-cpu_data内存的介绍(cpu_context介绍)
cpu_context到底存在哪里呢?不同core之间的cpu_context呢?不同security之间的cpu_context在哪里设置SP_EL3指向cpu_context的呢原创 2024-02-02 10:41:48 · 43 阅读 · 0 评论 -
TF-A代码阅读: 双系统切换时是如何保存寄存器的(cpu_context介绍)
optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…原创 2024-02-02 10:43:25 · 24 阅读 · 0 评论 -
ATF启动--BL31跳转到optee和uboot
optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…原创 2024-02-02 10:45:13 · 98 阅读 · 0 评论 -
ATF(TF-A)的编译方法
optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…原创 2024-02-02 10:47:56 · 34 阅读 · 0 评论 -
ATF makefile的导读
TF-A,TF-M,ATF,TrustedFirmware,trustzone,TEE,optee,trusty,tlk,lk,armv8,armv9,arm,secureboot,BL31,BL32,BL1,BL2,hypervisor,终端安全,secureboot,security,virtulization原创 2024-02-02 10:48:51 · 34 阅读 · 0 评论 -
armv8 boot流程(三):TF-A(ATF)中mailbox的使用
TF-A,TF-M,ATF,TrustedFirmware,trustzone,TEE,optee,trusty,tlk,lk,armv8,armv9,arm,secureboot,BL31,BL32,BL1,BL2,hypervisor,终端安全,secureboot,security,virtulization原创 2024-02-02 10:51:12 · 95 阅读 · 0 评论 -
TF-A 项目的长期支持介绍
词:optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…原创 2024-02-02 10:56:07 · 35 阅读 · 0 评论 -
在MT2712实现基于VOsySmonitor的车载信息娱乐和实时操作系统
VOsySmonitor是一个基于ARM TrustZone的 ISO 26262 ASIL C 认证的安全关键系统分区程序这使得具有不同关键级别的多个操作系统能够并发执行。创新的 VOsySmonitor 架构将系统分为两个主要隔间,一个用于安全关键应用程序,另一个用于标准应用程序,并使用 Arm TrustZone 将它们隔离。这种隔离对于提供安全性至关重要,安全关键应用程序的运行受到标准应用程序的完全保护(在带有标记缓存和隔离设备的单独内存地址空间中)。VOSySmonitor 软件层位于车辆软件堆栈原创 2024-02-02 10:57:09 · 45 阅读 · 0 评论 -
VOSYSmonitor:支持实时系统的EL3监视程序
在混合关键系统中,一个关键的设计要求是将具有不同关键级别的软件应用程序整合到一个通用硬件平台上。例如在航空电子设备中,功能通常被归类为飞行关键型(确保安全飞行所必需的)或任务关键型(业务执行所必需的)。同样在汽车领域,用于隔离安全关键应用的传统做法是通过大量硬件引擎控制单元 (ECU),这些引擎控制单元专用于基本操作,例如车身控制模块(例如,监控和控制电动车窗、电动后视镜) 、空调、中央门锁等),用于执行电子制动系统 (EBS)、发动机控制和数字仪表盘等关键任务。这是使用可用处理能力的一种非常低效的方式原创 2024-02-02 10:57:58 · 28 阅读 · 0 评论 -
Trusted Board Boot
信任链 (CoT) 从一组隐式信任的组件开始。在 Arm 开发平台上,这些组件是:- 信任根公钥 (ROTPK) 的 SHA-256 哈希值。它存储在受信任的根密钥存储寄存器中。或者,可以使用开发 ROTPK,并将其哈希嵌入到 BL1 和 BL2 镜像中(仅用于开发目的)。- BL1 镜像,假设它驻留在 ROM 中,因此无法篡改。CoT 中的其余组件是证书或引导加载程序镜像。这些证书遵循X.509 v3标准。该标准允许向证书添加自定义扩展,这些扩展用于存储建立 CoT 的基本信息。在 TBB原创 2024-02-02 10:58:51 · 42 阅读 · 0 评论 -
TF-A如何支持Firmware镜像放回滚的
optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…原创 2024-02-02 10:59:52 · 30 阅读 · 0 评论 -
TF-A架构下支持的secureboot到底是先加密再签名,还是先签名再加密
Armv8/Armv9架构从入门到精通,Armv8/Armv9架构从入门到精通(一期),Armv8/Armv9架构从入门到精通(二期)Armv8/Armv9架构从入门到精通(三期),Arm一期、Arm二期、学习资料、免费、下载,全套资料,Secureboot从入门到精通,secureboot训练营,ATF架构从入门到精通、optee系统精讲、secureboot精讲,Trustzone/TEE/安全快速入门班,Trustzone/TEE/安全标准版,Trustzone/TEE/安全高配版。全套资料。周贺贺原创 2024-02-02 11:00:43 · 49 阅读 · 0 评论