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