Linux kernel 装卸臂托管区

Linux kernel 装卸臂托管区,linux-kernel,arm,trust-zone,Linux Kernel,Arm,Trust Zone,ARM有一个叫做TrustZone的东西。 根据ARM文档,它给出了进程可以在安全/非安全世界中运行的条件 安全/不安全世界意味着什么。 它与处理器执行模式有关,还是与设置内存区域的权限或其他内容有关 ARM的7种操作模式与安全/非安全世界之间是否存在任何关系 如何在ARM中启用TrustZone 这是从哪个版本的ARM引入的 是否必须使用此信任区。 linux内核是否使用此信任区扩展 请帮助我理解这一点。是一个非常好的介绍性文档,它概述了一些有点过于复杂的内容,无法通过在文本框中键入来令人满意

ARM有一个叫做TrustZone的东西。 根据ARM文档,它给出了进程可以在安全/非安全世界中运行的条件

  • 安全/不安全世界意味着什么。 它与处理器执行模式有关,还是与设置内存区域的权限或其他内容有关
  • ARM的7种操作模式与安全/非安全世界之间是否存在任何关系
  • 如何在ARM中启用TrustZone
  • 这是从哪个版本的ARM引入的
  • 是否必须使用此信任区。 linux内核是否使用此信任区扩展
  • 请帮助我理解这一点。

    是一个非常好的介绍性文档,它概述了一些有点过于复杂的内容,无法通过在文本框中键入来令人满意地解释。但我会尽量回答你下面的直接问题

  • 它是指与执行模式正交的附加特权选项。Secure world能够将内存访问标记为安全访问,但也可以进行非安全访问。正常世界只能进行非安全访问。此外,某些处理器配置选项只能由Secure world访问。其目的是将安全软件隔离在一个简单的环境中,在该环境中,安全软件不会(直接)受到设备主操作系统或应用软件中的软件攻击
  • 无,只是添加了一个额外的“监视器”模式。此监控模式用于正常和安全世界之间的“上下文切换”
  • TrustZone未启用,已实现(或未实现)
  • TrustZone是在ARM体系结构版本6的安全扩展中引入的。第一个支持它的处理器是ARM1176。所有Cortex-A处理器都支持它
  • “否”,尽管由于支持TrustZone的处理器在通电时开始在安全状态下执行,但如果引导加载程序不改变安全状态,则所有软件都将安全运行(消除任何安全优势)。不,TrustZone环境明确旨在与您的操作系统一起运行,而不是直接集成到其中。对于某些平台,Linux内核执行安全监视器调用,以请求Secure world更改某些系统配置选项

  • 要补充UnixSmurfs的回答

    安全/不安全世界意味着什么。它与处理器执行模式有关,还是与设置内存区域的权限或其他内容有关

    主要与记忆区域有关。所有TrustZone兼容设备将使用NS位标记AXI总线访问。此位指定访问是来自安全世界还是正常世界。这样,即使是正常世界控制下的DMA外围设备也可以被隔离

    ARM的7种操作模式与安全/非安全世界之间是否存在任何关系

    不是真的。然而,在世界之间有一种称为监控模式的模式,显然它是最强大的。监控模式是安全世界和正常世界之间的中介。它可以访问普通世界CP15寄存器,同时仍具有安全世界的系统内存视图(将
    NS
    位推为0)

    如何在ARM中启用TrustZone

    Enable是一个有点过载的词。如前所述,它内置于CPU中。默认情况下,启用信任区的CPU将在安全世界中启动。如果您什么也不做,您可能会忘记CPU具有TrustZone功能这一事实。只有建立一个正常的世界并将控制权交给它,信任区才会被使用;这可能就是您所说的启用的意思

    这是从哪个版本的ARM引入的

    有两种口味:

  • 信任区兼容
  • 信任区已启用
  • 信任区安全白皮书第4.2节回答了这一问题。ARM1176JZ(F)-S、Cortex-A8、Cortex-A9、Cortex-A9-MPCore和Cortex-A5支持TrustZone。ARM1156T2(F)-S和Cortex-R4兼容;它们可以是系统中的第二个核心。随着新核心的开发,它们可能会被添加到列表中;这个问题是一个移动的目标

    是否必须使用此信任区。linux内核是否使用此信任区扩展

    这不是强制性的。Linux内核可以扮演两个角色;安全和正常的世界。有关在Linux中使用TrustZone的一些信息,请参阅

    有些事情没有得到回答,这是UnixSmurf所暗示的;您必须确保所有总线主设备和从设备都正确地知道NS位。该信息在CPU信息之外,涉及总线仲裁器;另一个像书一样的话题

    请参阅:



    1。OMAP 4430双核处理器在Cortex A9(即ARMv7)上运行。并且ARMv7支持TrustZone。OMAP4430中是否启用了信任区功能。如何检查它是否启用。2.支持TrustZone需要哪些内核级代码更改?我在回答中说,TrustZone不是您“启用”的东西,因此除非您向我详细解释您想知道的内容,否则我帮不了您。你想干什么?@unixsmurf@kumar他的回答是正确的。原因是安全是有特权的,因此信任区的未加密代码仍将在不进行任何修改的情况下运行(例如,Linux内核、VxWorks等)。为了承载一个正常的世界,您需要安全世界中的某些东西来承载它。因此,默认情况下,事物在安全的世界中运行;在某些设备上,SOC引导代码自动切换到正常世界,但该引导代码必须配置正常世界才能运行操作系统。感谢@artlessnoise,这是一个有用的说明。是否有关于从SD卡安全引导的RPI3更新?