Add support for the PSCI SYSTEM_{OFF,RESET} calls. Match the behavior of the SYSTEM_EVENT based implementation and just terminate the VM. Signed-off-by: Oliver Upton <oliver.upton@xxxxxxxxx> --- arm/aarch64/psci.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arm/aarch64/psci.c b/arm/aarch64/psci.c index bfd4756..b73c287 100644 --- a/arm/aarch64/psci.c +++ b/arm/aarch64/psci.c @@ -33,6 +33,8 @@ static void psci_features(struct kvm_cpu *vcpu, struct arm_smccc_res *res) case PSCI_0_2_FN_AFFINITY_INFO: case PSCI_0_2_FN64_AFFINITY_INFO: case PSCI_0_2_FN_MIGRATE_INFO_TYPE: + case PSCI_0_2_FN_SYSTEM_OFF: + case PSCI_0_2_FN_SYSTEM_RESET: case ARM_SMCCC_VERSION_FUNC_ID: res->a0 = PSCI_RET_SUCCESS; break; @@ -195,6 +197,10 @@ void handle_psci(struct kvm_cpu *vcpu, struct arm_smccc_res *res) /* Trusted OS not present */ res->a0 = PSCI_0_2_TOS_MP; break; + case PSCI_0_2_FN_SYSTEM_OFF: + case PSCI_0_2_FN_SYSTEM_RESET: + kvm__reboot(vcpu->kvm); + break; default: res->a0 = PSCI_RET_NOT_SUPPORTED; } -- 2.41.0.162.gfafddb0af9-goog