target-arm queue:
* revert SMCCC/PSCI change, as it regresses some usecases for some boards -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmGbnjsZHHBldGVyLm1h eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3qANEACGPK8M1HVvh2aVPlX+Dd2t RCA7XyQTWlQaLqppe3II6blCjPKWRfmmaJzolRvjpZnp4z4fBYDd7QvHb0mDFLIu nAyaLbtW103pDR1MaVs742tFVQCq7btE3FtNe0k6c9XbyNgGIGC7+Gzdx0jRMKFT C2zkN99LaDjz0yPQfn7Y/Opzjxfv+wplf0sDlqrL1r4ALdt3BM9Sm4r4GPzkIlqT BxxxB8FYwDWf746ounqsENDUt0yJ12zyh5xwvmQIu29cKuQqPSTTKASzljlK8Peg KuWPuNzjwgiYkPZoNhRlmN9v2tokC5rkdRz4is4apiW761hBqMX02iLVOHGx61io YddrimmaYUXLZrS7JCkvrXShFsbSExeSmg8yb/WvElInwJFao8x9EkKhtbfcFv9f meivFGsDil/m1evzmwUR9W+pz95pcZp5Xoi17jQfv7jgq+/16JT6/vULZaK144tq U/WnhIsDaVBQyjY9bGgUpA25hi+gW5Stk3uXHMk4wKLSWbqjqQIsXazAQCq5LtaY 3d+TgcHdsqsHMU77eMK80J4dObBMxsQ8hpXA+Vbd3ANdjbH1jy3yPMgcuGxbJZAg 5Eje5BCvBk8dk2pv20FFuSPbTKcr77UFCqW3eUG0Y04hBt+QpSSPeQzkAwjJTnQU k1XestD9DjxjHBQrVvDF4A== =gNAF -----END PGP SIGNATURE----- Merge tag 'pull-target-arm-20211122' of https://git.linaro.org/people/pmaydell/qemu-arm into staging target-arm queue: * revert SMCCC/PSCI change, as it regresses some usecases for some boards # gpg: Signature made Mon 22 Nov 2021 02:42:19 PM CET # gpg: using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE # gpg: issuer "peter.maydell@linaro.org" # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [full] # gpg: aka "Peter Maydell <pmaydell@gmail.com>" [full] # gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [full] * tag 'pull-target-arm-20211122' of https://git.linaro.org/people/pmaydell/qemu-arm: Revert "arm: tcg: Adhere to SMCCC 1.3 section 5.2" Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
commit
89d2f9e4c6
@ -27,13 +27,15 @@
|
|||||||
|
|
||||||
bool arm_is_psci_call(ARMCPU *cpu, int excp_type)
|
bool arm_is_psci_call(ARMCPU *cpu, int excp_type)
|
||||||
{
|
{
|
||||||
/*
|
/* Return true if the r0/x0 value indicates a PSCI call and
|
||||||
* Return true if the exception type matches the configured PSCI conduit.
|
* the exception type matches the configured PSCI conduit. This is
|
||||||
* This is called before the SMC/HVC instruction is executed, to decide
|
* called before the SMC/HVC instruction is executed, to decide whether
|
||||||
* whether we should treat it as a PSCI call or with the architecturally
|
* we should treat it as a PSCI call or with the architecturally
|
||||||
* defined behaviour for an SMC or HVC (which might be UNDEF or trap
|
* defined behaviour for an SMC or HVC (which might be UNDEF or trap
|
||||||
* to EL2 or to EL3).
|
* to EL2 or to EL3).
|
||||||
*/
|
*/
|
||||||
|
CPUARMState *env = &cpu->env;
|
||||||
|
uint64_t param = is_a64(env) ? env->xregs[0] : env->regs[0];
|
||||||
|
|
||||||
switch (excp_type) {
|
switch (excp_type) {
|
||||||
case EXCP_HVC:
|
case EXCP_HVC:
|
||||||
@ -50,7 +52,27 @@ bool arm_is_psci_call(ARMCPU *cpu, int excp_type)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
switch (param) {
|
||||||
|
case QEMU_PSCI_0_2_FN_PSCI_VERSION:
|
||||||
|
case QEMU_PSCI_0_2_FN_MIGRATE_INFO_TYPE:
|
||||||
|
case QEMU_PSCI_0_2_FN_AFFINITY_INFO:
|
||||||
|
case QEMU_PSCI_0_2_FN64_AFFINITY_INFO:
|
||||||
|
case QEMU_PSCI_0_2_FN_SYSTEM_RESET:
|
||||||
|
case QEMU_PSCI_0_2_FN_SYSTEM_OFF:
|
||||||
|
case QEMU_PSCI_0_1_FN_CPU_ON:
|
||||||
|
case QEMU_PSCI_0_2_FN_CPU_ON:
|
||||||
|
case QEMU_PSCI_0_2_FN64_CPU_ON:
|
||||||
|
case QEMU_PSCI_0_1_FN_CPU_OFF:
|
||||||
|
case QEMU_PSCI_0_2_FN_CPU_OFF:
|
||||||
|
case QEMU_PSCI_0_1_FN_CPU_SUSPEND:
|
||||||
|
case QEMU_PSCI_0_2_FN_CPU_SUSPEND:
|
||||||
|
case QEMU_PSCI_0_2_FN64_CPU_SUSPEND:
|
||||||
|
case QEMU_PSCI_0_1_FN_MIGRATE:
|
||||||
|
case QEMU_PSCI_0_2_FN_MIGRATE:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void arm_handle_psci_call(ARMCPU *cpu)
|
void arm_handle_psci_call(ARMCPU *cpu)
|
||||||
@ -172,9 +194,10 @@ void arm_handle_psci_call(ARMCPU *cpu)
|
|||||||
break;
|
break;
|
||||||
case QEMU_PSCI_0_1_FN_MIGRATE:
|
case QEMU_PSCI_0_1_FN_MIGRATE:
|
||||||
case QEMU_PSCI_0_2_FN_MIGRATE:
|
case QEMU_PSCI_0_2_FN_MIGRATE:
|
||||||
default:
|
|
||||||
ret = QEMU_PSCI_RET_NOT_SUPPORTED;
|
ret = QEMU_PSCI_RET_NOT_SUPPORTED;
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
g_assert_not_reached();
|
||||||
}
|
}
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
Loading…
Reference in New Issue
Block a user