diff options
author | Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> | 2023-03-09 13:56:03 +0000 |
---|---|---|
committer | Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> | 2023-03-20 10:12:38 +0000 |
commit | f8a35797b919d8ea041480bd5eb2a334e7056e0b (patch) | |
tree | 6a034e8c016994d8fd448ee0bff4b338a0b2b02c /include/lib | |
parent | c41b8e90f75a7db82ee4384e3ffa5d8b9b8080e5 (diff) | |
download | arm-trusted-firmware-f8a35797b919d8ea041480bd5eb2a334e7056e0b.tar.gz |
fix(smccc): check smc_fid [23:17] bits
As per SMCCC spec Table 2.1 bit 23:17 must be zero (MBZ),
for all Fast Calls, when bit[31] == 1.
Adding this check to ensure SMC FIDs when get to the SMC handler
have these bits (23:17) cleared, if not capture and report them
as an unknown SMCs at the core.
Also the C runtime stack is copied to the stackpointer well in
advance, to leverage the existing el3_exit routine for unknown SMC.
Change-Id: I9972216db5ac164815011177945fb34dadc871b0
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Diffstat (limited to 'include/lib')
-rw-r--r-- | include/lib/smccc.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/include/lib/smccc.h b/include/lib/smccc.h index cce91afe2..63637d57e 100644 --- a/include/lib/smccc.h +++ b/include/lib/smccc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2022, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2023, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -37,9 +37,13 @@ #define FUNCID_OEN_MASK U(0x3f) #define FUNCID_OEN_WIDTH U(6) -#define FUNCID_SVE_HINT_SHIFT U(16) -#define FUNCID_SVE_HINT_MASK U(1) -#define FUNCID_SVE_HINT_WIDTH U(1) +#define FUNCID_FC_RESERVED_SHIFT U(17) +#define FUNCID_FC_RESERVED_MASK U(0x7f) +#define FUNCID_FC_RESERVED_WIDTH U(7) + +#define FUNCID_SVE_HINT_SHIFT U(16) +#define FUNCID_SVE_HINT_MASK U(1) +#define FUNCID_SVE_HINT_WIDTH U(1) #define FUNCID_NUM_SHIFT U(0) #define FUNCID_NUM_MASK U(0xffff) |