KVM: MIPS: Add 64BIT capability
Add a new KVM_CAP_MIPS_64BIT capability to indicate that 64-bit MIPS guests are available and supported. In this case it should still be possible to run 32-bit guest code. If not available it won't be possible to run 64-bit guest code and the instructions may not be available, or the kernel may not support full context switching of 64-bit registers. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: "Radim Krčmář" <rkrcmar@redhat.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Cc: linux-doc@vger.kernel.org
This commit is contained in:
parent
a8a3c42677
commit
578fd61d2d
|
@ -4192,3 +4192,28 @@ to KVM_CREATE_VM to create a VM which utilises it.
|
||||||
|
|
||||||
If KVM_CHECK_EXTENSION on a kvm VM handle indicates that this capability is
|
If KVM_CHECK_EXTENSION on a kvm VM handle indicates that this capability is
|
||||||
available, it means that the VM is using trap & emulate.
|
available, it means that the VM is using trap & emulate.
|
||||||
|
|
||||||
|
8.7 KVM_CAP_MIPS_64BIT
|
||||||
|
|
||||||
|
Architectures: mips
|
||||||
|
|
||||||
|
This capability indicates the supported architecture type of the guest, i.e. the
|
||||||
|
supported register and address width.
|
||||||
|
|
||||||
|
The values returned when this capability is checked by KVM_CHECK_EXTENSION on a
|
||||||
|
kvm VM handle correspond roughly to the CP0_Config.AT register field, and should
|
||||||
|
be checked specifically against known values (see below). All other values are
|
||||||
|
reserved.
|
||||||
|
|
||||||
|
0: MIPS32 or microMIPS32.
|
||||||
|
Both registers and addresses are 32-bits wide.
|
||||||
|
It will only be possible to run 32-bit guest code.
|
||||||
|
|
||||||
|
1: MIPS64 or microMIPS64 with access only to 32-bit compatibility segments.
|
||||||
|
Registers are 64-bits wide, but addresses are 32-bits wide.
|
||||||
|
64-bit guest code may run but cannot access MIPS64 memory segments.
|
||||||
|
It will also be possible to run 32-bit guest code.
|
||||||
|
|
||||||
|
2: MIPS64 or microMIPS64 with access to all address segments.
|
||||||
|
Both registers and addresses are 64-bits wide.
|
||||||
|
It will be possible to run 64-bit or 32-bit guest code.
|
||||||
|
|
|
@ -889,6 +889,7 @@ struct kvm_ppc_resize_hpt {
|
||||||
#define KVM_CAP_IMMEDIATE_EXIT 136
|
#define KVM_CAP_IMMEDIATE_EXIT 136
|
||||||
#define KVM_CAP_MIPS_VZ 137
|
#define KVM_CAP_MIPS_VZ 137
|
||||||
#define KVM_CAP_MIPS_TE 138
|
#define KVM_CAP_MIPS_TE 138
|
||||||
|
#define KVM_CAP_MIPS_64BIT 139
|
||||||
|
|
||||||
#ifdef KVM_CAP_IRQ_ROUTING
|
#ifdef KVM_CAP_IRQ_ROUTING
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue