2013-01-21 06:28:06 +07:00
|
|
|
#
|
|
|
|
# Makefile for Kernel-based Virtual Machine module
|
|
|
|
#
|
|
|
|
|
|
|
|
plus_virt := $(call as-instr,.arch_extension virt,+virt)
|
|
|
|
ifeq ($(plus_virt),+virt)
|
|
|
|
plus_virt_def := -DREQUIRES_VIRT=1
|
|
|
|
endif
|
|
|
|
|
2017-01-26 21:20:51 +07:00
|
|
|
ccflags-y += -Iarch/arm/kvm -Ivirt/kvm/arm/vgic
|
2013-01-21 06:28:06 +07:00
|
|
|
CFLAGS_arm.o := -I. $(plus_virt_def)
|
|
|
|
CFLAGS_mmu.o := -I.
|
|
|
|
|
|
|
|
AFLAGS_init.o := -Wa,-march=armv7-a$(plus_virt)
|
|
|
|
AFLAGS_interrupts.o := -Wa,-march=armv7-a$(plus_virt)
|
|
|
|
|
ARM: KVM: move GIC/timer code to a common location
As KVM/arm64 is looming on the horizon, it makes sense to move some
of the common code to a single location in order to reduce duplication.
The code could live anywhere. Actually, most of KVM is already built
with a bunch of ugly ../../.. hacks in the various Makefiles, so we're
not exactly talking about style here. But maybe it is time to start
moving into a less ugly direction.
The include files must be in a "public" location, as they are accessed
from non-KVM files (arch/arm/kernel/asm-offsets.c).
For this purpose, introduce two new locations:
- virt/kvm/arm/ : x86 and ia64 already share the ioapic code in
virt/kvm, so this could be seen as a (very ugly) precedent.
- include/kvm/ : there is already an include/xen, and while the
intent is slightly different, this seems as good a location as
any
Eventually, we should probably have independant Makefiles at every
levels (just like everywhere else in the kernel), but this is just
the first step.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
2013-05-14 20:31:01 +07:00
|
|
|
KVM := ../../../virt/kvm
|
2015-06-05 22:21:49 +07:00
|
|
|
kvm-arm-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o $(KVM)/vfio.o
|
2013-01-21 06:28:06 +07:00
|
|
|
|
2016-01-02 22:09:54 +07:00
|
|
|
obj-$(CONFIG_KVM_ARM_HOST) += hyp/
|
2017-05-04 18:54:17 +07:00
|
|
|
|
2013-01-21 06:28:06 +07:00
|
|
|
obj-y += kvm-arm.o init.o interrupts.o
|
2017-05-04 18:54:17 +07:00
|
|
|
obj-y += handle_exit.o guest.o emulate.o reset.o
|
|
|
|
obj-y += coproc.o coproc_a15.o coproc_a7.o vgic-v3-coproc.o
|
|
|
|
obj-y += $(KVM)/arm/arm.o $(KVM)/arm/mmu.o $(KVM)/arm/mmio.o
|
|
|
|
obj-y += $(KVM)/arm/psci.o $(KVM)/arm/perf.o
|
2016-09-06 15:28:43 +07:00
|
|
|
obj-y += $(KVM)/arm/aarch32.o
|
2016-03-16 22:06:41 +07:00
|
|
|
|
|
|
|
obj-y += $(KVM)/arm/vgic/vgic.o
|
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-init.o
|
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-irqfd.o
|
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-v2.o
|
2016-09-12 21:49:24 +07:00
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-v3.o
|
2016-03-16 22:06:41 +07:00
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-mmio.o
|
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-mmio-v2.o
|
2016-09-12 21:49:24 +07:00
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-mmio-v3.o
|
2016-03-16 22:06:41 +07:00
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-kvm-device.o
|
2016-11-02 18:55:34 +07:00
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-its.o
|
2017-01-18 05:09:13 +07:00
|
|
|
obj-y += $(KVM)/arm/vgic/vgic-debug.o
|
2016-07-22 23:20:41 +07:00
|
|
|
obj-y += $(KVM)/irqchip.o
|
2015-03-11 20:21:31 +07:00
|
|
|
obj-y += $(KVM)/arm/arch_timer.o
|