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