From a5c4212f0514e01a1c427ff8ed5cb6968764e929 Mon Sep 17 00:00:00 2001 From: Hsin-Hsiung Wang Date: Wed, 21 Feb 2024 13:58:51 +0800 Subject: [PATCH] refactor(cpus): replace adr with adr_l Replace "adr" with "adr_l" to handle symbols or labels that exceeds 1MB access range. This modification resolves the link error. Change-Id: I9eba2e34c0a303b40e4c7b3ea7c5b113f4c6d989 Signed-off-by: Hsin-Hsiung Wang --- bl31/aarch64/runtime_exceptions.S | 2 +- lib/cpus/aarch64/cpu_helpers.S | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bl31/aarch64/runtime_exceptions.S b/bl31/aarch64/runtime_exceptions.S index 962c3622e..e47b0821f 100644 --- a/bl31/aarch64/runtime_exceptions.S +++ b/bl31/aarch64/runtime_exceptions.S @@ -450,7 +450,7 @@ sync_handler64: * * handler = (base + off) + (index << log2(size)) */ - adr x11, (__RT_SVC_DESCS_START__ + RT_SVC_DESC_HANDLE) + adr_l x11, (__RT_SVC_DESCS_START__ + RT_SVC_DESC_HANDLE) lsl w10, w15, #RT_SVC_SIZE_LOG2 ldr x15, [x11, w10, uxtw] diff --git a/lib/cpus/aarch64/cpu_helpers.S b/lib/cpus/aarch64/cpu_helpers.S index 1ae31803e..3aa4f1552 100644 --- a/lib/cpus/aarch64/cpu_helpers.S +++ b/lib/cpus/aarch64/cpu_helpers.S @@ -165,13 +165,13 @@ func get_cpu_ops_ptr and w2, w2, w3 /* Get the cpu_ops end location */ - adr x5, (__CPU_OPS_END__ + CPU_MIDR) + adr_l x5, (__CPU_OPS_END__ + CPU_MIDR) /* Initialize the return parameter */ mov x0, #0 1: /* Get the cpu_ops start location */ - adr x4, (__CPU_OPS_START__ + CPU_MIDR) + adr_l x4, (__CPU_OPS_START__ + CPU_MIDR) 2: /* Check if we have reached end of list */