18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Makefile for Kernel-based Virtual Machine module
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciccflags-y := -Ivirt/kvm -Iarch/powerpc/kvm
78c2ecf20Sopenharmony_ciKVM := ../../../virt/kvm
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cicommon-objs-y = $(KVM)/kvm_main.o $(KVM)/eventfd.o
108c2ecf20Sopenharmony_cicommon-objs-$(CONFIG_KVM_VFIO) += $(KVM)/vfio.o
118c2ecf20Sopenharmony_cicommon-objs-$(CONFIG_KVM_MMIO) += $(KVM)/coalesced_mmio.o
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cicommon-objs-y += powerpc.o emulate_loadstore.o
148c2ecf20Sopenharmony_ciobj-$(CONFIG_KVM_EXIT_TIMING) += timing.o
158c2ecf20Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_HANDLER) += book3s_exports.o
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciAFLAGS_booke_interrupts.o := -I$(objtree)/$(obj)
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_cikvm-e500-objs := \
208c2ecf20Sopenharmony_ci	$(common-objs-y) \
218c2ecf20Sopenharmony_ci	emulate.o \
228c2ecf20Sopenharmony_ci	booke.o \
238c2ecf20Sopenharmony_ci	booke_emulate.o \
248c2ecf20Sopenharmony_ci	booke_interrupts.o \
258c2ecf20Sopenharmony_ci	e500.o \
268c2ecf20Sopenharmony_ci	e500_mmu.o \
278c2ecf20Sopenharmony_ci	e500_mmu_host.o \
288c2ecf20Sopenharmony_ci	e500_emulate.o
298c2ecf20Sopenharmony_cikvm-objs-$(CONFIG_KVM_E500V2) := $(kvm-e500-objs)
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_cikvm-e500mc-objs := \
328c2ecf20Sopenharmony_ci	$(common-objs-y) \
338c2ecf20Sopenharmony_ci	emulate.o \
348c2ecf20Sopenharmony_ci	booke.o \
358c2ecf20Sopenharmony_ci	booke_emulate.o \
368c2ecf20Sopenharmony_ci	bookehv_interrupts.o \
378c2ecf20Sopenharmony_ci	e500mc.o \
388c2ecf20Sopenharmony_ci	e500_mmu.o \
398c2ecf20Sopenharmony_ci	e500_mmu_host.o \
408c2ecf20Sopenharmony_ci	e500_emulate.o
418c2ecf20Sopenharmony_cikvm-objs-$(CONFIG_KVM_E500MC) := $(kvm-e500mc-objs)
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_cikvm-book3s_64-builtin-objs-$(CONFIG_SPAPR_TCE_IOMMU) := \
448c2ecf20Sopenharmony_ci	book3s_64_vio_hv.o
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_cikvm-pr-y := \
478c2ecf20Sopenharmony_ci	fpu.o \
488c2ecf20Sopenharmony_ci	emulate.o \
498c2ecf20Sopenharmony_ci	book3s_paired_singles.o \
508c2ecf20Sopenharmony_ci	book3s_pr.o \
518c2ecf20Sopenharmony_ci	book3s_pr_papr.o \
528c2ecf20Sopenharmony_ci	book3s_emulate.o \
538c2ecf20Sopenharmony_ci	book3s_interrupts.o \
548c2ecf20Sopenharmony_ci	book3s_mmu_hpte.o \
558c2ecf20Sopenharmony_ci	book3s_64_mmu_host.o \
568c2ecf20Sopenharmony_ci	book3s_64_mmu.o \
578c2ecf20Sopenharmony_ci	book3s_32_mmu.o
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_cikvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \
608c2ecf20Sopenharmony_ci	tm.o
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ciifdef CONFIG_KVM_BOOK3S_PR_POSSIBLE
638c2ecf20Sopenharmony_cikvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \
648c2ecf20Sopenharmony_ci	book3s_rmhandlers.o
658c2ecf20Sopenharmony_ciendif
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_cikvm-hv-y += \
688c2ecf20Sopenharmony_ci	book3s_hv.o \
698c2ecf20Sopenharmony_ci	book3s_hv_interrupts.o \
708c2ecf20Sopenharmony_ci	book3s_64_mmu_hv.o \
718c2ecf20Sopenharmony_ci	book3s_64_mmu_radix.o \
728c2ecf20Sopenharmony_ci	book3s_hv_nested.o
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_cikvm-hv-$(CONFIG_PPC_UV) += \
758c2ecf20Sopenharmony_ci	book3s_hv_uvmem.o
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_cikvm-hv-$(CONFIG_PPC_TRANSACTIONAL_MEM) += \
788c2ecf20Sopenharmony_ci	book3s_hv_tm.o
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_cikvm-book3s_64-builtin-xics-objs-$(CONFIG_KVM_XICS) := \
818c2ecf20Sopenharmony_ci	book3s_hv_rm_xics.o book3s_hv_rm_xive.o
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_cikvm-book3s_64-builtin-tm-objs-$(CONFIG_PPC_TRANSACTIONAL_MEM) += \
848c2ecf20Sopenharmony_ci	book3s_hv_tm_builtin.o
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ciifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
878c2ecf20Sopenharmony_cikvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \
888c2ecf20Sopenharmony_ci	book3s_hv_hmi.o \
898c2ecf20Sopenharmony_ci	book3s_hv_rmhandlers.o \
908c2ecf20Sopenharmony_ci	book3s_hv_rm_mmu.o \
918c2ecf20Sopenharmony_ci	book3s_hv_ras.o \
928c2ecf20Sopenharmony_ci	book3s_hv_builtin.o \
938c2ecf20Sopenharmony_ci	$(kvm-book3s_64-builtin-tm-objs-y) \
948c2ecf20Sopenharmony_ci	$(kvm-book3s_64-builtin-xics-objs-y)
958c2ecf20Sopenharmony_ciendif
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_cikvm-book3s_64-objs-$(CONFIG_KVM_XICS) += \
988c2ecf20Sopenharmony_ci	book3s_xics.o
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_cikvm-book3s_64-objs-$(CONFIG_KVM_XIVE) += book3s_xive.o book3s_xive_native.o
1018c2ecf20Sopenharmony_cikvm-book3s_64-objs-$(CONFIG_SPAPR_TCE_IOMMU) += book3s_64_vio.o
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_cikvm-book3s_64-module-objs := \
1048c2ecf20Sopenharmony_ci	$(common-objs-y) \
1058c2ecf20Sopenharmony_ci	book3s.o \
1068c2ecf20Sopenharmony_ci	book3s_rtas.o \
1078c2ecf20Sopenharmony_ci	$(kvm-book3s_64-objs-y)
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_cikvm-objs-$(CONFIG_KVM_BOOK3S_64) := $(kvm-book3s_64-module-objs)
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_cikvm-book3s_32-objs := \
1128c2ecf20Sopenharmony_ci	$(common-objs-y) \
1138c2ecf20Sopenharmony_ci	emulate.o \
1148c2ecf20Sopenharmony_ci	fpu.o \
1158c2ecf20Sopenharmony_ci	book3s_paired_singles.o \
1168c2ecf20Sopenharmony_ci	book3s.o \
1178c2ecf20Sopenharmony_ci	book3s_pr.o \
1188c2ecf20Sopenharmony_ci	book3s_emulate.o \
1198c2ecf20Sopenharmony_ci	book3s_interrupts.o \
1208c2ecf20Sopenharmony_ci	book3s_mmu_hpte.o \
1218c2ecf20Sopenharmony_ci	book3s_32_mmu_host.o \
1228c2ecf20Sopenharmony_ci	book3s_32_mmu.o
1238c2ecf20Sopenharmony_cikvm-objs-$(CONFIG_KVM_BOOK3S_32) := $(kvm-book3s_32-objs)
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_cikvm-objs-$(CONFIG_KVM_MPIC) += mpic.o
1268c2ecf20Sopenharmony_cikvm-objs-$(CONFIG_HAVE_KVM_IRQ_ROUTING) += $(KVM)/irqchip.o
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_cikvm-objs := $(kvm-objs-m) $(kvm-objs-y)
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ciobj-$(CONFIG_KVM_E500V2) += kvm.o
1318c2ecf20Sopenharmony_ciobj-$(CONFIG_KVM_E500MC) += kvm.o
1328c2ecf20Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_64) += kvm.o
1338c2ecf20Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_32) += kvm.o
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_64_PR) += kvm-pr.o
1368c2ecf20Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_64_HV) += kvm-hv.o
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ciobj-y += $(kvm-book3s_64-builtin-objs-y)
139