linux ARM64扩展和启用FEAT_XNX

nqwrtyyt  于 2022-11-22  发布在  Linux
关注(0)|答案(2)|浏览(206)

如何启用诸如FEAT_XNX之类的arm64扩展?
我正在arm64上处理阶段2页表执行权限,目前正在查看手册的D5.4.6部分。
它提到XN对只在实现FEAT_XNX时才描述阶段2控制。在我的系统中,FEAT_XNX似乎没有实现。
我查看了MMFR4和其他寄存器,以执行手册中提到的检查。
我的问题是,我如何“实现”它?这是由我决定的,还是只有在特定硬件上才有?我能把它添加到Qemu中吗?谁能给我解释一下那些FEAT_******的东西,那到底是什么?我在网上找不到关于它的资源。
谢谢大家

hjqgdpho

hjqgdpho1#

Arm架构定义了基础架构和扩展功能。扩展功能的名称如FEAT_XNX;每个扩展的确切含义在用于A轮廓架构的Arm架构参考手册中定义。
当QEMU实现一个架构扩展时,是否在guest虚拟机中看到它将取决于您选择的guest虚拟机CPU型号。对于特定的CPU类型,如“cortex-a57”,QEMU的型号实现那些真实的的硬件CPU实现的架构功能。QEMU还有一个CPU类型“max”--这是一个只用于仿真的CPU类型,它启用了QEMU支持的所有功能。
一般来说,无法在命令行上启用或禁用特定的体系结构扩展:它只能用于少数非常大的功能,如SVE或SME。(这些命令行可选属性的文档位于:(第10页)
在撰写本文时,FEAT_XNX已在QEMU CPU类型cortex-a76neoverse-n1a64fxmax中实现。
在访客代码中,是否需要专门“启用”一个扩展取决于该扩展,因此需要查看架构参考手册以了解详细信息。如果CPU没有系统寄存器使能位,则该功能的存在仅意味着“CPU将以手册中规定的方式解释阶段2页表描述符的位53,以便当FEAT_如果ID寄存器表明FEAT_XNX * 不 * 存在,则位53是RES 0,并且客户软件不得创建该位为1的阶段2页表描述符。

bbmckpt7

bbmckpt72#

架构参考手册(我正在阅读DDI 0487I.a版)的A节中介绍的FEAT_XXX架构特性是硬件特性,因此如果您的机器指示FEAT_XNX没有实现,那么您不能在此硬件上使用它。
在本手册的术语中,“实现”实际上是指硬件芯片(或软件仿真器)。

相关问题