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