162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Makefile for Kernel-based Virtual Machine module
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciccflags-y += -I $(srctree)/$(src)
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciinclude $(srctree)/virt/kvm/Makefile.kvm
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciobj-$(CONFIG_KVM) += kvm.o
1162306a36Sopenharmony_ciobj-$(CONFIG_KVM) += hyp/
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cikvm-y += arm.o mmu.o mmio.o psci.o hypercalls.o pvtime.o \
1462306a36Sopenharmony_ci	 inject_fault.o va_layout.o handle_exit.o \
1562306a36Sopenharmony_ci	 guest.o debug.o reset.o sys_regs.o stacktrace.o \
1662306a36Sopenharmony_ci	 vgic-sys-reg-v3.o fpsimd.o pkvm.o \
1762306a36Sopenharmony_ci	 arch_timer.o trng.o vmid.o emulate-nested.o nested.o \
1862306a36Sopenharmony_ci	 vgic/vgic.o vgic/vgic-init.o \
1962306a36Sopenharmony_ci	 vgic/vgic-irqfd.o vgic/vgic-v2.o \
2062306a36Sopenharmony_ci	 vgic/vgic-v3.o vgic/vgic-v4.o \
2162306a36Sopenharmony_ci	 vgic/vgic-mmio.o vgic/vgic-mmio-v2.o \
2262306a36Sopenharmony_ci	 vgic/vgic-mmio-v3.o vgic/vgic-kvm-device.o \
2362306a36Sopenharmony_ci	 vgic/vgic-its.o vgic/vgic-debug.o
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_cikvm-$(CONFIG_HW_PERF_EVENTS)  += pmu-emul.o pmu.o
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cialways-y := hyp_constants.h hyp-constants.s
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cidefine rule_gen_hyp_constants
3062306a36Sopenharmony_ci	$(call filechk,offsets,__HYP_CONSTANTS_H__)
3162306a36Sopenharmony_ciendef
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciCFLAGS_hyp-constants.o = -I $(srctree)/$(src)/hyp/include
3462306a36Sopenharmony_ci$(obj)/hyp-constants.s: $(src)/hyp/hyp-constants.c FORCE
3562306a36Sopenharmony_ci	$(call if_changed_dep,cc_s_c)
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci$(obj)/hyp_constants.h: $(obj)/hyp-constants.s FORCE
3862306a36Sopenharmony_ci	$(call if_changed_rule,gen_hyp_constants)
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ciobj-kvm := $(addprefix $(obj)/, $(kvm-y))
4162306a36Sopenharmony_ci$(obj-kvm): $(obj)/hyp_constants.h
42