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