From be58c81aff4cd4c0ccf43dbd7998da4a6a08c03b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 19:43:51 +0200 Subject: Adding upstream version 2.10.0+dfsg. Signed-off-by: Daniel Baumann --- bl31/bl31_traps.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 bl31/bl31_traps.c (limited to 'bl31/bl31_traps.c') diff --git a/bl31/bl31_traps.c b/bl31/bl31_traps.c new file mode 100644 index 0000000..2cfe14a --- /dev/null +++ b/bl31/bl31_traps.c @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2022, ARM Limited. All rights reserved. + * Copyright (c) 2023, NVIDIA Corporation. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + * + * Dispatch synchronous system register traps from lower ELs. + */ + +#include +#include + +int handle_sysreg_trap(uint64_t esr_el3, cpu_context_t *ctx) +{ + uint64_t __unused opcode = esr_el3 & ISS_SYSREG_OPCODE_MASK; + +#if ENABLE_FEAT_RNG_TRAP + if ((opcode == ISS_SYSREG_OPCODE_RNDR) || (opcode == ISS_SYSREG_OPCODE_RNDRRS)) { + return plat_handle_rng_trap(esr_el3, ctx); + } +#endif + +#if IMPDEF_SYSREG_TRAP + if ((opcode & ISS_SYSREG_OPCODE_IMPDEF) == ISS_SYSREG_OPCODE_IMPDEF) { + return plat_handle_impdef_trap(esr_el3, ctx); + } +#endif + + return TRAP_RET_UNHANDLED; +} -- cgit v1.2.3