- 博客(1405)
- 资源 (21)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【置顶】TEE从入门到精通-[目录]
此专栏讲解包含不限于optee、商用TEE、常规的安全业务设计。但主要基于optee最新代码,深度讲解和剖析各项原理和机制...
2022-05-06 08:35:45
4457
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [目录]-博客笔记导读目录(全部)
编辑backup: 汇总-arm-optee-android-复制黏贴–(网址)============= (以下是正文) =============CA/TA开发(收费区)0-博客笔记导读目录(全部)-backup-202111210-博客笔记导读目录(全部)-backup-202108120-博客笔记导读目录(全部)-backup-202201180-博客笔记导读目录(全部)-20220506backup草稿-博客笔记导读目录(全部)(统计:本文共记录650篇博文)...............
2020-06-30 10:57:13
31738
24
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【置顶】ARMv8/ARMv9架构入门到精通-[目录]
周贺贺,baron,代码改变世界,coding_the_world,Arm精选,arm_2023,安全启动,加密启动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、V
2020-06-30 10:32:07
17376
11
原创 5. System Design 5.9. Building FIP images with support for Trusted Board Boot
此构建的结果将是 bl1.bin、fip.bin 和 fwu_fip.bin二进制文件。FIP 和 FWU_FIP都将包含与 选定的信任链。使用 mbed TLS 源代码将影响 TF-A 的许可 使用此库生成的二进制文件。也可以在输出构建目录中找到这些证书。要构建 FWU_FIP,平台所需的任何 FWU 图像都必须在 命令行。构建和安装非安全镜像和SCP FWU镜像(NS_BL1U, NS_BL2U 和 SCP_BL2U) 不在本文档的讨论范围之内。文档,了解相应的内容 要使用的 mbed TLS 版本。
2024-07-25 19:33:05
7
原创 5. System Design 5.8. Trusted Board Boot
可信板启动 (TBB) 功能可防止恶意固件运行 在平台上,通过验证所有固件图像,包括 正常世界的引导加载程序。它通过使用建立信任链来实现这一点 公钥加密标准 (PKCS)。本文档介绍可信固件-A (TF-A) TBB 的设计,该规范, 手臂DEN0006D。它应与设计文档结合使用,该文档实现了 TBBR 的特定方面。
2024-07-25 19:32:34
7
原创 5. System Design 5.7. CPU Reset
本文档介绍了用于处理 CPU 的框架的高级设计 在受信任固件 A (TF-A) 中重置。它还描述了平台如何 集成商可以在一定程度上根据系统配置定制此代码, 从而简化和优化启动流程。本文档应与文档结合使用,该文档提供了有关重置代码的更多实现详细信息。专门用于冷启动路径。
2024-07-25 19:31:49
478
原创 5. System Design 5.6. PSCI Power Domain Tree Structure
平台必须导出 和 API 才能启用通用 PSCI 代码 填充一棵树,用于描述中电源域的层次结构 系统。这种方法不灵活,因为对拓扑进行了更改 需要更改代码。对于平台来说,描述其电源域树会简单得多 在数据结构中。通用 PSCI 代码生成 MPIDR 以填充电源域 树。它还使用 MPIDR 在树中查找节点。假设 平台将使用与通用 PSCI 生成的完全相同的 MPIDR 代码不可缩放。MPIDR 的使用还限制了 电源域树中的级别设置为四个。因此,有必要将MPIDR的分配与MPIDRs的分配脱钩。
2024-07-25 19:31:10
5
原创 5. System Design 5.5. 中断管理框架
此框架负责管理路由到 EL3 的中断。它还 允许 EL3 软件配置中断路由行为。它的主要 目标是实现以下两个要求。
2024-07-25 19:29:31
5
原创 5. System Design 5.4.Firmware Design
可信固件 A (TF-A) 实现可信板启动的子集 需求 (TBBR) 平台设计文档 (PDD) 供 Arm 参考 平台。TBB 序列在平台通电并运行时开始 到它对正常运行的固件进行放手控制的阶段 DRAM中的世界。这是冷启动路径。TF-A 还将实现为运行时服务。PSCI 是接口 从普通软件到实现电源管理用例的固件 (例如,辅助 CPU 启动、热插拔和空闲)。正常世界的软件可以 通过 Arm SMC(安全监视器呼叫)指令访问 TF-A 运行时服务。SMC 指令必须按照 SMC 呼叫约定的规定使用 (
2024-07-25 19:28:52
3
原创 5. System Design 5.3.Arm CPU Specific Build Macros
本文档介绍了特定于 CPU 的各种构建选项 用于启用勘误解决方法和启用优化的操作框架 对于平台上的特定 CPU。
2024-07-25 19:27:36
4
原创 5. System Design 5.2. 身份验证框架和信任链
本文档旨在描述身份验证框架 在受信任固件 A (TF-A) 中实现。本文档介绍身份验证框架的内部详细信息,以及 可用于指定信任链的抽象机制。
2024-07-25 19:26:42
542
原创 5. System Design 5.1. Alternative Boot Flows
在预生产系统上,能够在 需要最高的异常级别。它允许完全、直接地访问 硬件,例如用于运行硅浸泡测试。虽然可以从以下位置实现一些裸机安全固件 scratch,这在某些平台上是一项复杂的任务,具体取决于 将系统置于预期状态所需的配置。一种可能的折衷方案是通过 TF-A 启动,而不是启动裸机应用程序。这是作为替代方法实现的 启动流程,其中修改后的 BL2 启动 EL3 有效负载,而不是加载 其他 BL 图像并将控制权传递给 BL31。
2024-07-25 19:25:45
4
原创 4.Components 4.24. Context Management Library
Arm TrustZone 架构有助于实现硬件强制隔离 在各种安全状态(安全/非安全/领域)下运行的软件。通用寄存器、大多数系统寄存器和矢量寄存器 不是每个世界的银行。当在安全状态之间移动时,它是 安全监控软件的责任 (BL31(AArch64) / BL32(Aarch32)) 在 TF-A 中,而不是硬件中,用于保存和恢复寄存器状态。有关详细信息,请参阅AArch64 的 Trustzone。
2024-07-25 19:23:29
5
原创 4.Components 4.23. DebugFS接口
可选的 DebugFS 接口可通过供应商特定的 EL3 服务进行访问。指 有关详细信息,请参阅组件文档。
2024-07-25 19:22:47
3
原创 4.Components 4.22. Vendor Specific EL3 Monitor Service Calls
本文档列举并描述了供应商特定的 EL3 监视器服务 调用。这些是 EL3 监视器供应商定义的服务调用。它们通过从异常执行的(“SMC 调用”)指令访问 低于EL3的水平。SMCTF-A 使用的特定于供应商的 EL3 监视器服务调用的源定义位于 头文件。表 1:显示特定于供应商的服务的不同版本以及每个版本所做的更改每个子服务都有自己的版本,为子服务版本分配一个 FID。当一个人应该更新顶级版本时,有一些基本规则。
2024-07-25 19:22:05
4
原创 4.Components 4.21. Granule Protection Tables Library
结构是表示物理地址空间的一种方式,并且 GPT 库可以使用的属性来初始化表。基本物理地址区域大小此内存区域的所需属性(映射类型、PAS 类型)请参见 中的类型。程序员应该为 API 提供一个包含结构的数组,然后库将检查所需的内存访问布局 有效性并创建表来实现它。pas_region_t`是公共类型,但建议使用宏 和 来填充 这些结构而不是手动进行,以降低未来的风险 兼容性问题。这些宏采用基本物理地址、区域大小、 和 PAS 类型作为参数来生成pas_region_t结构。
2024-07-25 19:21:30
5
原创 4.Components 4.20. RMM-EL3通信接口
本文档定义了 RMM 和 EL3 之间的通信接口。此接口包含两个部分:启动接口和运行时 接口。当 CPU 进入时,Boot Interface 定义了 EL3 和 RMM 之间的 ABI R-EL2 在启动后首次使用。冷启动接口定义了 ABI 对于冷启动路径和热启动接口定义相同 温暖的路径。RMM-EL3 运行时接口定义了 EL3 服务的 ABI,可以是 由 RMM 调用,以及在处理 来自 NS 的 SMC 呼叫。以下各节将更详细地讨论这些接口。
2024-07-25 19:20:51
3
原创 4.Components 4.19. Realm Management Extension (RME)
FEAT_RME(或简称 RME)是 Armv9-A 扩展,是的一个组件。TF-A 支持启动 RME 从版本 2.6 开始。本章讨论为支持 RME 和 而对 TF-A 进行的更改 提供了有关如何使用 RME 构建和运行 TF-A 的说明。
2024-07-25 19:19:54
4
原创 4.Components 4.18. 信任链绑定
清单”节点描述:证书节点的容器。性能相容:用法:必填值类型:定义:必须是“arm, cert-descs”证书节点描述:描述使用的证书属性 在身份验证过程中。性能根证书用法:对于没有父级的证书是必需的。换言之,经过验证的证书 使用信任根公钥。值类型:图像 ID用法:对于每个具有唯一 ID 的证书都是必需的。值类型:父母用法:它指的是它们的父图像,通常包含 用于验证证书的信息。此属性对于所有非根证书都是必需的。根证书不需要此属性 由于根证书是使用信任根进行验证的 公钥由平台提供。
2024-07-25 19:18:51
6
原创 4.Components 4.17. Translation (XLAT) Tables Library
本文档介绍翻译表库(版本 2)的设计 由受信任固件 A (TF-A) 使用。该库提供用于创建页面的 API 基于内存布局描述的表格,以及设置系统 与内存管理单元 (MMU) 相关的寄存器,并执行 所需的翻译后备缓冲区 (TLB) 维护操作。
2024-07-25 17:12:28
5
原创 4.Components 4.16. 安全分区管理器(MM)
安全分区是实例化的软件执行环境 S-EL0,可用于实现简单的管理和安全服务。由于 S-EL0 是非特权异常级别,因此安全分区依赖于 特权固件(即 TF-A),被授予对系统和处理器的访问权限 资源。系统地址映射中的内存和设备区域。PE系统寄存器。一系列同步异常(例如 SMC 函数标识符)。请注意,目前 TF-A 仅支持处理一个安全分区。安全分区使 TF-A 能够仅实现必要的安全 在 EL3 中服务,并在 S-EL0 的分区中实例化其余部分。此外,可以使用多个安全分区来隔离不相关的区域 彼此的服务。
2024-07-25 17:11:18
3
原创 4.Components 4.15. EL3 安全分区管理器
本文档介绍了基于 FF-A 规范的 EL3 SPMC 设计。EL3 SPMC 提供参考 FF-A 兼容实现,无需 S-EL2 虚拟化支持, 帮助尽早采用和迁移到 FF-A。
2024-07-25 17:09:33
3
原创 4.Components 4.14. 安全分区管理器
基于FF-A规范[1]的S-EL2 SPMC,可在以下领域实现虚拟化 安全世界,管理多个 S-EL1 或 S-EL0 分区。基于 FF-A 规范的 EL3 SPMC,管理单个 S-EL1 分区 在安全世界中没有虚拟化。EL3 SPM 基于 MM 规范,传统实现管理 单个 S-EL0 分区 [2]。这些实现在各自的软件体系结构上有所不同,并且只有一个 可以在构建时选择。描述项目符号 1 的实现。当 SPMC 位于 S-EL2 时。不是架构规范,它可能会提供假设 在规范中指定为实现定义的部分。
2024-07-25 17:03:43
2
原创 4.Components 4.13. SDEI: 软件委托异常接口
软件委托异常接口 (SDEI) 是 Arm 规范,用于 非安全世界,使用固件注册处理程序以接收通知 关于系统事件。固件将首先通过以下方式接收系统事件 异步异常,作为响应,安排已注册的处理程序执行 在不安全的 EL 中执行。与 SDEI 调度程序交互的正常世界软件(使 SDEI 请求和接收通知)称为SDEI 客户端。一个 客户端在已注册的处理程序处收到事件通知,即使它 正在执行,但异常被屏蔽。可供 客户特定于平台1.另请参阅确定客户端 EL的。
2024-07-25 16:50:36
3
原创 4.Components 4.12. Library at ROM
ROM 库”功能允许平台构建函数库,以 放置在 ROM 中。这通过利用 中的可用空间来减少 SRAM 的使用。只读存储器。“ROM 库”包含一个跳转表,其中包含以下函数列表: 放置在 ROM 中。函数可以来自一个或多个库。在将功能编程到ROM中后,可以对其进行修补。特定于平台的库可以放置在 ROM 中。功能可以通过一个或多个 BL 图像来访问。
2024-07-25 16:46:18
2
原创 4.Components 4.11. 可靠性、可用性和可维护性(RAS)扩展
对应于 NS 节点的 EA 和 Error 中断首先在固件中处理通过适当的机制向 NS 世界发出错误信号禁止内核直接访问 RAS 错误记录固件为内核创建 CPER 记录以进行导航和处理固件通过 SDEI 将错误信号传回内核FFH 与异常处理框架结合使用。由以下原因导致的异常 非安全环境中的错误被路由到 EL3 并在 EL3 中处理。所述错误是同步的 外部中止 (SEA)、异步外部中止(以 SErrors 表示)、故障处理 和错误恢复中断。
2024-07-25 16:44:19
2
原创 4.Components 4.10. Platform Interrupt Controller API
本文档列出了可选的平台中断控制器 API,该 API 从中断控制器的运行时配置和控制中抽象出来 通用代码。中介绍了必需的 API。
2024-07-25 16:42:00
3
原创 4.Components 4.9. Maximum Power Mitigation Mechanism (MPMM)
是一种可选的微架构电源管理机制,由 一些 Arm Armv9-A 内核,从 Cortex-X2、Cortex-A710 和 Cortex-A510 内核。计数器显示齿轮指标。一 外部电源控制器可以使用这些指标来预算 SoC 功耗,具体方法如下 限制可以执行更高活动工作负载的核心数,或者 切换到不同的 DVFS 操作点。处理器电源域动态功率预算并限制 触发对过电流的全轨(即时钟斩波)响应 条件。由 EL3 运行时固件在每个内核的基础上启用。计数器必须由 EL3 启用 运行时固件 - 请参阅。
2024-07-25 16:39:31
5
原创 4.Components 4.8. 测量的引导驱动程序(MBD)
本文档介绍事件日志属性的设备树格式。这些属性与特定平台无关,可以查询 来自通用代码。
2024-07-25 16:35:55
2
原创 4.Components 4.7. 固件更新(FWU)
PSA FW 更新规范定义了 和 的概念。新的固件图像由 提供给 在非易失性存储器中刷新它们。一个通用的系统设计将把 在安全的世界里 而在正常世界中执行。PSA 固件更新规范提供了适用于正常世界的 ABI 实体 aka 将固件映像传输到 .在非易失性存储器中发现了活动和更新的存储区 分别由 和。活动库存储正在运行的固件,而更新库包含 固件更新。一旦固件在非易失性的更新库中更新。storage,然后将更新库标记为活动库, 并在非易失性存储器中写入更新的 FWU 元数据。在内存中读取 FWU 元数据。
2024-07-25 16:35:17
2
原创 4.Components 4.6. Firmware Configuration Framework
固件配置框架 (FCONF)是 特定于平台的数据,允许查询“属性”和值 在请求实体不知道正在使用哪个后备存储的情况下检索 保存数据。它用于在提供特定于平台的数据的新旧方式之间架起桥梁。如今,像信任链这样的信息被保存在几个嵌套的 平台定义的表。将来,它可能会作为设备的一部分提供 blob,以及有关要加载的图像的其余信息。引入此抽象层将使迁移更容易,并且将保留 适用于不能/不想使用设备树的平台的功能。组成FCONF的属性必须存储在 C 结构中。
2024-07-25 16:22:35
2
原创 4.Components 4.5. 异常处理框架
通过寄存器中的各种控制位,Arm 架构 允许将异步异常路由到 EL3。如中断管理框架文档中所述,具体取决于所选的 中断路由模型,TF-A 适当设置寄存器的 and 位以影响此路由。对于大多数用例,除了 促进正常世界和安全世界之间上下文切换的目的, 路由到 EL3 的 FIQ 和 IRQ 不需要在 EL3 中处理。然而,不断发展的系统和标准环境要求各种 异常以 EL3 为目标并在 EL3 中处理。从 ARMv8.2 架构扩展开始,许多 RAS 特性已经 介绍了 Arm 架构。
2024-07-25 16:21:12
2
原创 4.Components 4.4. DebugFS
DebugFS功能主要用于将固件调试数据公开给 更高的软件层,例如非安全组件。此类组件可以是 TFTF 测试有效负载或 Linux 内核模块。
2024-07-25 16:19:55
2
原创 4.Components 4.3. Arm SiP服务
本文档列举并描述了Arm SiP(Silicon Provider)服务。SiP服务是芯片提供的非标准、特定于平台的服务 实施者或平台提供商。它们可以通过(“SMC 调用”)访问。从低于 EL3 的异常水平执行指令。SMCArm SiP 服务的源定义位于标头中 文件。表 1:显示 arm-sip-service 的不同版本以及每个版本所做的更改。
2024-07-25 16:19:14
2
原创 4.Components 4.2. Active Monitor
Armv8-A 架构的FEAT_AMUv1引入了活动监视器 外延。此扩展描述了活动监视器的体系结构 单元 (),用于监控核心事件的可选非侵入性组件 通过一组 64 位计数器。提供构建选项时,Trusted Firmware-A 在 AMU 退出 EL3 之前设置,并将保存和恢复 在挂起和恢复时根据需要构建计数器。
2024-07-25 16:18:24
2
原创 4. Components 4.1. Secure Payload Dispatcher (SPD)
是作为Secure EL1运行的受信任操作系统。要构建和执行 OP-TEE,请按照中的说明进行操作有两种不同的模式可用于加载 OP-TEE OS。默认模式将 在启动期间将其加载为 BL32 有效负载,这是 要使用的平台。还有另一种技术可以在之后加载 OP-TEE OS 通过启用 SMC 调用启动 OPTEE_ALLOW_SMC_LOAD 专为 ChromeOS 添加。通过 SMC 调用加载 OP-TEE 可能不安全 取决于平台配置。如果使用该选项,请务必 了解允许加载受信任的操作系统所涉及的风险 道路。
2024-07-25 16:16:30
4
原创 09-optee内核-线程处理
一旦使用了条件变量 与某个互斥锁一起,它只能与该互斥锁一起使用,直到 摧毁。断言互斥锁已解锁且没有服务员,之后 这样,互斥锁使用的内存就可以被释放了。当互斥锁被锁定时,它归调用或的线程所有,互斥锁只能由线程解锁 拥有互斥锁。原子化解锁提供的互斥锁并通过以下方式在正常世界中等待 一个 RPC,用于要发出信号的条件变量,当函数 返回互斥锁再次被锁定。如果互斥锁被解锁,这是一个快速操作, 否则,该函数会发出 RPC 以在正常情况下等待。如果解锁,则锁定互斥锁,否则返回互斥锁 保持不变,函数返回。
2024-07-24 22:07:03
15
原创 08-optee内核-smc指令
TEE 驱动程序将使用参数和一些额外的簿记填充结构 信息。SMC 的参数在寄存器 1 到 7 和寄存器 0 中传递 持有 SMC ID,除其他外,该 ID 指示它是标准还是 快速呼叫。前一个文件定义了 SMC 标识符以及在 每个 SMC 的寄存器。后一个文件定义了 OP-TEE 消息协议 这不仅限于 SMC,即使这是目前唯一的选择 可用。如果我们正在查看源代码,我们会 可以看出通信主要是使用 and(在。OP-TEE 的 SMC 接口分为两个级别,分别使用。中)实现的,其中可以看作是 主要结构。
2024-07-24 22:06:08
11
原创 07-optee内核-共享内存
此 cookie 稍后在调用 OP-TEE OS 时使用,如果 cookie OP-TEE OS 还不知道,它会要求 SPMC 制作内存 可用。这种情况也可能涉及另一个情况 安全环境中的组件,SPMC 位于安全虚拟机管理程序中,其中 控制 OP-TEE OS 可以查看或使用的内存。纵的共享内存缓冲区引用必须适合其中一个 从 OP-TEE 内核已知的共享内存区域。使用基于 SMC 的 OP-TEE MSG ABI 存在一些异常,其中内存 在可以从 OP-TEE 操作系统访问它之前,不需要共享。
2024-07-24 22:05:16
5
原创 06-optee内核-栈的介绍
外部中断退出类似于 RPC 退出,但它是 和 (分别用于 armv7-A/Aarch32 和 Aarch64),用于保存线程状态。当收到异常时,堆栈指针始终是临时使用的,在分配适当的堆栈时 指针。RPC 已启动 调用该调用以当 线程被恢复,它将在下一条指令继续,就像这个函数一样 做了正常的回归。当前 线程堆栈被分配给该线程堆栈,然后选择该线程堆栈。当主线程函数时,返回的中断是 禁用后,CPU 将切换到临时堆栈。在早期启动期间,CPU 配置了临时堆栈,该堆栈将一直使用到 OP-TEE首次退出正常世界。
2024-07-24 22:03:22
13
嵌入式Linux C语言初学者项目实践:火车票订票系统
2023-04-12
GPD_TEE_TUI_Extn_Biometrics_API_v1.0_PublicRelease_2018_04_03.pdf
2021-08-05
GPD_TEE_Internal_Core_API_Specification_v1.3_PublicRelease.pdf
2021-08-05
ARM-gic官方文档资料打包下载-gicv2v3-gic500等.rar
2020-07-12
armv8指令详细介绍-官方pdf文件112页.rar
2020-07-12
基于英飞凌产品的汽车EPS方案介绍
2023-06-23
面向安全要求严苛的应用的飞思卡尔双核控制器系列
2023-06-23
汽车电动助力转向系统的研究与方案-英飞凌
2023-06-23
支持ASIL D 应用的安全集成硬件解决方案
2023-06-23
论文:函数信号发生器制作
2023-06-23
论文:单相电参数测量仪
2023-06-23
基于51单片机循迹智能小车
2023-06-23
C8051F005小车自动控制
2023-06-23
AT89C51红外避障小车
2023-06-23
电动车跷跷板-全国大学生电子设计竞赛
2023-06-23
电动智能小车(完整论文)
2023-06-23
python英文批量翻译成中文?
2021-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人