123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- # SPDX-License-Identifier: GPL-2.0-only
- config VIRTIO_ANCHOR
- bool
- config VIRTIO
- tristate
- select VIRTIO_ANCHOR
- help
- This option is selected by any driver which implements the virtio
- bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
- or CONFIG_S390_GUEST.
- config VIRTIO_PCI_LIB
- tristate
- help
- Modern PCI device implementation. This module implements the
- basic probe and control for devices which are based on modern
- PCI device with possible vendor specific extensions. Any
- module that selects this module must depend on PCI.
- config VIRTIO_PCI_LIB_LEGACY
- tristate
- help
- Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device)
- implementation.
- This module implements the basic probe and control for devices
- which are based on legacy PCI device. Any module that selects this
- module must depend on PCI.
- menuconfig VIRTIO_MENU
- bool "Virtio drivers"
- default y
- if VIRTIO_MENU
- config VIRTIO_HARDEN_NOTIFICATION
- bool "Harden virtio notification"
- depends on BROKEN
- help
- Enable this to harden the device notifications and suppress
- those that happen at a time where notifications are illegal.
- Experimental: Note that several drivers still have issues that
- may cause crashes or hangs when correct handling of
- notifications is enforced; depending on the subset of
- drivers and devices you use, this may or may not work.
- If unsure, say N.
- config VIRTIO_PCI
- tristate "PCI driver for virtio devices"
- depends on PCI
- select VIRTIO_PCI_LIB
- select VIRTIO
- help
- This driver provides support for virtio based paravirtual device
- drivers over PCI. This requires that your VMM has appropriate PCI
- virtio backends. Most QEMU based VMMs should support these devices
- (like KVM or Xen).
- If unsure, say M.
- config VIRTIO_PCI_LEGACY
- bool "Support for legacy virtio draft 0.9.X and older devices"
- default y
- depends on VIRTIO_PCI
- select VIRTIO_PCI_LIB_LEGACY
- help
- Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
- This option enables building a transitional driver, supporting
- both devices conforming to Virtio 1 specification, and legacy devices.
- If disabled, you get a slightly smaller, non-transitional driver,
- with no legacy compatibility.
- So look out into your driveway. Do you have a flying car? If
- so, you can happily disable this option and virtio will not
- break. Otherwise, leave it set. Unless you're testing what
- life will be like in The Future.
- If unsure, say Y.
- config VIRTIO_VDPA
- tristate "vDPA driver for virtio devices"
- depends on VDPA
- select VIRTIO
- help
- This driver provides support for virtio based paravirtual
- device driver over vDPA bus. For this to be useful, you need
- an appropriate vDPA device implementation that operates on a
- physical device to allow the datapath of virtio to be
- offloaded to hardware.
- If unsure, say M.
- config VIRTIO_PMEM
- tristate "Support for virtio pmem driver"
- depends on VIRTIO
- depends on LIBNVDIMM
- help
- This driver provides access to virtio-pmem devices, storage devices
- that are mapped into the physical address space - similar to NVDIMMs
- - with a virtio-based flushing interface.
- If unsure, say Y.
- config VIRTIO_BALLOON
- tristate "Virtio balloon driver"
- depends on VIRTIO
- select MEMORY_BALLOON
- select PAGE_REPORTING
- help
- This driver supports increasing and decreasing the amount
- of memory within a KVM guest.
- If unsure, say M.
- config VIRTIO_MEM
- tristate "Virtio mem driver"
- depends on X86_64 || ARM64
- depends on VIRTIO
- depends on MEMORY_HOTPLUG
- depends on MEMORY_HOTREMOVE
- depends on CONTIG_ALLOC
- depends on EXCLUSIVE_SYSTEM_RAM
- help
- This driver provides access to virtio-mem paravirtualized memory
- devices, allowing to hotplug and hotunplug memory.
- This driver currently only supports x86-64 and arm64. Although it
- should compile on other architectures that implement memory
- hot(un)plug, architecture-specific and/or common
- code changes may be required for virtio-mem, kdump and kexec to work as
- expected.
- If unsure, say M.
- config VIRTIO_INPUT
- tristate "Virtio input driver"
- depends on VIRTIO
- depends on INPUT
- help
- This driver supports virtio input devices such as
- keyboards, mice and tablets.
- If unsure, say M.
- config VIRTIO_MMIO
- tristate "Platform bus driver for memory mapped virtio devices"
- depends on HAS_IOMEM && HAS_DMA
- select VIRTIO
- help
- This drivers provides support for memory mapped virtio
- platform device driver.
- If unsure, say N.
- config VIRTIO_MMIO_SWIOTLB
- bool "Instantiate swiotlb buffer pool for custom DMA ops"
- depends on VIRTIO_MMIO
- help
- Activating this feature results in custom DMA ops being
- setup up for virtio_mmio device, that uses swiotlb driver
- APIs to bounce buffers in and out of a pre-defined memory
- region. The pre-defined memory region is defined in
- device-tree (/swiotlb) and is indicative of memory that is
- shared with another virtual machine which is hosting virtio
- backend drivers.
- config GH_VIRTIO_DEBUG
- bool "Enable debug features for virtio front-end drivers on Gunyah Hypervisor"
- depends on VIRTIO_MMIO
- help
- Activating this feature provides additional tracepoints in various
- virtio drivers that will be useful to debug virtio transactions.
- Currently virtio block driver and mmio transport provide few
- tracepoints when this feature is enabled.
- config VIRTIO_MMIO_CMDLINE_DEVICES
- bool "Memory mapped virtio devices parameter parsing"
- depends on VIRTIO_MMIO
- help
- Allow virtio-mmio devices instantiation via the kernel command line
- or module parameters. Be aware that using incorrect parameters (base
- address in particular) can crash your system - you have been warned.
- See Documentation/admin-guide/kernel-parameters.rst for details.
- If unsure, say 'N'.
- config VIRTIO_DMA_SHARED_BUFFER
- tristate "Virtio DMA shared buffer support"
- depends on DMA_SHARED_BUFFER
- help
- This option adds a flavor of dma buffers that are backed by
- virtio resources.
- config VIRTIO_MMIO_POLL_RESET
- bool "Virti-mmio device synchronous reset support"
- depends on VIRTIO_MMIO
- help
- Say y here to enable synchronous reset for the MMIO transport based
- virtio device. After writing 0 to device_status, the driver must
- wait for a read of device_status to return 0 before reinitializing
- the device.
- endif # VIRTIO_MENU
|