ID_AA64MMFR0_EL1, ID_AA64MMFR1_EL1 과 ID_AA64MMFR2_EL1 register값을 확인하면, 어떤 feature 들이 현재 ARM core에서 support 되는지 여부를 알 수 있다.
developer.arm.com/docs/ddi0595/b/aarch64-system-registers/id_aa64mmfr2_el1
developer.arm.com/docs/ddi0595/b/aarch64-system-registers/id_aa64mmfr1_el1
예를들어 현재 사용중인 ARMv8.4-NV 기능 지원 여부를 알고 싶은데, register 값이 ID_AA64MMFR2_EL1: 0x1011 이다.
위 링크한 문서에 따르면 ARMv8.4-NV기능은 아래 bit의 값을 읽고 알 수 있으며, 현재 [27:24]는 모두 0이다.
따라서, 해당 ARM core는 ARMv8.4-NV 기능을 지원하지 않는다.
NV, bits [27:24]
Nested Virtualization. If EL2 is implemented, indicates support for the use of nested virtualization. Defined values are: All other values are reserved. In Armv8.2, the only permitted value is 0b0000. In Armv8.3, the permitted values are:
The feature ARMv8.3-NV implements the functionality identified by the value 0b0001. In Armv8.4, the permitted values are:
The feature ARMv8.4-NV implements the functionality identified by the value 0b0010. |
'Programming > ARM' 카테고리의 다른 글
TTBR0_EL1, TTBR1_EL1, TTBR0_EL2, VTTBR_EL2, TTBR1_EL2 (1) | 2020.11.23 |
---|---|
NMI (nun-maskable interrupt) (0) | 2020.08.13 |
ARM core architecture version 확인하기 (0) | 2020.04.02 |
[arm] EL2 에서 EL1의 virtual address 보기 (0) | 2019.12.11 |
[armv8] ESL_EL2 분석 - stage2 data abort (0) | 2019.12.11 |