diff options
| author | Marc Zyngier <marc.zyngier@arm.com> | 2012-12-12 13:52:05 -0500 |
|---|---|---|
| committer | Marc Zyngier <marc.zyngier@arm.com> | 2013-06-12 11:40:32 -0400 |
| commit | dcd2e40c1e1cce302498d16d095b0f8a30326f74 (patch) | |
| tree | 4cfe34f1c08aa77a4ba14e0c4d38b3c8b044e79c /arch/arm64/include/uapi | |
| parent | 003300de6c3e51934fb52eb2677f6f4fb4996cbd (diff) | |
arm64: KVM: PSCI implementation
Wire the PSCI backend into the exit handling code.
Reviewed-by: Christopher Covington <cov@codeaurora.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'arch/arm64/include/uapi')
| -rw-r--r-- | arch/arm64/include/uapi/asm/kvm.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h index ebac919dc0ca..fb60f9037057 100644 --- a/arch/arm64/include/uapi/asm/kvm.h +++ b/arch/arm64/include/uapi/asm/kvm.h | |||
| @@ -69,6 +69,8 @@ struct kvm_regs { | |||
| 69 | #define KVM_VGIC_V2_DIST_SIZE 0x1000 | 69 | #define KVM_VGIC_V2_DIST_SIZE 0x1000 |
| 70 | #define KVM_VGIC_V2_CPU_SIZE 0x2000 | 70 | #define KVM_VGIC_V2_CPU_SIZE 0x2000 |
| 71 | 71 | ||
| 72 | #define KVM_ARM_VCPU_POWER_OFF 0 /* CPU is started in OFF state */ | ||
| 73 | |||
| 72 | struct kvm_vcpu_init { | 74 | struct kvm_vcpu_init { |
| 73 | __u32 target; | 75 | __u32 target; |
| 74 | __u32 features[7]; | 76 | __u32 features[7]; |
| @@ -141,6 +143,20 @@ struct kvm_arch_memory_slot { | |||
| 141 | /* Highest supported SPI, from VGIC_NR_IRQS */ | 143 | /* Highest supported SPI, from VGIC_NR_IRQS */ |
| 142 | #define KVM_ARM_IRQ_GIC_MAX 127 | 144 | #define KVM_ARM_IRQ_GIC_MAX 127 |
| 143 | 145 | ||
| 146 | /* PSCI interface */ | ||
| 147 | #define KVM_PSCI_FN_BASE 0x95c1ba5e | ||
| 148 | #define KVM_PSCI_FN(n) (KVM_PSCI_FN_BASE + (n)) | ||
| 149 | |||
| 150 | #define KVM_PSCI_FN_CPU_SUSPEND KVM_PSCI_FN(0) | ||
| 151 | #define KVM_PSCI_FN_CPU_OFF KVM_PSCI_FN(1) | ||
| 152 | #define KVM_PSCI_FN_CPU_ON KVM_PSCI_FN(2) | ||
| 153 | #define KVM_PSCI_FN_MIGRATE KVM_PSCI_FN(3) | ||
| 154 | |||
| 155 | #define KVM_PSCI_RET_SUCCESS 0 | ||
| 156 | #define KVM_PSCI_RET_NI ((unsigned long)-1) | ||
| 157 | #define KVM_PSCI_RET_INVAL ((unsigned long)-2) | ||
| 158 | #define KVM_PSCI_RET_DENIED ((unsigned long)-3) | ||
| 159 | |||
| 144 | #endif | 160 | #endif |
| 145 | 161 | ||
| 146 | #endif /* __ARM_KVM_H__ */ | 162 | #endif /* __ARM_KVM_H__ */ |
