TrustZone之总线请求

接下来,我们将查看系统中的总线请求者,如下图所示:

系统中的A型处理器具有TrustZone感知,并在每个总线访问中发送正确的安全状态。然而,大多数现代SoC还包含非处理器总线请求者,例如GPU和DMA控制器。

与完成设备一样,我们可以将系统中的请求者设备粗略地分为以下几组:

• TrustZone感知

一些请求者具有TrustZone感知,并像处理器一样,在每个总线访问中提供适当的安全信息。其中的示例包括按照Arm SMMUv3规范构建的系统MMU(SMMU)。

• 非TrustZone感知

并非所有请求者都具有TrustZone感知,特别是在重用传统IP时。这些请求者通常在其总线访问中不提供安全信息,或始终发送相同的值。

非TrustZone感知的请求者需要访问哪些系统资源?根据这个问题的答案,我们可以选择几种方法之一:

• 设计时定值

当请求者只需要访问单个物理地址空间时,系统设计人员可以通过定值适当的信号来固定其访问的地址空间。这种解决方案简单,但不灵活。

• 可配置逻辑

提供逻辑以将安全信息添加到请求者的总线访问中。一些互连,如Arm NIC-400,提供在启动时由安全软件使用的寄存器,用于设置附加请求者访问的安全性。这会覆盖请求者本身提供的任何值。这种方法仍然只允许请求者访问单个物理地址空间,但比定值更灵活。

• SMMU

更灵活的选择是SMMU。对于受信任的请求者,SMMU的行为类似于安全状态下的MMU。这包括翻译表项中的NS位,控制访问哪个物理地址空间。

相关推荐
普中科技2 天前
【普中STM32F1xx开发攻略--标准库版】-- 第 13 章 STM32 位带操作
stm32·单片机·嵌入式硬件·arm·gpio·普中科技·位带操作
大聪明-PLUS2 天前
io_uring:Linux 上的高性能异步 I/O
linux·嵌入式·arm·smarc
普中科技2 天前
【普中STM32F1xx开发攻略--标准库版】-- 第 12 章 STM32 时钟系统
stm32·单片机·嵌入式硬件·arm·时钟树·普中科技
大聪明-PLUS3 天前
从 C 到 C++20 协程编写方法的演变。第一部分:函数 + 宏 = 协程
linux·嵌入式·arm·smarc
大聪明-PLUS4 天前
3 个诊断 Linux 服务器的脚本
linux·嵌入式·arm·smarc
大聪明-PLUS5 天前
使用 GitLab CI/CD 为 Linux 创建 RPM 包(一)
linux·嵌入式·arm·smarc
大聪明-PLUS5 天前
使用 GitLab CI/CD 为 Linux 构建 RPM 包(二)
linux·嵌入式·arm·smarc
酷飞飞7 天前
GD32F407VE天空星开发板的188数码管
stm32·单片机·嵌入式硬件·mcu·arm
大聪明-PLUS9 天前
用 C 语言实现 cat 实用程序
linux·嵌入式·arm·smarc
大聪明-PLUS9 天前
6 个 Docker 高级功能
linux·嵌入式·arm·smarc