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 || ARM64 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 and arm64, but should 119 theoretically work on all architectures that support memory hotplug 120 and hotremove. 121 122 If unsure, say M. 123 124config VIRTIO_INPUT 125 tristate "Virtio input driver" 126 depends on VIRTIO 127 depends on INPUT 128 help 129 This driver supports virtio input devices such as 130 keyboards, mice and tablets. 131 132 If unsure, say M. 133 134config VIRTIO_MMIO 135 tristate "Platform bus driver for memory mapped virtio devices" 136 depends on HAS_IOMEM && HAS_DMA 137 select VIRTIO 138 help 139 This drivers provides support for memory mapped virtio 140 platform device driver. 141 142 If unsure, say N. 143 144config VIRTIO_MMIO_CMDLINE_DEVICES 145 bool "Memory mapped virtio devices parameter parsing" 146 depends on VIRTIO_MMIO 147 help 148 Allow virtio-mmio devices instantiation via the kernel command line 149 or module parameters. Be aware that using incorrect parameters (base 150 address in particular) can crash your system - you have been warned. 151 See Documentation/admin-guide/kernel-parameters.rst for details. 152 153 If unsure, say 'N'. 154 155config VIRTIO_DMA_SHARED_BUFFER 156 tristate 157 depends on DMA_SHARED_BUFFER 158 help 159 This option adds a flavor of dma buffers that are backed by 160 virtio resources. 161 162endif # VIRTIO_MENU 163