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