mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-08 05:43:53 +00:00
refactor(aarch64): rename do_panic and el3_panic
Current panic call invokes do_panic which calls el3_panic, but now panic handles only panic from EL3 anid clear separation to use lower_el_panic() which handles panic from lower ELs. So now we can remove do_panic and just call el3_panic for all panics. Change-Id: I739c69271b9fb15c1176050877a9b0c0394dc739 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
This commit is contained in:
parent
f300ef6628
commit
bd62ce98d2
9 changed files with 21 additions and 29 deletions
|
@ -201,7 +201,7 @@ func delegate_async_ea
|
||||||
*/
|
*/
|
||||||
ubfx x2, x1, #ESR_EC_SHIFT, #ESR_EC_LENGTH
|
ubfx x2, x1, #ESR_EC_SHIFT, #ESR_EC_LENGTH
|
||||||
cmp x2, EC_SERROR
|
cmp x2, EC_SERROR
|
||||||
b.ne do_panic
|
b.ne el3_panic
|
||||||
/*
|
/*
|
||||||
* Check for Implementation Defined Syndrome. If so, skip checking
|
* Check for Implementation Defined Syndrome. If so, skip checking
|
||||||
* Uncontainable error type from the syndrome as the format is unknown.
|
* Uncontainable error type from the syndrome as the format is unknown.
|
||||||
|
|
|
@ -563,7 +563,7 @@ sysreg_handler64:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
tst w0, w0
|
tst w0, w0
|
||||||
b.mi do_panic /* negative return value: panic */
|
b.mi el3_panic /* negative return value: panic */
|
||||||
b.eq 1f /* zero: do not change ELR_EL3 */
|
b.eq 1f /* zero: do not change ELR_EL3 */
|
||||||
|
|
||||||
/* advance the PC to continue after the instruction */
|
/* advance the PC to continue after the instruction */
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
.globl asm_print_hex
|
.globl asm_print_hex
|
||||||
.globl asm_print_hex_bits
|
.globl asm_print_hex_bits
|
||||||
.globl asm_assert
|
.globl asm_assert
|
||||||
.globl do_panic
|
.globl el3_panic
|
||||||
.globl report_exception
|
.globl report_exception
|
||||||
.globl report_prefetch_abort
|
.globl report_prefetch_abort
|
||||||
.globl report_data_abort
|
.globl report_data_abort
|
||||||
|
@ -159,14 +159,14 @@ asm_print_hex_bits:
|
||||||
endfunc asm_print_hex
|
endfunc asm_print_hex
|
||||||
|
|
||||||
/***********************************************************
|
/***********************************************************
|
||||||
* The common implementation of do_panic for all BL stages
|
* The common implementation of el3_panic for all BL stages
|
||||||
***********************************************************/
|
***********************************************************/
|
||||||
|
|
||||||
.section .rodata.panic_str, "aS"
|
.section .rodata.panic_str, "aS"
|
||||||
panic_msg: .asciz "PANIC at PC : 0x"
|
panic_msg: .asciz "PANIC at PC : 0x"
|
||||||
panic_end: .asciz "\r\n"
|
panic_end: .asciz "\r\n"
|
||||||
|
|
||||||
func do_panic
|
func el3_panic
|
||||||
/* Have LR copy point to PC at the time of panic */
|
/* Have LR copy point to PC at the time of panic */
|
||||||
sub r6, lr, #4
|
sub r6, lr, #4
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ func do_panic
|
||||||
_panic_handler:
|
_panic_handler:
|
||||||
mov lr, r6
|
mov lr, r6
|
||||||
b plat_panic_handler
|
b plat_panic_handler
|
||||||
endfunc do_panic
|
endfunc el3_panic
|
||||||
|
|
||||||
/***********************************************************
|
/***********************************************************
|
||||||
* This function is called from the vector table for
|
* This function is called from the vector table for
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
.globl asm_print_hex_bits
|
.globl asm_print_hex_bits
|
||||||
.globl asm_print_newline
|
.globl asm_print_newline
|
||||||
.globl asm_assert
|
.globl asm_assert
|
||||||
.globl do_panic
|
|
||||||
.globl el3_panic
|
.globl el3_panic
|
||||||
|
|
||||||
/* Since the max decimal input number is 65536 */
|
/* Since the max decimal input number is 65536 */
|
||||||
|
@ -146,30 +145,24 @@ func asm_print_newline
|
||||||
endfunc asm_print_newline
|
endfunc asm_print_newline
|
||||||
|
|
||||||
/***********************************************************
|
/***********************************************************
|
||||||
* The common implementation of do_panic for all BL stages
|
* The common implementation of el3_panic for all BL stages
|
||||||
***********************************************************/
|
***********************************************************/
|
||||||
|
|
||||||
.section .rodata.panic_str, "aS"
|
.section .rodata.panic_str, "aS"
|
||||||
panic_msg: .asciz "PANIC at PC : 0x"
|
panic_msg: .asciz "PANIC at PC : 0x"
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
/* ---------------------------------------------------------------------------
|
||||||
* do_panic assumes that it is invoked from a C Runtime Environment ie a
|
* el3_panic assumes that it is invoked from a C Runtime Environment ie a
|
||||||
* valid stack exists. This call will not return.
|
* valid stack exists. This call will not return.
|
||||||
* Clobber list : if CRASH_REPORTING is not enabled then x30, x0 - x6
|
* Clobber list : if CRASH_REPORTING is not enabled then x30, x0 - x6
|
||||||
* ---------------------------------------------------------------------------
|
* ---------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
func do_panic
|
func el3_panic
|
||||||
#if CRASH_REPORTING && defined(IMAGE_BL31)
|
#if CRASH_REPORTING && defined(IMAGE_BL31)
|
||||||
b report_el3_panic
|
b report_el3_panic
|
||||||
#endif /* CRASH_REPORTING && IMAGE_BL31 */
|
#endif /* CRASH_REPORTING && IMAGE_BL31 */
|
||||||
|
|
||||||
panic_common:
|
|
||||||
/*
|
|
||||||
* el3_panic will be redefined by the BL31
|
|
||||||
* crash reporting mechanism (if enabled)
|
|
||||||
*/
|
|
||||||
el3_panic:
|
|
||||||
mov x6, x30
|
mov x6, x30
|
||||||
bl plat_crash_console_init
|
bl plat_crash_console_init
|
||||||
|
|
||||||
|
@ -196,4 +189,4 @@ _panic_handler:
|
||||||
mov x30, x6
|
mov x30, x6
|
||||||
b plat_panic_handler
|
b plat_panic_handler
|
||||||
|
|
||||||
endfunc do_panic
|
endfunc el3_panic
|
|
@ -3205,8 +3205,8 @@ as Group 0 secure interrupt, Group 1 secure interrupt or Group 1 NS interrupt.
|
||||||
Common helper functions
|
Common helper functions
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Function : do_panic()
|
Function : el3_panic()
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
@ -3214,9 +3214,8 @@ Function : do_panic()
|
||||||
Return : void
|
Return : void
|
||||||
|
|
||||||
This API is called from assembly files when encountering a critical failure that
|
This API is called from assembly files when encountering a critical failure that
|
||||||
cannot be recovered from. It also invokes elx_panic() which allows to report a
|
cannot be recovered from. This function assumes that it is invoked from a C
|
||||||
crash from lower exception level. This function assumes that it is invoked from
|
runtime environment i.e. valid stack exists. This call **must not** return.
|
||||||
a C runtime environment i.e. valid stack exists. This call **must not** return.
|
|
||||||
|
|
||||||
Function : panic()
|
Function : panic()
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -3228,7 +3227,7 @@ Function : panic()
|
||||||
|
|
||||||
This API called from C files when encountering a critical failure that cannot
|
This API called from C files when encountering a critical failure that cannot
|
||||||
be recovered from. This function in turn prints backtrace (if enabled) and calls
|
be recovered from. This function in turn prints backtrace (if enabled) and calls
|
||||||
do_panic(). This call **must not** return.
|
el3_panic(). This call **must not** return.
|
||||||
|
|
||||||
Crash Reporting mechanism (in BL31)
|
Crash Reporting mechanism (in BL31)
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved.
|
* Copyright (c) 2015-2023 Arm Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -99,14 +99,14 @@ void backtrace(const char *cookie);
|
||||||
#define backtrace(x)
|
#define backtrace(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void __dead2 do_panic(void);
|
void __dead2 el3_panic(void);
|
||||||
void __dead2 report_elx_panic(void);
|
void __dead2 report_elx_panic(void);
|
||||||
|
|
||||||
#define panic() \
|
#define panic() \
|
||||||
do { \
|
do { \
|
||||||
backtrace(__func__); \
|
backtrace(__func__); \
|
||||||
console_flush(); \
|
console_flush(); \
|
||||||
do_panic(); \
|
el3_panic(); \
|
||||||
} while (false)
|
} while (false)
|
||||||
|
|
||||||
#if CRASH_REPORTING
|
#if CRASH_REPORTING
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
.globl el2_panic
|
.globl el2_panic
|
||||||
|
|
||||||
/***********************************************************
|
/***********************************************************
|
||||||
* The common implementation of do_panic for all BL stages
|
* The common implementation of el3_panic for all BL stages
|
||||||
***********************************************************/
|
***********************************************************/
|
||||||
|
|
||||||
.section .rodata.panic_str, "aS"
|
.section .rodata.panic_str, "aS"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2020, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2013-2023, Arm Limited and Contributors. All rights reserved.
|
||||||
* Copyright (c) 2015-2021, Renesas Electronics Corporation. All rights reserved.
|
* Copyright (c) 2015-2021, Renesas Electronics Corporation. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
@ -126,7 +126,7 @@ warm_reset:
|
||||||
exit:
|
exit:
|
||||||
ret x9
|
ret x9
|
||||||
_panic:
|
_panic:
|
||||||
b do_panic
|
b el3_panic
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
endfunc plat_get_my_entrypoint
|
endfunc plat_get_my_entrypoint
|
||||||
|
|
Loading…
Add table
Reference in a new issue