[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 19/19] hvf: arm: Handle Windows 10 SMC call
From: |
Peter Maydell |
Subject: |
Re: [PATCH v8 19/19] hvf: arm: Handle Windows 10 SMC call |
Date: |
Tue, 15 Jun 2021 10:31:03 +0100 |
On Wed, 19 May 2021 at 21:23, Alexander Graf <agraf@csgraf.de> wrote:
>
> Windows 10 calls an SMCCC call via SMC unconditionally on boot. It lives
> in the trusted application call number space, but its purpose is unknown.
>
> In our current SMC implementation, we inject a UDEF for unknown SMC calls,
> including this one. However, Windows breaks on boot when we do this. Instead,
> let's return an error code.
>
> With this patch applied I can successfully boot the current Windows 10
> Insider Preview in HVF.
>
> Signed-off-by: Alexander Graf <agraf@csgraf.de>
>
> ---
>
> v7 -> v8:
>
> - fix checkpatch
> ---
> target/arm/hvf/hvf.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
> index 65c33e2a14..be670af578 100644
> --- a/target/arm/hvf/hvf.c
> +++ b/target/arm/hvf/hvf.c
> @@ -931,6 +931,10 @@ int hvf_vcpu_exec(CPUState *cpu)
> cpu_synchronize_state(cpu);
> if (!hvf_handle_psci_call(cpu)) {
> advance_pc = true;
> + } else if (env->xregs[0] == QEMU_SMCCC_TC_WINDOWS10_BOOT) {
> + /* This special SMC is called by Windows 10 on boot. Return
> error */
> + env->xregs[0] = -1;
> + advance_pc = true;
> } else {
> trace_hvf_unknown_smc(env->xregs[0]);
> hvf_raise_exception(env, EXCP_UDEF, syn_uncategorized());
Where can I find documentation on what this SMC call is and what
it's supposed to do ?
thanks
-- PMM
- Re: [PATCH v8 19/19] hvf: arm: Handle Windows 10 SMC call,
Peter Maydell <=