Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config VIRTIO_ANCHOR
0003         bool
0004 
0005 config VIRTIO
0006         tristate
0007         select VIRTIO_ANCHOR
0008         help
0009           This option is selected by any driver which implements the virtio
0010           bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
0011           or CONFIG_S390_GUEST.
0012 
0013 config VIRTIO_PCI_LIB
0014         tristate
0015         help
0016           Modern PCI device implementation. This module implements the
0017           basic probe and control for devices which are based on modern
0018           PCI device with possible vendor specific extensions. Any
0019           module that selects this module must depend on PCI.
0020 
0021 config VIRTIO_PCI_LIB_LEGACY
0022         tristate
0023         help
0024           Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device)
0025           implementation.
0026           This module implements the basic probe and control for devices
0027           which are based on legacy PCI device. Any module that selects this
0028           module must depend on PCI.
0029 
0030 menuconfig VIRTIO_MENU
0031         bool "Virtio drivers"
0032         default y
0033 
0034 if VIRTIO_MENU
0035 
0036 config VIRTIO_HARDEN_NOTIFICATION
0037         bool "Harden virtio notification"
0038         depends on BROKEN
0039         help
0040           Enable this to harden the device notifications and suppress
0041           those that happen at a time where notifications are illegal.
0042 
0043           Experimental: Note that several drivers still have issues that
0044           may cause crashes or hangs when correct handling of
0045           notifications is enforced; depending on the subset of
0046           drivers and devices you use, this may or may not work.
0047 
0048           If unsure, say N.
0049 
0050 config VIRTIO_PCI
0051         tristate "PCI driver for virtio devices"
0052         depends on PCI
0053         select VIRTIO_PCI_LIB
0054         select VIRTIO
0055         help
0056           This driver provides support for virtio based paravirtual device
0057           drivers over PCI.  This requires that your VMM has appropriate PCI
0058           virtio backends.  Most QEMU based VMMs should support these devices
0059           (like KVM or Xen).
0060 
0061           If unsure, say M.
0062 
0063 config VIRTIO_PCI_LEGACY
0064         bool "Support for legacy virtio draft 0.9.X and older devices"
0065         default y
0066         depends on VIRTIO_PCI
0067         select VIRTIO_PCI_LIB_LEGACY
0068         help
0069           Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
0070 
0071           This option enables building a transitional driver, supporting
0072           both devices conforming to Virtio 1 specification, and legacy devices.
0073           If disabled, you get a slightly smaller, non-transitional driver,
0074           with no legacy compatibility.
0075 
0076           So look out into your driveway.  Do you have a flying car?  If
0077           so, you can happily disable this option and virtio will not
0078           break.  Otherwise, leave it set.  Unless you're testing what
0079           life will be like in The Future.
0080 
0081           If unsure, say Y.
0082 
0083 config VIRTIO_VDPA
0084         tristate "vDPA driver for virtio devices"
0085         depends on VDPA
0086         select VIRTIO
0087         help
0088           This driver provides support for virtio based paravirtual
0089           device driver over vDPA bus. For this to be useful, you need
0090           an appropriate vDPA device implementation that operates on a
0091           physical device to allow the datapath of virtio to be
0092           offloaded to hardware.
0093 
0094           If unsure, say M.
0095 
0096 config VIRTIO_PMEM
0097         tristate "Support for virtio pmem driver"
0098         depends on VIRTIO
0099         depends on LIBNVDIMM
0100         help
0101           This driver provides access to virtio-pmem devices, storage devices
0102           that are mapped into the physical address space - similar to NVDIMMs
0103            - with a virtio-based flushing interface.
0104 
0105           If unsure, say Y.
0106 
0107 config VIRTIO_BALLOON
0108         tristate "Virtio balloon driver"
0109         depends on VIRTIO
0110         select MEMORY_BALLOON
0111         select PAGE_REPORTING
0112         help
0113          This driver supports increasing and decreasing the amount
0114          of memory within a KVM guest.
0115 
0116          If unsure, say M.
0117 
0118 config VIRTIO_MEM
0119         tristate "Virtio mem driver"
0120         depends on X86_64 || ARM64
0121         depends on VIRTIO
0122         depends on MEMORY_HOTPLUG
0123         depends on MEMORY_HOTREMOVE
0124         depends on CONTIG_ALLOC
0125         depends on EXCLUSIVE_SYSTEM_RAM
0126         help
0127          This driver provides access to virtio-mem paravirtualized memory
0128          devices, allowing to hotplug and hotunplug memory.
0129 
0130          This driver currently only supports x86-64 and arm64. Although it
0131          should compile on other architectures that implement memory
0132          hot(un)plug, architecture-specific and/or common
0133          code changes may be required for virtio-mem, kdump and kexec to work as
0134          expected.
0135 
0136          If unsure, say M.
0137 
0138 config VIRTIO_INPUT
0139         tristate "Virtio input driver"
0140         depends on VIRTIO
0141         depends on INPUT
0142         help
0143          This driver supports virtio input devices such as
0144          keyboards, mice and tablets.
0145 
0146          If unsure, say M.
0147 
0148 config VIRTIO_MMIO
0149         tristate "Platform bus driver for memory mapped virtio devices"
0150         depends on HAS_IOMEM && HAS_DMA
0151         select VIRTIO
0152         help
0153          This drivers provides support for memory mapped virtio
0154          platform device driver.
0155 
0156          If unsure, say N.
0157 
0158 config VIRTIO_MMIO_CMDLINE_DEVICES
0159         bool "Memory mapped virtio devices parameter parsing"
0160         depends on VIRTIO_MMIO
0161         help
0162          Allow virtio-mmio devices instantiation via the kernel command line
0163          or module parameters. Be aware that using incorrect parameters (base
0164          address in particular) can crash your system - you have been warned.
0165          See Documentation/admin-guide/kernel-parameters.rst for details.
0166 
0167          If unsure, say 'N'.
0168 
0169 config VIRTIO_DMA_SHARED_BUFFER
0170         tristate
0171         depends on DMA_SHARED_BUFFER
0172         help
0173          This option adds a flavor of dma buffers that are backed by
0174          virtio resources.
0175 
0176 endif # VIRTIO_MENU