mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 01:54:22 +00:00
fix(bl31): pass the EA bit to 'delegate_sync_ea'
During a synchronous exception, the 'enter_lower_el_sync_ea' handler tests the ESR_EL3 EA bit and calls 'report_unhandled_exception', if it is not set. EA = 0 and IFSC = SEA, seems to be a contradiction. EA provides further classification of a synchronous abort. A synchronous abort is determined by the IFSC value on an instruction fetch synchronous abort. As a result, EA will never be set to 1 on an instruction fetch synchronous abort and 'report_unhandled_exception' should not be called. This patch removes this behavior to allow the platform to handle the exception. Signed-off-by: Nicolas Benech <nbenech@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Change-Id: I3f004447ad4316d81649063e1ffb3ac644c83ede
This commit is contained in:
parent
17e76b5eb7
commit
df56e9d199
1 changed files with 1 additions and 5 deletions
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2022, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2022, NVIDIA Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -84,10 +85,6 @@ func enter_lower_el_sync_ea
|
|||
b 2f
|
||||
|
||||
1:
|
||||
/* Test for EA bit in the instruction syndrome */
|
||||
mrs x30, esr_el3
|
||||
tbz x30, #ESR_ISS_EABORT_EA_BIT, 3f
|
||||
|
||||
/*
|
||||
* Save general purpose and ARMv8.3-PAuth registers (if enabled).
|
||||
* If Secure Cycle Counter is not disabled in MDCR_EL3 when
|
||||
|
@ -114,7 +111,6 @@ func enter_lower_el_sync_ea
|
|||
ldp x2, x3, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_X2]
|
||||
ldp x4, x5, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_X4]
|
||||
|
||||
3:
|
||||
/* Synchronous exceptions other than the above are assumed to be EA */
|
||||
ldr x30, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_LR]
|
||||
no_ret report_unhandled_exception
|
||||
|
|
Loading…
Add table
Reference in a new issue