]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/ArmLib/Arm/ArmLibSupport.asm
ArmPkg/ArmLib: add support for reading the max physical address space size
[mirror_edk2.git] / ArmPkg / Library / ArmLib / Arm / ArmLibSupport.asm
index 219140c22b131884ec1f339f90f28d4e58b7dfe3..3eb52875971d76565867665c2cbe9fe5516904dd 100644 (file)
   isb\r
   bx      lr\r
 \r
+ RVCT_ASM_EXPORT ArmGetPhysicalAddressBits\r
+  mrc     p15, 0, r0, c0, c1, 4   ; MMFR0\r
+  and     r0, r0, #0xf            ; VMSA [3:0]\r
+  cmp     r0, #5                  ; >= 5 implies LPAE support\r
+  movlt   r0, #32                 ; 32 bits if no LPAE\r
+  movge   r0, #40                 ; 40 bits if LPAE\r
+  bx      lr\r
+\r
   END\r