Programming/ARM
[arm] EL2 에서 EL1의 virtual address 보기
decdream
2019. 12. 11. 15:58
EL2 mode 에서 동작하는 code 에서 vbar_el1 값을 읽으면 아래와 같이 보인다.
VBAR_EL1 FFFFFF8008082000
VBAR_EL2 00000000800BC800
vbar_el2 의 address 값을 d.l 로 보면, 아래와 같이 exception vector table을 볼 수 있으나, vbar_el1의 값을 따라가 보면 아무것도 볼 수 없다.
0x800BC800
_arm64_vectors_base:
.global arm_vectors_minimal
arm_vectors_minimal:
// SPSel == 0
_arm64_fault // Synchronous EL2
_arm64_fault // IRQ EL2
_arm64_fault // FIQ EL2
_arm64_fault // Error EL2
이유는 vbar_el1 에 저장된 값이 el1 에서 사용되는 virtual address 이고,
따라서 el1 으로 이동해서 이를 IPA나 PA로 변경해서 그 주소를 따라가야지만 el1 의 exception vector table code를 따라갈 수 있다.