Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56f7a440 authored by James Hogan's avatar James Hogan
Browse files

KVM: MIPS: Add VZ support to build system



Add support for the MIPS Virtualization (VZ) ASE to the MIPS KVM build
system. For now KVM can only be configured for T&E or VZ and not both,
but the design of the user facing APIs support the possibility of having
both available, so this could change in future.

Note that support for various optional guest features (some of which
can't be turned off) are implemented in immediately following commits,
so although it should now be possible to build VZ support, it may not
work yet on your hardware.

Signed-off-by: default avatarJames 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: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
parent c992a4f6
Loading
Loading
Loading
Loading
+25 −2
Original line number Original line Diff line number Diff line
@@ -26,11 +26,34 @@ config KVM
	select SRCU
	select SRCU
	---help---
	---help---
	  Support for hosting Guest kernels.
	  Support for hosting Guest kernels.
	  Currently supported on MIPS32 processors.

choice
	prompt "Virtualization mode"
	depends on KVM
	default KVM_MIPS_TE

config KVM_MIPS_TE
	bool "Trap & Emulate"
	---help---
	  Use trap and emulate to virtualize 32-bit guests in user mode. This
	  does not require any special hardware Virtualization support beyond
	  standard MIPS32/64 r2 or later, but it does require the guest kernel
	  to be configured with CONFIG_KVM_GUEST=y so that it resides in the
	  user address segment.

config KVM_MIPS_VZ
	bool "MIPS Virtualization (VZ) ASE"
	---help---
	  Use the MIPS Virtualization (VZ) ASE to virtualize guests. This
	  supports running unmodified guest kernels (with CONFIG_KVM_GUEST=n),
	  but requires hardware support.

endchoice


config KVM_MIPS_DYN_TRANS
config KVM_MIPS_DYN_TRANS
	bool "KVM/MIPS: Dynamic binary translation to reduce traps"
	bool "KVM/MIPS: Dynamic binary translation to reduce traps"
	depends on KVM
	depends on KVM_MIPS_TE
	default y
	---help---
	---help---
	  When running in Trap & Emulate mode patch privileged
	  When running in Trap & Emulate mode patch privileged
	  instructions to reduce the number of traps.
	  instructions to reduce the number of traps.
+7 −1
Original line number Original line Diff line number Diff line
@@ -9,9 +9,15 @@ common-objs-$(CONFIG_CPU_HAS_MSA) += msa.o


kvm-objs := $(common-objs-y) mips.o emulate.o entry.o \
kvm-objs := $(common-objs-y) mips.o emulate.o entry.o \
	    interrupt.o stats.o commpage.o \
	    interrupt.o stats.o commpage.o \
	    dyntrans.o trap_emul.o fpu.o
	    fpu.o
kvm-objs += hypcall.o
kvm-objs += hypcall.o
kvm-objs += mmu.o
kvm-objs += mmu.o


ifdef CONFIG_KVM_MIPS_VZ
kvm-objs		+= vz.o
else
kvm-objs		+= dyntrans.o
kvm-objs		+= trap_emul.o
endif
obj-$(CONFIG_KVM)	+= kvm.o
obj-$(CONFIG_KVM)	+= kvm.o
obj-y			+= callback.o tlb.o
obj-y			+= callback.o tlb.o