在运行时检测arm处理器上的扩展超级部分支持

在运行时检测arm处理器上的扩展超级部分支持,arm,mmu,armv8,Arm,Mmu,Armv8,在关于AArch32地址转换的章节中,ARMv8手册描述了当处理器支持这种类型的扩展时,超级节的基本物理地址的大小如何达到40位。我无法确定在AArch32模式下运行的内核在运行时是否能够检测到这种情况。我是否遗漏了一些信息,或者这些信息只是通过编译内核的具体处理器类型隐式提供的?由于ARMv8支持64位地址(使用物理总线),所有ARMv8-a都应该激活LPAE 对于一些ARMv7,它们可能/可能没有LPAE,AArch32文档可能是其中一个手册的副本/粘贴。我相信CP15 ID_MMFR0有这

在关于AArch32地址转换的章节中,ARMv8手册描述了当处理器支持这种类型的扩展时,超级节的基本物理地址的大小如何达到40位。我无法确定在AArch32模式下运行的内核在运行时是否能够检测到这种情况。我是否遗漏了一些信息,或者这些信息只是通过编译内核的具体处理器类型隐式提供的?

由于ARMv8支持64位地址(使用物理总线),所有ARMv8-a都应该激活LPAE

对于一些ARMv7,它们可能/可能没有LPAE,AArch32文档可能是其中一个手册的副本/粘贴。我相信CP15 ID_MMFR0有这个信息,如果你想成为更多ARM CPU的通用处理器。其值应为VSMA字段的0b0101。它被称为对长描述符的支持,长描述符通常被称为LPAE(用于大型物理地址扩展)

假设您试图在AArch32中使用两级页表,并在物理上寻址40位

ARMv8-A ARM有关于超级节支持的文档

  • ID\u MMFR3\u EL1-位31:28
  • 0b0000
    支持超级节
  • 0b1111
    不支持超节
G5.3翻译表

  • 短描述符格式
  • 最多40位的输出地址
  • 通过使用16MB粒度的超节,支持大于32位的PAs

长描述符始终支持40位地址。

由于ARMv8支持64位地址(使用物理总线),所有ARMv8-a都应该激活LPAE

对于一些ARMv7,它们可能/可能没有LPAE,AArch32文档可能是其中一个手册的副本/粘贴。我相信CP15 ID_MMFR0有这个信息,如果你想成为更多ARM CPU的通用处理器。其值应为VSMA字段的0b0101。它被称为对长描述符的支持,长描述符通常被称为LPAE(用于大型物理地址扩展)

假设您试图在AArch32中使用两级页表,并在物理上寻址40位

ARMv8-A ARM有关于超级节支持的文档

  • ID\u MMFR3\u EL1-位31:28
  • 0b0000
    支持超级节
  • 0b1111
    不支持超节
G5.3翻译表

  • 短描述符格式
  • 最多40位的输出地址
  • 通过使用16MB粒度的超节,支持大于32位的PAs

长描述符始终支持40位地址。

您提到的VSMA值意味着支持长描述符格式转换表项。在我看来,这与40位输出地址无关,因为它们也可以使用短描述符格式(请参阅“超节的翻译流(K7-5554)”)。但是您关于Armv8的观点可能是正确的,我将进一步探讨这一点。您提到的VSMA值意味着支持长描述符格式的转换表条目。在我看来,这与40位输出地址无关,因为它们也可以使用短描述符格式(请参阅“超节的翻译流(K7-5554)”)。但您关于Armv8的观点可能是正确的,我将进一步研究这一点。