[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v9 11/11] hvf: arm: Adhere to SMCCC 1.3 section 5.2
From: |
Peter Maydell |
Subject: |
Re: [PATCH v9 11/11] hvf: arm: Adhere to SMCCC 1.3 section 5.2 |
Date: |
Mon, 13 Sep 2021 09:52:20 +0100 |
On Mon, 13 Sept 2021 at 00:08, Alexander Graf <agraf@csgraf.de> wrote:
>
> The SMCCC 1.3 spec section 5.2 says
>
> The Unknown SMC Function Identifier is a sign-extended value of (-1)
> that is returned in the R0, W0 or X0 registers. An implementation must
> return this error code when it receives:
>
> * An SMC or HVC call with an unknown Function Identifier
> * An SMC or HVC call for a removed Function Identifier
> * An SMC64/HVC64 call from AArch32 state
>
> To comply with these statements, let's always return -1 when we encounter
> an unknown HVC or SMC call.
>
> Signed-off-by: Alexander Graf <agraf@csgraf.de>
>
> ---
>
> v7 -> v8:
>
> - fix checkpatch
>
> v8 -> v9:
>
> - Remove Windows specifics and just comply with SMCCC spec
> ---
> target/arm/hvf/hvf.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
> index b62cfa3976..6a7ccfa91e 100644
> --- a/target/arm/hvf/hvf.c
> +++ b/target/arm/hvf/hvf.c
> @@ -1177,7 +1177,8 @@ int hvf_vcpu_exec(CPUState *cpu)
> cpu_synchronize_state(cpu);
> if (hvf_handle_psci_call(cpu)) {
> trace_hvf_unknown_hvf(env->xregs[0]);
> - hvf_raise_exception(cpu, EXCP_UDEF, syn_uncategorized());
> + /* SMCCC 1.3 section 5.2 says every unknown HVC call returns -1
> */
> + env->xregs[0] = -1;
> }
> break;
> case EC_AA64_SMC:
> @@ -1186,7 +1187,9 @@ int hvf_vcpu_exec(CPUState *cpu)
> advance_pc = true;
> } else {
> trace_hvf_unknown_smc(env->xregs[0]);
> - hvf_raise_exception(cpu, EXCP_UDEF, syn_uncategorized());
> + /* SMCCC 1.3 section 5.2 says every unknown SMC call returns -1
> */
> + env->xregs[0] = -1;
> + advance_pc = true;
> }
> break;
> default:
This should be squashed into whatever earlier patch added this code.
thanks
-- PMM
- [PATCH v9 05/11] arm/hvf: Add a WFI handler, (continued)
- [PATCH v9 05/11] arm/hvf: Add a WFI handler, Alexander Graf, 2021/09/12
- [PATCH v9 03/11] hvf: Introduce hvf_arch_init() callback, Alexander Graf, 2021/09/12
- [PATCH v9 04/11] hvf: Add Apple Silicon support, Alexander Graf, 2021/09/12
- [PATCH v9 09/11] hvf: arm: Add rudimentary PMC support, Alexander Graf, 2021/09/12
- [PATCH v9 10/11] arm: tcg: Adhere to SMCCC 1.3 section 5.2, Alexander Graf, 2021/09/12
- [PATCH v9 08/11] arm: Add Hypervisor.framework build target, Alexander Graf, 2021/09/12
- [PATCH v9 06/11] hvf: arm: Implement -cpu host, Alexander Graf, 2021/09/12
- [PATCH v9 11/11] hvf: arm: Adhere to SMCCC 1.3 section 5.2, Alexander Graf, 2021/09/12
- Re: [PATCH v9 11/11] hvf: arm: Adhere to SMCCC 1.3 section 5.2,
Peter Maydell <=
- [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Alexander Graf, 2021/09/12
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Peter Maydell, 2021/09/13
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Alexander Graf, 2021/09/13
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Peter Maydell, 2021/09/13
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Alexander Graf, 2021/09/13
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Peter Maydell, 2021/09/13
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Alexander Graf, 2021/09/13
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Marc Zyngier, 2021/09/15
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Alexander Graf, 2021/09/15
- Re: [PATCH v9 07/11] hvf: arm: Implement PSCI handling, Marc Zyngier, 2021/09/15