From f300ef662844e4b4b766b317f8083b778f79e303 Mon Sep 17 00:00:00 2001 From: Govindraj Raja Date: Mon, 16 Jan 2023 16:44:45 +0000 Subject: [PATCH] refactor(aarch64): remove weak links to el3_panic Cleanup weak links to el3_panic and restrict crash_reporting usage to bl31. Crash reporting is not used with bl1, bl2 and weak linkage to el3_panic is used, this can cause ambiguity in understanding the code so remove this weak linkage and introduce funcs that should be used when we have crash reporting for el3 panics. Change-Id: Ic5c711143ba36898ef9574a078b8fa02effceb12 Signed-off-by: Govindraj Raja --- bl31/aarch64/crash_reporting.S | 6 +++--- common/aarch64/debug.S | 13 ++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/bl31/aarch64/crash_reporting.S b/bl31/aarch64/crash_reporting.S index 6b9767c84..4cec1103e 100644 --- a/bl31/aarch64/crash_reporting.S +++ b/bl31/aarch64/crash_reporting.S @@ -15,7 +15,7 @@ .globl report_unhandled_exception .globl report_unhandled_interrupt - .globl el3_panic + .globl report_el3_panic .globl report_elx_panic #if CRASH_REPORTING @@ -297,7 +297,7 @@ endfunc report_elx_panic * will not return. * ----------------------------------------------------- */ -func el3_panic +func report_el3_panic msr spsel, #MODE_SP_ELX prepare_crash_buf_save_x0_x1 adr x0, panic_msg @@ -455,7 +455,7 @@ print_el3_sys_regs: /* Done reporting */ no_ret plat_panic_handler -endfunc el3_panic +endfunc report_el3_panic #else /* CRASH_REPORTING */ func report_unhandled_exception diff --git a/common/aarch64/debug.S b/common/aarch64/debug.S index 5fdaf6417..6b92294c0 100644 --- a/common/aarch64/debug.S +++ b/common/aarch64/debug.S @@ -14,6 +14,7 @@ .globl asm_print_newline .globl asm_assert .globl do_panic + .globl el3_panic /* Since the max decimal input number is 65536 */ #define MAX_DEC_DIVISOR 10000 @@ -158,13 +159,10 @@ endfunc asm_print_newline * --------------------------------------------------------------------------- */ -/* This is for the non el3 BL stages to compile through */ - .weak el3_panic - func do_panic -#if CRASH_REPORTING - b el3_panic -#endif /* CRASH_REPORTING */ +#if CRASH_REPORTING && defined(IMAGE_BL31) + b report_el3_panic +#endif /* CRASH_REPORTING && IMAGE_BL31 */ panic_common: /* @@ -197,4 +195,5 @@ _panic_handler: * called, not the address of the call from el3_panic. */ mov x30, x6 b plat_panic_handler -endfunc do_panic + +endfunc do_panic \ No newline at end of file