1# SPDX-License-Identifier: GPL-2.0-only 2config VIRTIO_ANCHOR 3 bool 4 5config VIRTIO 6 tristate 7 select VIRTIO_ANCHOR 8 help 9 This option is selected by any driver which implements the virtio 10 bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG 11 or CONFIG_S390_GUEST. 12 13config VIRTIO_PCI_LIB 14 tristate 15 help 16 Modern PCI device implementation. This module implements the 17 basic probe and control for devices which are based on modern 18 PCI device with possible vendor specific extensions. Any 19 module that selects this module must depend on PCI. 20 21config VIRTIO_PCI_LIB_LEGACY 22 tristate 23 help 24 Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device) 25 implementation. 26 This module implements the basic probe and control for devices 27 which are based on legacy PCI device. Any module that selects this 28 module must depend on PCI. 29 30menuconfig VIRTIO_MENU 31 bool "Virtio drivers" 32 default y 33 34if VIRTIO_MENU 35 36config VIRTIO_HARDEN_NOTIFICATION 37 bool "Harden virtio notification" 38 depends on BROKEN 39 help 40 Enable this to harden the device notifications and suppress 41 those that happen at a time where notifications are illegal. 42 43 Experimental: Note that several drivers still have issues that 44 may cause crashes or hangs when correct handling of 45 notifications is enforced; depending on the subset of 46 drivers and devices you use, this may or may not work. 47 48 If unsure, say N. 49 50config VIRTIO_PCI 51 tristate "PCI driver for virtio devices" 52 depends on PCI 53 select VIRTIO_PCI_LIB 54 select VIRTIO 55 help 56 This driver provides support for virtio based paravirtual device 57 drivers over PCI. This requires that your VMM has appropriate PCI 58 virtio backends. Most QEMU based VMMs should support these devices 59 (like KVM or Xen). 60 61 If unsure, say M. 62 63config VIRTIO_PCI_LEGACY 64 bool "Support for legacy virtio draft 0.9.X and older devices" 65 default y 66 depends on VIRTIO_PCI 67 select VIRTIO_PCI_LIB_LEGACY 68 help 69 Virtio PCI Card 0.9.X Draft (circa 2014) and older device support. 70 71 This option enables building a transitional driver, supporting 72 both devices conforming to Virtio 1 specification, and legacy devices. 73 If disabled, you get a slightly smaller, non-transitional driver, 74 with no legacy compatibility. 75 76 So look out into your driveway. Do you have a flying car? If 77 so, you can happily disable this option and virtio will not 78 break. Otherwise, leave it set. Unless you're testing what 79 life will be like in The Future. 80 81 If unsure, say Y. 82 83config VIRTIO_VDPA 84 tristate "vDPA driver for virtio devices" 85 depends on VDPA 86 select VIRTIO 87 help 88 This driver provides support for virtio based paravirtual 89 device driver over vDPA bus. For this to be useful, you need 90 an appropriate vDPA device implementation that operates on a 91 physical device to allow the datapath of virtio to be 92 offloaded to hardware. 93 94 If unsure, say M. 95 96config VIRTIO_PMEM 97 tristate "Support for virtio pmem driver" 98 depends on VIRTIO 99 depends on LIBNVDIMM 100 help 101 This driver provides access to virtio-pmem devices, storage devices 102 that are mapped into the physical address space - similar to NVDIMMs 103 - with a virtio-based flushing interface. 104 105 If unsure, say Y. 106 107config VIRTIO_BALLOON 108 tristate "Virtio balloon driver" 109 depends on VIRTIO 110 select MEMORY_BALLOON 111 select PAGE_REPORTING 112 help 113 This driver supports increasing and decreasing the amount 114 of memory within a KVM guest. 115 116 If unsure, say M. 117 118config VIRTIO_MEM 119 tristate "Virtio mem driver" 120 depends on X86_64 || ARM64 121 depends on VIRTIO 122 depends on MEMORY_HOTPLUG 123 depends on MEMORY_HOTREMOVE 124 depends on CONTIG_ALLOC 125 depends on EXCLUSIVE_SYSTEM_RAM 126 help 127 This driver provides access to virtio-mem paravirtualized memory 128 devices, allowing to hotplug and hotunplug memory. 129 130 This driver currently only supports x86-64 and arm64. Although it 131 should compile on other architectures that implement memory 132 hot(un)plug, architecture-specific and/or common 133 code changes may be required for virtio-mem, kdump and kexec to work as 134 expected. 135 136 If unsure, say M. 137 138config VIRTIO_INPUT 139 tristate "Virtio input driver" 140 depends on VIRTIO 141 depends on INPUT 142 help 143 This driver supports virtio input devices such as 144 keyboards, mice and tablets. 145 146 If unsure, say M. 147 148config VIRTIO_MMIO 149 tristate "Platform bus driver for memory mapped virtio devices" 150 depends on HAS_IOMEM && HAS_DMA 151 select VIRTIO 152 help 153 This drivers provides support for memory mapped virtio 154 platform device driver. 155 156 If unsure, say N. 157 158config VIRTIO_MMIO_CMDLINE_DEVICES 159 bool "Memory mapped virtio devices parameter parsing" 160 depends on VIRTIO_MMIO 161 help 162 Allow virtio-mmio devices instantiation via the kernel command line 163 or module parameters. Be aware that using incorrect parameters (base 164 address in particular) can crash your system - you have been warned. 165 See Documentation/admin-guide/kernel-parameters.rst for details. 166 167 If unsure, say 'N'. 168 169config VIRTIO_DMA_SHARED_BUFFER 170 tristate 171 depends on DMA_SHARED_BUFFER 172 help 173 This option adds a flavor of dma buffers that are backed by 174 virtio resources. 175 176endif # VIRTIO_MENU 177