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 := -Ivirt/kvm -Iarch/powerpc/kvm 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciinclude $(srctree)/virt/kvm/Makefile.kvm 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cicommon-objs-y += powerpc.o emulate_loadstore.o 1162306a36Sopenharmony_ciobj-$(CONFIG_KVM_EXIT_TIMING) += timing.o 1262306a36Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_HANDLER) += book3s_exports.o 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciAFLAGS_booke_interrupts.o := -I$(objtree)/$(obj) 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cikvm-e500-objs := \ 1762306a36Sopenharmony_ci $(common-objs-y) \ 1862306a36Sopenharmony_ci emulate.o \ 1962306a36Sopenharmony_ci booke.o \ 2062306a36Sopenharmony_ci booke_emulate.o \ 2162306a36Sopenharmony_ci booke_interrupts.o \ 2262306a36Sopenharmony_ci e500.o \ 2362306a36Sopenharmony_ci e500_mmu.o \ 2462306a36Sopenharmony_ci e500_mmu_host.o \ 2562306a36Sopenharmony_ci e500_emulate.o 2662306a36Sopenharmony_cikvm-objs-$(CONFIG_KVM_E500V2) := $(kvm-e500-objs) 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_cikvm-e500mc-objs := \ 2962306a36Sopenharmony_ci $(common-objs-y) \ 3062306a36Sopenharmony_ci emulate.o \ 3162306a36Sopenharmony_ci booke.o \ 3262306a36Sopenharmony_ci booke_emulate.o \ 3362306a36Sopenharmony_ci bookehv_interrupts.o \ 3462306a36Sopenharmony_ci e500mc.o \ 3562306a36Sopenharmony_ci e500_mmu.o \ 3662306a36Sopenharmony_ci e500_mmu_host.o \ 3762306a36Sopenharmony_ci e500_emulate.o 3862306a36Sopenharmony_cikvm-objs-$(CONFIG_KVM_E500MC) := $(kvm-e500mc-objs) 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_cikvm-pr-y := \ 4162306a36Sopenharmony_ci fpu.o \ 4262306a36Sopenharmony_ci emulate.o \ 4362306a36Sopenharmony_ci book3s_paired_singles.o \ 4462306a36Sopenharmony_ci book3s_pr.o \ 4562306a36Sopenharmony_ci book3s_pr_papr.o \ 4662306a36Sopenharmony_ci book3s_emulate.o \ 4762306a36Sopenharmony_ci book3s_interrupts.o \ 4862306a36Sopenharmony_ci book3s_mmu_hpte.o \ 4962306a36Sopenharmony_ci book3s_64_mmu_host.o \ 5062306a36Sopenharmony_ci book3s_64_mmu.o \ 5162306a36Sopenharmony_ci book3s_32_mmu.o 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_cikvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ 5462306a36Sopenharmony_ci book3s_64_entry.o \ 5562306a36Sopenharmony_ci tm.o 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ciifdef CONFIG_KVM_BOOK3S_PR_POSSIBLE 5862306a36Sopenharmony_cikvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ 5962306a36Sopenharmony_ci book3s_rmhandlers.o 6062306a36Sopenharmony_ciendif 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_cikvm-hv-y += \ 6362306a36Sopenharmony_ci book3s_hv.o \ 6462306a36Sopenharmony_ci book3s_hv_interrupts.o \ 6562306a36Sopenharmony_ci book3s_64_mmu_hv.o \ 6662306a36Sopenharmony_ci book3s_64_mmu_radix.o \ 6762306a36Sopenharmony_ci book3s_hv_nested.o 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_cikvm-hv-$(CONFIG_PPC_UV) += \ 7062306a36Sopenharmony_ci book3s_hv_uvmem.o 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_cikvm-hv-$(CONFIG_PPC_TRANSACTIONAL_MEM) += \ 7362306a36Sopenharmony_ci book3s_hv_tm.o 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_cikvm-book3s_64-builtin-xics-objs-$(CONFIG_KVM_XICS) := \ 7662306a36Sopenharmony_ci book3s_hv_rm_xics.o 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_cikvm-book3s_64-builtin-tm-objs-$(CONFIG_PPC_TRANSACTIONAL_MEM) += \ 7962306a36Sopenharmony_ci book3s_hv_tm_builtin.o 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ciifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE 8262306a36Sopenharmony_cikvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ 8362306a36Sopenharmony_ci book3s_hv_hmi.o \ 8462306a36Sopenharmony_ci book3s_hv_p9_entry.o \ 8562306a36Sopenharmony_ci book3s_hv_rmhandlers.o \ 8662306a36Sopenharmony_ci book3s_hv_rm_mmu.o \ 8762306a36Sopenharmony_ci book3s_hv_ras.o \ 8862306a36Sopenharmony_ci book3s_hv_builtin.o \ 8962306a36Sopenharmony_ci book3s_hv_p9_perf.o \ 9062306a36Sopenharmony_ci $(kvm-book3s_64-builtin-tm-objs-y) \ 9162306a36Sopenharmony_ci $(kvm-book3s_64-builtin-xics-objs-y) 9262306a36Sopenharmony_ciendif 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_cikvm-book3s_64-objs-$(CONFIG_KVM_XICS) += \ 9562306a36Sopenharmony_ci book3s_xics.o 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_cikvm-book3s_64-objs-$(CONFIG_KVM_XIVE) += book3s_xive.o book3s_xive_native.o 9862306a36Sopenharmony_cikvm-book3s_64-objs-$(CONFIG_SPAPR_TCE_IOMMU) += book3s_64_vio.o 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_cikvm-book3s_64-module-objs := \ 10162306a36Sopenharmony_ci $(common-objs-y) \ 10262306a36Sopenharmony_ci book3s.o \ 10362306a36Sopenharmony_ci book3s_rtas.o \ 10462306a36Sopenharmony_ci $(kvm-book3s_64-objs-y) 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_cikvm-objs-$(CONFIG_KVM_BOOK3S_64) := $(kvm-book3s_64-module-objs) 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_cikvm-book3s_32-objs := \ 10962306a36Sopenharmony_ci $(common-objs-y) \ 11062306a36Sopenharmony_ci emulate.o \ 11162306a36Sopenharmony_ci fpu.o \ 11262306a36Sopenharmony_ci book3s_paired_singles.o \ 11362306a36Sopenharmony_ci book3s.o \ 11462306a36Sopenharmony_ci book3s_pr.o \ 11562306a36Sopenharmony_ci book3s_emulate.o \ 11662306a36Sopenharmony_ci book3s_interrupts.o \ 11762306a36Sopenharmony_ci book3s_mmu_hpte.o \ 11862306a36Sopenharmony_ci book3s_32_mmu_host.o \ 11962306a36Sopenharmony_ci book3s_32_mmu.o 12062306a36Sopenharmony_cikvm-objs-$(CONFIG_KVM_BOOK3S_32) := $(kvm-book3s_32-objs) 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_cikvm-objs-$(CONFIG_KVM_MPIC) += mpic.o 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_cikvm-y += $(kvm-objs-m) $(kvm-objs-y) 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ciobj-$(CONFIG_KVM_E500V2) += kvm.o 12762306a36Sopenharmony_ciobj-$(CONFIG_KVM_E500MC) += kvm.o 12862306a36Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_64) += kvm.o 12962306a36Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_32) += kvm.o 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_64_PR) += kvm-pr.o 13262306a36Sopenharmony_ciobj-$(CONFIG_KVM_BOOK3S_64_HV) += kvm-hv.o 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ciobj-y += $(kvm-book3s_64-builtin-objs-y) 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci# KVM does a lot in real-mode, and 64-bit Book3S KASAN doesn't support that 13762306a36Sopenharmony_ciifdef CONFIG_PPC_BOOK3S_64 13862306a36Sopenharmony_ciKASAN_SANITIZE := n 13962306a36Sopenharmony_ciendif 140