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