162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci# KVM common configuration items and defaults
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciconfig HAVE_KVM
562306a36Sopenharmony_ci       bool
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciconfig HAVE_KVM_PFNCACHE
862306a36Sopenharmony_ci       bool
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciconfig HAVE_KVM_IRQCHIP
1162306a36Sopenharmony_ci       bool
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciconfig HAVE_KVM_IRQFD
1462306a36Sopenharmony_ci       bool
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciconfig HAVE_KVM_IRQ_ROUTING
1762306a36Sopenharmony_ci       bool
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciconfig HAVE_KVM_DIRTY_RING
2062306a36Sopenharmony_ci       bool
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci# Only strongly ordered architectures can select this, as it doesn't
2362306a36Sopenharmony_ci# put any explicit constraint on userspace ordering. They can also
2462306a36Sopenharmony_ci# select the _ACQ_REL version.
2562306a36Sopenharmony_ciconfig HAVE_KVM_DIRTY_RING_TSO
2662306a36Sopenharmony_ci       bool
2762306a36Sopenharmony_ci       select HAVE_KVM_DIRTY_RING
2862306a36Sopenharmony_ci       depends on X86
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci# Weakly ordered architectures can only select this, advertising
3162306a36Sopenharmony_ci# to userspace the additional ordering requirements.
3262306a36Sopenharmony_ciconfig HAVE_KVM_DIRTY_RING_ACQ_REL
3362306a36Sopenharmony_ci       bool
3462306a36Sopenharmony_ci       select HAVE_KVM_DIRTY_RING
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci# Allow enabling both the dirty bitmap and dirty ring. Only architectures
3762306a36Sopenharmony_ci# that need to dirty memory outside of a vCPU context should select this.
3862306a36Sopenharmony_ciconfig NEED_KVM_DIRTY_RING_WITH_BITMAP
3962306a36Sopenharmony_ci	bool
4062306a36Sopenharmony_ci	depends on HAVE_KVM_DIRTY_RING
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciconfig HAVE_KVM_EVENTFD
4362306a36Sopenharmony_ci       bool
4462306a36Sopenharmony_ci       select EVENTFD
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciconfig KVM_MMIO
4762306a36Sopenharmony_ci       bool
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig KVM_ASYNC_PF
5062306a36Sopenharmony_ci       bool
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci# Toggle to switch between direct notification and batch job
5362306a36Sopenharmony_ciconfig KVM_ASYNC_PF_SYNC
5462306a36Sopenharmony_ci       bool
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciconfig HAVE_KVM_MSI
5762306a36Sopenharmony_ci       bool
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciconfig HAVE_KVM_CPU_RELAX_INTERCEPT
6062306a36Sopenharmony_ci       bool
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciconfig KVM_VFIO
6362306a36Sopenharmony_ci       bool
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciconfig HAVE_KVM_INVALID_WAKEUPS
6662306a36Sopenharmony_ci       bool
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciconfig KVM_GENERIC_DIRTYLOG_READ_PROTECT
6962306a36Sopenharmony_ci       bool
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig KVM_COMPAT
7262306a36Sopenharmony_ci       def_bool y
7362306a36Sopenharmony_ci       depends on KVM && COMPAT && !(S390 || ARM64 || RISCV)
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig HAVE_KVM_IRQ_BYPASS
7662306a36Sopenharmony_ci       bool
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ciconfig HAVE_KVM_VCPU_ASYNC_IOCTL
7962306a36Sopenharmony_ci       bool
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciconfig HAVE_KVM_VCPU_RUN_PID_CHANGE
8262306a36Sopenharmony_ci       bool
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciconfig HAVE_KVM_NO_POLL
8562306a36Sopenharmony_ci       bool
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciconfig KVM_XFER_TO_GUEST_WORK
8862306a36Sopenharmony_ci       bool
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig HAVE_KVM_PM_NOTIFIER
9162306a36Sopenharmony_ci       bool
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciconfig KVM_GENERIC_HARDWARE_ENABLING
9462306a36Sopenharmony_ci       bool
95