192 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2config VIRTIO_ANCHOR3 bool4 5config VIRTIO6 tristate7 select VIRTIO_ANCHOR8 help9 This option is selected by any driver which implements the virtio10 bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG11 or CONFIG_S390_GUEST.12 13config VIRTIO_PCI_LIB14 tristate15 help16 Modern PCI device implementation. This module implements the17 basic probe and control for devices which are based on modern18 PCI device with possible vendor specific extensions. Any19 module that selects this module must depend on PCI.20 21config VIRTIO_PCI_LIB_LEGACY22 tristate23 help24 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 devices27 which are based on legacy PCI device. Any module that selects this28 module must depend on PCI.29 30menuconfig VIRTIO_MENU31 bool "Virtio drivers"32 default y33 34if VIRTIO_MENU35 36config VIRTIO_HARDEN_NOTIFICATION37 bool "Harden virtio notification"38 depends on BROKEN39 help40 Enable this to harden the device notifications and suppress41 those that happen at a time where notifications are illegal.42 43 Experimental: Note that several drivers still have issues that44 may cause crashes or hangs when correct handling of45 notifications is enforced; depending on the subset of46 drivers and devices you use, this may or may not work.47 48 If unsure, say N.49 50config VIRTIO_PCI51 tristate "PCI driver for virtio devices"52 depends on PCI53 select VIRTIO_PCI_LIB54 select VIRTIO55 help56 This driver provides support for virtio based paravirtual device57 drivers over PCI. This requires that your VMM has appropriate PCI58 virtio backends. Most QEMU based VMMs should support these devices59 (like KVM or Xen).60 61 If unsure, say M.62 63config VIRTIO_PCI_ADMIN_LEGACY64 bool65 depends on VIRTIO_PCI && (X86 || COMPILE_TEST)66 default y67 68config VIRTIO_PCI_LEGACY69 bool "Support for legacy virtio draft 0.9.X and older devices"70 default y71 depends on VIRTIO_PCI72 select VIRTIO_PCI_LIB_LEGACY73 help74 Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.75 76 This option enables building a transitional driver, supporting77 both devices conforming to Virtio 1 specification, and legacy devices.78 If disabled, you get a slightly smaller, non-transitional driver,79 with no legacy compatibility.80 81 So look out into your driveway. Do you have a flying car? If82 so, you can happily disable this option and virtio will not83 break. Otherwise, leave it set. Unless you're testing what84 life will be like in The Future.85 86 If unsure, say Y.87 88config VIRTIO_VDPA89 tristate "vDPA driver for virtio devices"90 depends on VDPA91 select VIRTIO92 help93 This driver provides support for virtio based paravirtual94 device driver over vDPA bus. For this to be useful, you need95 an appropriate vDPA device implementation that operates on a96 physical device to allow the datapath of virtio to be97 offloaded to hardware.98 99 If unsure, say M.100 101config VIRTIO_PMEM102 tristate "Support for virtio pmem driver"103 depends on VIRTIO104 depends on LIBNVDIMM105 help106 This driver provides access to virtio-pmem devices, storage devices107 that are mapped into the physical address space - similar to NVDIMMs108 - with a virtio-based flushing interface.109 110 If unsure, say Y.111 112config VIRTIO_BALLOON113 tristate "Virtio balloon driver"114 depends on VIRTIO115 select MEMORY_BALLOON116 select PAGE_REPORTING117 help118 This driver supports increasing and decreasing the amount119 of memory within a KVM guest.120 121 If unsure, say M.122 123config VIRTIO_MEM124 tristate "Virtio mem driver"125 depends on X86_64 || ARM64 || RISCV126 depends on VIRTIO127 depends on MEMORY_HOTPLUG128 depends on MEMORY_HOTREMOVE129 depends on CONTIG_ALLOC130 depends on EXCLUSIVE_SYSTEM_RAM131 help132 This driver provides access to virtio-mem paravirtualized memory133 devices, allowing to hotplug and hotunplug memory.134 135 This driver currently only supports x86-64 and arm64. Although it136 should compile on other architectures that implement memory137 hot(un)plug, architecture-specific and/or common138 code changes may be required for virtio-mem, kdump and kexec to work as139 expected.140 141 If unsure, say M.142 143config VIRTIO_INPUT144 tristate "Virtio input driver"145 depends on VIRTIO146 depends on INPUT147 help148 This driver supports virtio input devices such as149 keyboards, mice and tablets.150 151 If unsure, say M.152 153config VIRTIO_MMIO154 tristate "Platform bus driver for memory mapped virtio devices"155 depends on HAS_IOMEM && HAS_DMA156 select VIRTIO157 help158 This drivers provides support for memory mapped virtio159 platform device driver.160 161 If unsure, say N.162 163config VIRTIO_MMIO_CMDLINE_DEVICES164 bool "Memory mapped virtio devices parameter parsing"165 depends on VIRTIO_MMIO166 help167 Allow virtio-mmio devices instantiation via the kernel command line168 or module parameters. Be aware that using incorrect parameters (base169 address in particular) can crash your system - you have been warned.170 See Documentation/admin-guide/kernel-parameters.rst for details.171 172 If unsure, say 'N'.173 174config VIRTIO_DMA_SHARED_BUFFER175 tristate176 depends on DMA_SHARED_BUFFER177 help178 This option adds a flavor of dma buffers that are backed by179 virtio resources.180 181config VIRTIO_DEBUG182 bool "Debug facilities"183 depends on VIRTIO184 help185 Enable this to expose debug facilities over debugfs.186 This allows to debug features, to see what features the device187 advertises and to set filter for features used by driver.188 189 If unsure, say N.190 191endif # VIRTIO_MENU192