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

Commit b693919c authored by Xiantao Zhang's avatar Xiantao Zhang Committed by Avi Kivity
Browse files

KVM: ia64: Enable kvm build for ia64



Update the related Makefile and KConfig for kvm build

Signed-off-by: default avatarXiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent ad86b6c3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ config IA64
	select HAVE_OPROFILE
	select HAVE_KPROBES
	select HAVE_KRETPROBES
	select HAVE_KVM
	default y
	help
	  The Itanium Processor Family is Intel's 64-bit successor to
@@ -589,6 +590,8 @@ config MSPEC

source "fs/Kconfig"

source "arch/ia64/kvm/Kconfig"

source "lib/Kconfig"

#
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/
core-$(CONFIG_IA64_HP_ZX1)	+= arch/ia64/dig/
core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/
core-$(CONFIG_IA64_SGI_SN2)	+= arch/ia64/sn/
core-$(CONFIG_KVM) 		+= arch/ia64/kvm/

drivers-$(CONFIG_PCI)		+= arch/ia64/pci/
drivers-$(CONFIG_IA64_HP_SIM)	+= arch/ia64/hp/sim/

arch/ia64/kvm/Kconfig

0 → 100644
+46 −0
Original line number Diff line number Diff line
#
# KVM configuration
#
config HAVE_KVM
	bool

menuconfig VIRTUALIZATION
	bool "Virtualization"
	depends on HAVE_KVM || IA64
	default y
	---help---
	  Say Y here to get to see options for using your Linux host to run other
	  operating systems inside virtual machines (guests).
	  This option alone does not add any kernel code.

	  If you say N, all options in this submenu will be skipped and disabled.

if VIRTUALIZATION

config KVM
	tristate "Kernel-based Virtual Machine (KVM) support"
	depends on HAVE_KVM && EXPERIMENTAL
	select PREEMPT_NOTIFIERS
	select ANON_INODES
	---help---
	  Support hosting fully virtualized guest machines using hardware
	  virtualization extensions.  You will need a fairly recent
	  processor equipped with virtualization extensions. You will also
	  need to select one or more of the processor modules below.

	  This module provides access to the hardware capabilities through
	  a character device node named /dev/kvm.

	  To compile this as a module, choose M here: the module
	  will be called kvm.

	  If unsure, say N.

config KVM_INTEL
	tristate "KVM for Intel Itanium 2 processors support"
	depends on KVM && m
	---help---
	  Provides support for KVM on Itanium 2 processors equipped with the VT
	  extensions.

endif # VIRTUALIZATION

arch/ia64/kvm/Makefile

0 → 100644
+61 −0
Original line number Diff line number Diff line
#This Make file is to generate asm-offsets.h and build source.
#

#Generate asm-offsets.h for vmm module build
offsets-file := asm-offsets.h

always  := $(offsets-file)
targets := $(offsets-file)
targets += arch/ia64/kvm/asm-offsets.s
clean-files := $(addprefix $(objtree)/,$(targets) $(obj)/memcpy.S $(obj)/memset.S)

# Default sed regexp - multiline due to syntax constraints
define sed-y
	"/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
endef

quiet_cmd_offsets = GEN     $@
define cmd_offsets
	(set -e; \
	 echo "#ifndef __ASM_KVM_OFFSETS_H__"; \
	 echo "#define __ASM_KVM_OFFSETS_H__"; \
	 echo "/*"; \
	 echo " * DO NOT MODIFY."; \
	 echo " *"; \
	 echo " * This file was generated by Makefile"; \
	 echo " *"; \
	 echo " */"; \
	 echo ""; \
	 sed -ne $(sed-y) $<; \
	 echo ""; \
	 echo "#endif" ) > $@
endef
# We use internal rules to avoid the "is up to date" message from make
arch/ia64/kvm/asm-offsets.s: arch/ia64/kvm/asm-offsets.c
	$(call if_changed_dep,cc_s_c)

$(obj)/$(offsets-file): arch/ia64/kvm/asm-offsets.s
	$(call cmd,offsets)

#
# Makefile for Kernel-based Virtual Machine module
#

EXTRA_CFLAGS += -Ivirt/kvm -Iarch/ia64/kvm/

$(addprefix $(objtree)/,$(obj)/memcpy.S $(obj)/memset.S):
	$(shell ln -snf ../lib/memcpy.S $(src)/memcpy.S)
	$(shell ln -snf ../lib/memset.S $(src)/memset.S)

common-objs = $(addprefix ../../../virt/kvm/, kvm_main.o ioapic.o)

kvm-objs := $(common-objs) kvm-ia64.o kvm_fw.o
obj-$(CONFIG_KVM) += kvm.o

FORCE : $(obj)/$(offsets-file)
EXTRA_CFLAGS_vcpu.o += -mfixed-range=f2-f5,f12-f127
kvm-intel-objs = vmm.o vmm_ivt.o trampoline.o vcpu.o optvfault.o mmio.o \
	vtlb.o process.o
#Add link memcpy and memset to avoid possible structure assignment error
kvm-intel-objs += memset.o memcpy.o
obj-$(CONFIG_KVM_INTEL) += kvm-intel.o