1# SPDX-License-Identifier: GPL-2.0
2#
3# Makefile for Kernel-based Virtual Machine module
4#
5
6plus_virt := $(call as-instr,.arch_extension virt,+virt)
7ifeq ($(plus_virt),+virt)
8	plus_virt_def := -DREQUIRES_VIRT=1
9endif
10
11ccflags-y += -Iarch/arm/kvm -Ivirt/kvm/arm/vgic
12CFLAGS_arm.o := -I. $(plus_virt_def)
13CFLAGS_mmu.o := -I.
14
15AFLAGS_init.o := -Wa,-march=armv7-a$(plus_virt)
16AFLAGS_interrupts.o := -Wa,-march=armv7-a$(plus_virt)
17
18KVM := ../../../virt/kvm
19kvm-arm-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o $(KVM)/vfio.o
20
21obj-$(CONFIG_KVM_ARM_HOST) += hyp/
22
23obj-y += kvm-arm.o init.o interrupts.o
24obj-y += handle_exit.o guest.o emulate.o reset.o
25obj-y += coproc.o coproc_a15.o coproc_a7.o   vgic-v3-coproc.o
26obj-y += $(KVM)/arm/arm.o $(KVM)/arm/mmu.o $(KVM)/arm/mmio.o
27obj-y += $(KVM)/arm/psci.o $(KVM)/arm/perf.o
28obj-y += $(KVM)/arm/aarch32.o
29
30obj-y += $(KVM)/arm/vgic/vgic.o
31obj-y += $(KVM)/arm/vgic/vgic-init.o
32obj-y += $(KVM)/arm/vgic/vgic-irqfd.o
33obj-y += $(KVM)/arm/vgic/vgic-v2.o
34obj-y += $(KVM)/arm/vgic/vgic-v3.o
35obj-y += $(KVM)/arm/vgic/vgic-v4.o
36obj-y += $(KVM)/arm/vgic/vgic-mmio.o
37obj-y += $(KVM)/arm/vgic/vgic-mmio-v2.o
38obj-y += $(KVM)/arm/vgic/vgic-mmio-v3.o
39obj-y += $(KVM)/arm/vgic/vgic-kvm-device.o
40obj-y += $(KVM)/arm/vgic/vgic-its.o
41obj-y += $(KVM)/arm/vgic/vgic-debug.o
42obj-y += $(KVM)/irqchip.o
43obj-y += $(KVM)/arm/arch_timer.o
44