diff options
Diffstat (limited to 'drivers/virtio/Kconfig')
-rw-r--r-- | drivers/virtio/Kconfig | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig new file mode 100644 index 0000000000..0a53a61231 --- /dev/null +++ b/drivers/virtio/Kconfig @@ -0,0 +1,176 @@ +# SPDX-License-Identifier: GPL-2.0-only +config VIRTIO_ANCHOR + bool + +config VIRTIO + tristate + select VIRTIO_ANCHOR + help + This option is selected by any driver which implements the virtio + bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG + or CONFIG_S390_GUEST. + +config VIRTIO_PCI_LIB + tristate + help + Modern PCI device implementation. This module implements the + basic probe and control for devices which are based on modern + PCI device with possible vendor specific extensions. Any + module that selects this module must depend on PCI. + +config VIRTIO_PCI_LIB_LEGACY + tristate + help + Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device) + implementation. + This module implements the basic probe and control for devices + which are based on legacy PCI device. Any module that selects this + module must depend on PCI. + +menuconfig VIRTIO_MENU + bool "Virtio drivers" + default y + +if VIRTIO_MENU + +config VIRTIO_HARDEN_NOTIFICATION + bool "Harden virtio notification" + depends on BROKEN + help + Enable this to harden the device notifications and suppress + those that happen at a time where notifications are illegal. + + Experimental: Note that several drivers still have issues that + may cause crashes or hangs when correct handling of + notifications is enforced; depending on the subset of + drivers and devices you use, this may or may not work. + + If unsure, say N. + +config VIRTIO_PCI + tristate "PCI driver for virtio devices" + depends on PCI + select VIRTIO_PCI_LIB + select VIRTIO + help + This driver provides support for virtio based paravirtual device + drivers over PCI. This requires that your VMM has appropriate PCI + virtio backends. Most QEMU based VMMs should support these devices + (like KVM or Xen). + + If unsure, say M. + +config VIRTIO_PCI_LEGACY + bool "Support for legacy virtio draft 0.9.X and older devices" + default y + depends on VIRTIO_PCI + select VIRTIO_PCI_LIB_LEGACY + help + Virtio PCI Card 0.9.X Draft (circa 2014) and older device support. + + This option enables building a transitional driver, supporting + both devices conforming to Virtio 1 specification, and legacy devices. + If disabled, you get a slightly smaller, non-transitional driver, + with no legacy compatibility. + + So look out into your driveway. Do you have a flying car? If + so, you can happily disable this option and virtio will not + break. Otherwise, leave it set. Unless you're testing what + life will be like in The Future. + + If unsure, say Y. + +config VIRTIO_VDPA + tristate "vDPA driver for virtio devices" + depends on VDPA + select VIRTIO + help + This driver provides support for virtio based paravirtual + device driver over vDPA bus. For this to be useful, you need + an appropriate vDPA device implementation that operates on a + physical device to allow the datapath of virtio to be + offloaded to hardware. + + If unsure, say M. + +config VIRTIO_PMEM + tristate "Support for virtio pmem driver" + depends on VIRTIO + depends on LIBNVDIMM + help + This driver provides access to virtio-pmem devices, storage devices + that are mapped into the physical address space - similar to NVDIMMs + - with a virtio-based flushing interface. + + If unsure, say Y. + +config VIRTIO_BALLOON + tristate "Virtio balloon driver" + depends on VIRTIO + select MEMORY_BALLOON + select PAGE_REPORTING + help + This driver supports increasing and decreasing the amount + of memory within a KVM guest. + + If unsure, say M. + +config VIRTIO_MEM + tristate "Virtio mem driver" + depends on X86_64 || ARM64 + depends on VIRTIO + depends on MEMORY_HOTPLUG + depends on MEMORY_HOTREMOVE + depends on CONTIG_ALLOC + depends on EXCLUSIVE_SYSTEM_RAM + help + This driver provides access to virtio-mem paravirtualized memory + devices, allowing to hotplug and hotunplug memory. + + This driver currently only supports x86-64 and arm64. Although it + should compile on other architectures that implement memory + hot(un)plug, architecture-specific and/or common + code changes may be required for virtio-mem, kdump and kexec to work as + expected. + + If unsure, say M. + +config VIRTIO_INPUT + tristate "Virtio input driver" + depends on VIRTIO + depends on INPUT + help + This driver supports virtio input devices such as + keyboards, mice and tablets. + + If unsure, say M. + +config VIRTIO_MMIO + tristate "Platform bus driver for memory mapped virtio devices" + depends on HAS_IOMEM && HAS_DMA + select VIRTIO + help + This drivers provides support for memory mapped virtio + platform device driver. + + If unsure, say N. + +config VIRTIO_MMIO_CMDLINE_DEVICES + bool "Memory mapped virtio devices parameter parsing" + depends on VIRTIO_MMIO + help + Allow virtio-mmio devices instantiation via the kernel command line + or module parameters. Be aware that using incorrect parameters (base + address in particular) can crash your system - you have been warned. + See Documentation/admin-guide/kernel-parameters.rst for details. + + If unsure, say 'N'. + +config VIRTIO_DMA_SHARED_BUFFER + tristate + depends on DMA_SHARED_BUFFER + help + This option adds a flavor of dma buffers that are backed by + virtio resources. + +endif # VIRTIO_MENU |