// IN VOID *MVA // R1\r
// );\r
ASM_FUNC(ArmUpdateTranslationTableEntry)\r
- mcr p15,0,R0,c7,c14,1 @ DCCIMVAC Clean data cache by MVA\r
- dsb\r
mcr p15,0,R1,c8,c7,1 @ TLBIMVA TLB Invalidate MVA\r
mcr p15,0,R9,c7,c5,6 @ BPIALL Invalidate Branch predictor array. R9 == NoOp\r
dsb\r
isb\r
bx lr\r
\r
+ASM_FUNC (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
ASM_FUNCTION_REMOVE_IF_UNREFERENCED\r