0

有一些问题我不确定我是否完全理解 TrustZone 地址。据我所知,每个内核都带有描述给硬件的设备树配置。在 TrustZone 系统中,ns(非安全)内核与 dt(设备树)一起包含对“DMA 堆”的配置。DMA 堆用于内核作为“共享缓冲区”与 TrustZone 内核通信,这取决于 SMC 处理程序的实现。一般来说,不得不说 TrustZone 内核运行在“安全内存”(安全世界)上,而在另一个“世界”中,ns 内核运行在 ns 内存(非安全世界)上。这是通过物理总线事务上的特殊 NS 位实现对架构实施的。

  1. dt 文件中定义的大多数堆都指向节点类型“内存范围”。内存范围节点地址的更改是否会导致映射到安全地址?

  2. 我不确定,但是否有可能运行 kmalloc 导致映射到 TrustZone 安全内存?

  3. 根据ioremap功能:

ioremap() 函数用于将I/O 设备的物理地址映射到内核虚拟地址。内核创建一个页表,即将虚拟地址映射到请求的物理地址。当我们执行ioremap() 时,该映射被破坏。

可以将安全内存映射到 ns 内核吗?

  1. 据我所知,SMMU 负责 VA -> IPA -> PA 或 VA -> PA(在转换表上)之间的映射,这由页表的两个阶段完成。第 1 阶段由 ns 内核完成,第 2 阶段由 Hypervisor 完成。映射到安全地址的过程如何工作?在运行 ioremap() 之后,谁告诉管理程序在页表阶段 2 上进行映射?

谢谢,

4

0 回答 0