fix(rme): fix realm vbar_el1 load address
Fix the position independent addressing of 'realm_vector' using adrp+add
instruction pair.
Calculate the base address of the 4KB aligned memory region that
contains the label 'realm_vector' using adrp instruction. Then to that
base address add the offset of 'realm_vector' (lower 12 bits).
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I9e08eea98293e2e03cecb8465cea0f2c9361795b
diff --git a/realm/aarch64/realm_entrypoint.S b/realm/aarch64/realm_entrypoint.S
index 016689f..0ea02db 100644
--- a/realm/aarch64/realm_entrypoint.S
+++ b/realm/aarch64/realm_entrypoint.S
@@ -93,8 +93,8 @@
/* Initialize architectural state. */
func arch_init
/* Set the exception vectors. */
- adr x0, realm_vector
- add x1, x1, :lo12:realm_vector
+ adrp x0, realm_vector
+ add x0, x0, :lo12:realm_vector
msr vbar_el1, x0
isb