如何启用诸如FEAT_XNX之类的arm64扩展?我正在arm64上处理阶段2页表执行权限,目前正在查看手册的D5.4.6部分。它提到XN对只在实现FEAT_XNX时才描述阶段2控制。在我的系统中,FEAT_XNX似乎没有实现。我查看了MMFR4和其他寄存器,以执行手册中提到的检查。我的问题是,我如何“实现”它?这是由我决定的,还是只有在特定硬件上才有?我能把它添加到Qemu中吗?谁能给我解释一下那些FEAT_******的东西,那到底是什么?我在网上找不到关于它的资源。谢谢大家
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-a76、neoverse-n1、a64fx和max中实现。在访客代码中,是否需要专门“启用”一个扩展取决于该扩展,因此需要查看架构参考手册以了解详细信息。如果CPU没有系统寄存器使能位,则该功能的存在仅意味着“CPU将以手册中规定的方式解释阶段2页表描述符的位53,以便当FEAT_如果ID寄存器表明FEAT_XNX * 不 * 存在,则位53是RES 0,并且客户软件不得创建该位为1的阶段2页表描述符。
cortex-a76
neoverse-n1
a64fx
max
bbmckpt72#
架构参考手册(我正在阅读DDI 0487I.a版)的A节中介绍的FEAT_XXX架构特性是硬件特性,因此如果您的机器指示FEAT_XNX没有实现,那么您不能在此硬件上使用它。在本手册的术语中,“实现”实际上是指硬件芯片(或软件仿真器)。
FEAT_XXX
FEAT_XNX
2条答案
按热度按时间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-a76
、neoverse-n1
、a64fx
和max
中实现。在访客代码中,是否需要专门“启用”一个扩展取决于该扩展,因此需要查看架构参考手册以了解详细信息。如果CPU没有系统寄存器使能位,则该功能的存在仅意味着“CPU将以手册中规定的方式解释阶段2页表描述符的位53,以便当FEAT_如果ID寄存器表明FEAT_XNX * 不 * 存在,则位53是RES 0,并且客户软件不得创建该位为1的阶段2页表描述符。
bbmckpt72#
架构参考手册(我正在阅读DDI 0487I.a版)的A节中介绍的
FEAT_XXX
架构特性是硬件特性,因此如果您的机器指示FEAT_XNX
没有实现,那么您不能在此硬件上使用它。在本手册的术语中,“实现”实际上是指硬件芯片(或软件仿真器)。