diff options
author | Scott Wood <scottwood@freescale.com> | 2011-12-20 10:34:43 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-04-08 05:51:19 -0400 |
commit | d30f6e480055e5be12e7a03fd11ea912a451daa5 (patch) | |
tree | e6c367e6f1da4da67b3a395a1a735a09e52067c0 /arch/powerpc/include/asm/kvm_asm.h | |
parent | cfac57847a67c4903f34a77e971521531bbc7c77 (diff) |
KVM: PPC: booke: category E.HV (GS-mode) support
Chips such as e500mc that implement category E.HV in Power ISA 2.06
provide hardware virtualization features, including a new MSR mode for
guest state. The guest OS can perform many operations without trapping
into the hypervisor, including transitions to and from guest userspace.
Since we can use SRR1[GS] to reliably tell whether an exception came from
guest state, instead of messing around with IVPR, we use DO_KVM similarly
to book3s.
Current issues include:
- Machine checks from guest state are not routed to the host handler.
- The guest can cause a host oops by executing an emulated instruction
in a page that lacks read permission. Existing e500/4xx support has
the same problem.
Includes work by Ashish Kalra <Ashish.Kalra@freescale.com>,
Varun Sethi <Varun.Sethi@freescale.com>, and
Liu Yu <yu.liu@freescale.com>.
Signed-off-by: Scott Wood <scottwood@freescale.com>
[agraf: remove pt_regs usage]
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/include/asm/kvm_asm.h')
-rw-r--r-- | arch/powerpc/include/asm/kvm_asm.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/kvm_asm.h b/arch/powerpc/include/asm/kvm_asm.h index 7b1f0e0fc653..097815233284 100644 --- a/arch/powerpc/include/asm/kvm_asm.h +++ b/arch/powerpc/include/asm/kvm_asm.h | |||
@@ -48,6 +48,14 @@ | |||
48 | #define BOOKE_INTERRUPT_SPE_FP_DATA 33 | 48 | #define BOOKE_INTERRUPT_SPE_FP_DATA 33 |
49 | #define BOOKE_INTERRUPT_SPE_FP_ROUND 34 | 49 | #define BOOKE_INTERRUPT_SPE_FP_ROUND 34 |
50 | #define BOOKE_INTERRUPT_PERFORMANCE_MONITOR 35 | 50 | #define BOOKE_INTERRUPT_PERFORMANCE_MONITOR 35 |
51 | #define BOOKE_INTERRUPT_DOORBELL 36 | ||
52 | #define BOOKE_INTERRUPT_DOORBELL_CRITICAL 37 | ||
53 | |||
54 | /* booke_hv */ | ||
55 | #define BOOKE_INTERRUPT_GUEST_DBELL 38 | ||
56 | #define BOOKE_INTERRUPT_GUEST_DBELL_CRIT 39 | ||
57 | #define BOOKE_INTERRUPT_HV_SYSCALL 40 | ||
58 | #define BOOKE_INTERRUPT_HV_PRIV 41 | ||
51 | 59 | ||
52 | /* book3s */ | 60 | /* book3s */ |
53 | 61 | ||