gpt4 book ai didi

linux - 安全模式如何访问安全/非安全内存?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:09 28 4
gpt4 key购买 nike

根据 CortexA 编程指南

TrustZone 硬件还有效地提供了两个虚拟 MMU,每个虚拟处理器一个。这使每个世界都有一组本地转换表,安全世界映射被隐藏并受到保护,不受正常世界的影响。

页表描述中包含一个 NS 位,用于确定访问的是安全物理地址空间还是非安全物理地址空间。

虽然页表条目位仍然存在,但普通虚拟处理器硬件不使用此字段,并且内存访问始终在 NS = 1 时进行。因此,安全虚拟处理器可以访问安全或普通内存。缓存和 TLB 硬件允许正常条目和安全条目共存。

因此,如果要写入代码(在安全模式下运行)以访问地址 0xA0000000 [NS] 和 0xA0000000[S],它将如何编码?

最佳答案

So If a code (running in secure mode) is to be written to access say address 0xA0000000 [NS] and 0xA0000000[S] how would it be coded?

您可能在此处遇到概念问题。没有物理地址0xA0000000 [NS]0xA0000000[S],只有物理地址0xA0000000NS 位由总线 Controller 使用,例如 HPROT(用户/主管)访问以检查访问权限;之后,只有一个物理内存地址存储结果。这样,SDRAM 设备不需要TrustZone 感知,而只需要总线 Controller 。

您需要设置 the partition checker有一个世界共享映射。这是两个世界的读/写访问。那么信息为scott给出适用。如果两个操作系统都有 MMU,则创建两个具有相同物理地址的映射。 L1 缓存和 TLB 中可能存在内存和 MMU 条目的两个副本。重复的 TLB 没有问题。写入此内存后,L1 可能需要刷新。将有两行都包含相同的数据,但一行带有 NS 标记,另一行没有标记。

Hyperthreading for fun and profit在这种情况下可能是一篇有趣的论文。

关于linux - 安全模式如何访问安全/非安全内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23306239/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com