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