gpt4 book ai didi

linux - 什么是ARM安全模式下的分区检查器

转载 作者:太空狗 更新时间:2023-10-29 11:14:19 24 4
gpt4 key购买 nike

按照这个链接
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0333h/Chdfjdgi.html



系统启动顺序
...

对分区检查器进行编程,以分配可用于非安全OS的物理内存。

什么是分区检查器?它是一个有寄存器的子系统吗,它的编程模型是什么?

最佳答案

What is the partition checker?



它超出了CPU的TrustZone规范。但是,在坚果 shell 中,它将存储空间分区或划分为不同的允许访问。如果不允许访问,则会引发外部BUS错误。

Is it a subsystem which has registers, what is its programming model?



通常,它是一堆寄存器。它可能有多个寄存器文件。例如,一个系统中可能同时存在APB(外围总线),AHB(旧的ARM总线)和新的AXI(TrustZone感知总线)。甚至可能有多条APB总线,等等。

在同一页面上,

The principle of TrustZone memory management is to partition the physical memory into Secure and Non-secure regions.



应当添加的是,将 分区为安全和不安全分区也很重要。该分区超出了ARM CPU TrustZone规范;它是BUS体系结构的一部分。实现此任务取决于总线 Controller /结构。总线 Controller 同时连接了主机(CPU,DMA外设等)和从机(存储器设备,寄存器接口(interface)等)。

在ARM TrustZone文档的上下文中进行分区有点模糊,因为实现每个细节取决于每个SOC和总线 Controller (和层次结构)。如上所述,它将存储空间分区或划分为不同的允许访问。这就像使用传统ARM( AMABA)AHB总线进行管理员访问与用户访问一样。 AXI接口(interface)添加了 NS位。

这是总线 Controller 要支持的可能组合。
             |  Read  | Write 
-------------+--------+-------
Normal User | yes/no | yes/no
Normal Super | yes/no | yes/no
Secure User | yes/no | yes/no
Secure Super | yes/no | yes/no
SCR NS位将动态确定总线访问是否设置了“NS”位。这是TrustZone的区别。对于 super 用户和用户,有一个传统的 HPROT位。同样,每个主机都将发出WRITE/〜READ信号(也许极性不同,但是我们是软件而不是硬件)。

DMA主设备(以太网,USB等)也可以向BUS发送请求。通常,它们是在引导时设置并锁定的。如果您的安全世界使用以太网,那么它可能是访问安全内存的安全DMA主设备。以太网芯片通常还具有从寄存器接口(interface)。必须将其标记(或分区)为安全。如果正常世界访问以太网寄存器文件,则将引发BUS错误。供应商还可以使DMA外围设备根据命令结构动态设置 NS位。 CAAM加密驱动程序,可以将作业描述设置为处理正常访问和安全访问,例如同时执行这两种操作的DMA主站。

CPU(例如Cortex-M4或Cortex-R)也可能是全局安全的或正常的。只有具有完整TrustZone的Cortex-A系列(和ARMv6)才能动态切换NS位,从而使CPU根据上下文情况既安全又正常。

从机外围设备可能已分区。例如,SDRAM的前10MB可能是正常的和安全的读写,以进行世界间的通信。然后是下一个54MB,也许正常情况下只能正常读取/写入。然后为安全世界提供最终64MB的读/写安全性。通常,外设的寄存器接口(interface)为 全部或无设置。

这些都不在MMU的范围之内,并且仅处理 物理地址。如果SOC在引导后将其锁定,则任何人都无法更改映射。如果安全世界代码是只读的,则设计漏洞利用程序可能会更加困难。

通常,所有APB总线都位于AHB总线上,该AHB总线像树一样连接到AXI主总线。 AXI总线是Cortex-A的默认设置。每个BUS都有一个从站和主站列表,并支持各种yes和no配置,这可能是上面列表的一部分;即,它可能不关心读/写或 super /用户或其他一些排列。每个ARM系统的情况都不同。在某些情况下,供应商甚至可能不支持它。在这种情况下,使系统变得安全甚至使用TrustZone可能会更加困难。请参阅: Handling ARM TrustZones‌,其中涉及一些总线问题的详细信息较少。

请参阅: TrustZone versus Hypervisor,其中提供了更多详细信息。

关于linux - 什么是ARM安全模式下的分区检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23125982/

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