| # 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_ADMIN_LEGACY | |
| bool | |
| depends on VIRTIO_PCI && (X86 || COMPILE_TEST) | |
| default y | |
| 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 |