ARM 有一个叫做 TrustZone 的东西。根据 ARM 文档,它使进程可以在安全/非安全世界中运行。
- 安全/非安全世界是什么意思。它与处理器执行模式有关还是与设置内存区域的权限或其他有关。
- ARM 的 7 种操作模式与 Secure / Non-Secure Worlds 之间有什么关系吗?
- 如何在 ARM 中启用 TrustZone。
- 这是从哪个版本的 ARM 引入的。
- 是否必须使用此 TrustZone。linux 内核是否使用此 TrustZone 扩展。
请帮助我理解这一点。
ARM 有一个叫做 TrustZone 的东西。根据 ARM 文档,它使进程可以在安全/非安全世界中运行。
请帮助我理解这一点。
http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/index.html是一个很好的介绍性文档,它概述了一些过于复杂而无法令人满意地解释的东西通过在文本框中键入。但我将尝试在下面回答您的直接问题。
为了补充UnixSmurfs 的答案,
安全/非安全世界是什么意思。它与处理器执行模式有关还是与设置内存区域的权限或其他有关。
主要与内存区域有关。所有与TrustZone兼容的设备都将使用NS位标记AXI 总线访问。该位指定访问是来自安全世界还是正常世界。这样,即使是正常世界控制下的DMA外设也可以被隔离。
ARM 的 7 种操作模式与 Secure / Non-Secure Worlds 之间有什么关系吗?
并不真地。但是,有一个名为Monitor Mode的中间世界,显然它是其中最强大的。 监控模式是安全世界和正常世界之间的中介。它可以访问普通世界的 CP15 寄存器,同时仍然具有安全世界的系统内存视图(将位推送为 0)。NS
如何在 ARM 中启用 TrustZone。
启用是一个有点重载的词。正如unixsmurf指出的那样,它内置在 CPU 中。默认情况下,启用TrustZone的 CPU 将在安全世界中启动。如果您什么都不做,您可能会忽略 CPU 支持TrustZone的事实。只有建立一个正常的世界并把控制权交给它,才会使用TrustZone;可能这就是您所说的enable。
这是从哪个版本的 ARM 引入的。
有两种口味:
TrustZone 安全白皮书的第 4.2 节回答了这个问题。ARM1176JZ ( F)-S、Cortex-A8、Cortex-A9、Cortex-A9-MPCore和Cortex-A5支持TrustZone。ARM1156T2 ( F)-S和Cortex-R4兼容;它们可以是系统中的第二个核心。随着更新内核的开发,它们可能会被添加到列表中;这个问题是一个移动的目标。
是否必须使用此 TrustZone。linux 内核是否使用此 TrustZone 扩展。
这不是强制性的。Linux内核可以扮演两个角色;安全和正常的世界。有关在Linux中使用TrustZone的一些信息,请参阅svc-handler-to-smc-call。
UnixSmurf暗示的一些事情没有得到回答;您必须确保所有BUS 主设备和从设备都适当地了解NS位。此信息在 CPU 信息之外,涉及BUS 仲裁器;另一个类似书的话题。
请参阅:PRD29-GENC-009492C
ARM TrustZone 作为嵌入式系统中的虚拟化技术
使用 ARM TrustZone 的可信计算构建块
ARM 可信固件