arch: aarch64: Branch SError vector table entry
Each vector table entry has 128-bytes to host the vector code. This is not always enough and in general it's better to branch to the actual exception handler elsewhere in memory. Move the SError entry to a branched code. Signed-off-by: Carlo Caione <ccaione@baylibre.com>
This commit is contained in:
parent
a13e5d5584
commit
6d05c57781
|
@ -95,12 +95,7 @@ SECTION_SUBSEC_FUNC(exc_vector_table,_vector_table_section,_vector_table)
|
|||
|
||||
/* Current EL with SPx / SError */
|
||||
.align 7
|
||||
z_arm64_enter_exc x0, x1
|
||||
|
||||
mov x1, sp
|
||||
mov x0, #0 /* K_ERR_CPU_EXCEPTION */
|
||||
|
||||
b z_arm64_fatal_error
|
||||
b z_arm64_serror
|
||||
|
||||
/* Lower EL using AArch64 / Synchronous */
|
||||
.align 7
|
||||
|
@ -134,3 +129,11 @@ SECTION_SUBSEC_FUNC(exc_vector_table,_vector_table_section,_vector_table)
|
|||
.align 7
|
||||
b .
|
||||
|
||||
GTEXT(z_arm64_serror)
|
||||
SECTION_FUNC(TEXT, z_arm64_serror)
|
||||
z_arm64_enter_exc x0, x1
|
||||
|
||||
mov x1, sp
|
||||
mov x0, #0 /* K_ERR_CPU_EXCEPTION */
|
||||
|
||||
b z_arm64_fatal_error
|
||||
|
|
Loading…
Reference in a new issue