xref: /linux/drivers/virtio/Kconfig (revision c346dae4f3fbce51bbd4f2ec5e8c6f9b91e93163)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2ec3d41c4SRusty Russellconfig VIRTIO
3c6fd4701SRusty Russell	tristate
4a7f7f624SMasahiro Yamada	help
5387daf17SRusty Russell	  This option is selected by any driver which implements the virtio
6ecda85e7SJuergen Gross	  bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
7ecda85e7SJuergen Gross	  or CONFIG_S390_GUEST.
80a8a69ddSRusty Russell
9fd502729SJason Wangconfig VIRTIO_PCI_LIB
10fd502729SJason Wang	tristate
11fd502729SJason Wang	help
12fd502729SJason Wang	  Modern PCI device implementation. This module implements the
13fd502729SJason Wang	  basic probe and control for devices which are based on modern
14fd502729SJason Wang	  PCI device with possible vendor specific extensions. Any
15fd502729SJason Wang	  module that selects this module must depend on PCI.
16fd502729SJason Wang
17d89c8169SWu Zongyongconfig VIRTIO_PCI_LIB_LEGACY
18d89c8169SWu Zongyong	tristate
19d89c8169SWu Zongyong	help
20d89c8169SWu Zongyong	  Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device)
21d89c8169SWu Zongyong	  implementation.
22d89c8169SWu Zongyong	  This module implements the basic probe and control for devices
23d89c8169SWu Zongyong	  which are based on legacy PCI device. Any module that selects this
24d89c8169SWu Zongyong	  module must depend on PCI.
25d89c8169SWu Zongyong
267b95fec6SVincent Legollmenuconfig VIRTIO_MENU
277b95fec6SVincent Legoll	bool "Virtio drivers"
287b95fec6SVincent Legoll	default y
297b95fec6SVincent Legoll
307b95fec6SVincent Legollif VIRTIO_MENU
31e7254219SOhad Ben-Cohen
32*c346dae4SJason Wangconfig VIRTIO_HARDEN_NOTIFICATION
33*c346dae4SJason Wang        bool "Harden virtio notification"
34*c346dae4SJason Wang        help
35*c346dae4SJason Wang          Enable this to harden the device notifications and suppress
36*c346dae4SJason Wang          those that happen at a time where notifications are illegal.
37*c346dae4SJason Wang
38*c346dae4SJason Wang          Experimental: Note that several drivers still have bugs that
39*c346dae4SJason Wang          may cause crashes or hangs when correct handling of
40*c346dae4SJason Wang          notifications is enforced; depending on the subset of
41*c346dae4SJason Wang          drivers and devices you use, this may or may not work.
42*c346dae4SJason Wang
43*c346dae4SJason Wang          If unsure, say N.
44*c346dae4SJason Wang
453343660dSAnthony Liguoriconfig VIRTIO_PCI
46d72c5a8cSKees Cook	tristate "PCI driver for virtio devices"
47d72c5a8cSKees Cook	depends on PCI
48fd502729SJason Wang	select VIRTIO_PCI_LIB
493343660dSAnthony Liguori	select VIRTIO
50a7f7f624SMasahiro Yamada	help
51b2a6d51dSMichael S. Tsirkin	  This driver provides support for virtio based paravirtual device
523343660dSAnthony Liguori	  drivers over PCI.  This requires that your VMM has appropriate PCI
533343660dSAnthony Liguori	  virtio backends.  Most QEMU based VMMs should support these devices
543343660dSAnthony Liguori	  (like KVM or Xen).
553343660dSAnthony Liguori
563343660dSAnthony Liguori	  If unsure, say M.
573343660dSAnthony Liguori
5846506da5SMichael S. Tsirkinconfig VIRTIO_PCI_LEGACY
5946506da5SMichael S. Tsirkin	bool "Support for legacy virtio draft 0.9.X and older devices"
6046506da5SMichael S. Tsirkin	default y
6146506da5SMichael S. Tsirkin	depends on VIRTIO_PCI
62d89c8169SWu Zongyong	select VIRTIO_PCI_LIB_LEGACY
63a7f7f624SMasahiro Yamada	help
6446506da5SMichael S. Tsirkin          Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
6546506da5SMichael S. Tsirkin
6646506da5SMichael S. Tsirkin	  This option enables building a transitional driver, supporting
6746506da5SMichael S. Tsirkin	  both devices conforming to Virtio 1 specification, and legacy devices.
6846506da5SMichael S. Tsirkin	  If disabled, you get a slightly smaller, non-transitional driver,
6946506da5SMichael S. Tsirkin	  with no legacy compatibility.
7046506da5SMichael S. Tsirkin
7146506da5SMichael S. Tsirkin          So look out into your driveway.  Do you have a flying car?  If
7246506da5SMichael S. Tsirkin          so, you can happily disable this option and virtio will not
7346506da5SMichael S. Tsirkin          break.  Otherwise, leave it set.  Unless you're testing what
7446506da5SMichael S. Tsirkin          life will be like in The Future.
7546506da5SMichael S. Tsirkin
7646506da5SMichael S. Tsirkin	  If unsure, say Y.
7746506da5SMichael S. Tsirkin
78c043b4a8SJason Wangconfig VIRTIO_VDPA
79c043b4a8SJason Wang	tristate "vDPA driver for virtio devices"
8058ad1372SMichael S. Tsirkin	depends on VDPA
81c043b4a8SJason Wang	select VIRTIO
82c043b4a8SJason Wang	help
83c043b4a8SJason Wang	  This driver provides support for virtio based paravirtual
84c043b4a8SJason Wang	  device driver over vDPA bus. For this to be useful, you need
85c043b4a8SJason Wang	  an appropriate vDPA device implementation that operates on a
86c043b4a8SJason Wang	  physical device to allow the datapath of virtio to be
87c043b4a8SJason Wang	  offloaded to hardware.
88c043b4a8SJason Wang
89c043b4a8SJason Wang	  If unsure, say M.
90c043b4a8SJason Wang
916e84200cSPankaj Guptaconfig VIRTIO_PMEM
926e84200cSPankaj Gupta	tristate "Support for virtio pmem driver"
936e84200cSPankaj Gupta	depends on VIRTIO
946e84200cSPankaj Gupta	depends on LIBNVDIMM
956e84200cSPankaj Gupta	help
966e84200cSPankaj Gupta	  This driver provides access to virtio-pmem devices, storage devices
976e84200cSPankaj Gupta	  that are mapped into the physical address space - similar to NVDIMMs
986e84200cSPankaj Gupta	   - with a virtio-based flushing interface.
996e84200cSPankaj Gupta
1006e84200cSPankaj Gupta	  If unsure, say Y.
1016e84200cSPankaj Gupta
1026b35e407SRusty Russellconfig VIRTIO_BALLOON
1037a23eb28SRusty Russell	tristate "Virtio balloon driver"
1047a23eb28SRusty Russell	depends on VIRTIO
10509316c09SKonstantin Khlebnikov	select MEMORY_BALLOON
106b0c504f1SAlexander Duyck	select PAGE_REPORTING
107a7f7f624SMasahiro Yamada	help
1086b35e407SRusty Russell	 This driver supports increasing and decreasing the amount
1096b35e407SRusty Russell	 of memory within a KVM guest.
1106b35e407SRusty Russell
1116b35e407SRusty Russell	 If unsure, say M.
1126b35e407SRusty Russell
1135f1f79bbSDavid Hildenbrandconfig VIRTIO_MEM
1145f1f79bbSDavid Hildenbrand	tristate "Virtio mem driver"
1156f4abbaaSGavin Shan	depends on X86_64 || ARM64
1165f1f79bbSDavid Hildenbrand	depends on VIRTIO
11750f9481eSDavid Hildenbrand	depends on MEMORY_HOTPLUG
1185f1f79bbSDavid Hildenbrand	depends on MEMORY_HOTREMOVE
119a96b0d06SWeilong Chen	depends on CONTIG_ALLOC
1202128f4e2SDavid Hildenbrand	depends on EXCLUSIVE_SYSTEM_RAM
1215f1f79bbSDavid Hildenbrand	help
1225f1f79bbSDavid Hildenbrand	 This driver provides access to virtio-mem paravirtualized memory
1235f1f79bbSDavid Hildenbrand	 devices, allowing to hotplug and hotunplug memory.
1245f1f79bbSDavid Hildenbrand
1256f4abbaaSGavin Shan	 This driver was only tested under x86-64 and arm64, but should
1266f4abbaaSGavin Shan	 theoretically work on all architectures that support memory hotplug
1276f4abbaaSGavin Shan	 and hotremove.
1285f1f79bbSDavid Hildenbrand
1295f1f79bbSDavid Hildenbrand	 If unsure, say M.
1305f1f79bbSDavid Hildenbrand
131271c8651SGerd Hoffmannconfig VIRTIO_INPUT
132271c8651SGerd Hoffmann	tristate "Virtio input driver"
133271c8651SGerd Hoffmann	depends on VIRTIO
134271c8651SGerd Hoffmann	depends on INPUT
135a7f7f624SMasahiro Yamada	help
136271c8651SGerd Hoffmann	 This driver supports virtio input devices such as
137271c8651SGerd Hoffmann	 keyboards, mice and tablets.
138271c8651SGerd Hoffmann
139271c8651SGerd Hoffmann	 If unsure, say M.
140271c8651SGerd Hoffmann
141edfd52e6SPawel Mollconfig VIRTIO_MMIO
142d72c5a8cSKees Cook	tristate "Platform bus driver for memory mapped virtio devices"
143780bc790SAndy Lutomirski	depends on HAS_IOMEM && HAS_DMA
144edfd52e6SPawel Moll	select VIRTIO
145a7f7f624SMasahiro Yamada	help
146edfd52e6SPawel Moll	 This drivers provides support for memory mapped virtio
147edfd52e6SPawel Moll	 platform device driver.
148edfd52e6SPawel Moll
149edfd52e6SPawel Moll 	 If unsure, say N.
150edfd52e6SPawel Moll
15181a054ceSPawel Mollconfig VIRTIO_MMIO_CMDLINE_DEVICES
15281a054ceSPawel Moll	bool "Memory mapped virtio devices parameter parsing"
15381a054ceSPawel Moll	depends on VIRTIO_MMIO
154a7f7f624SMasahiro Yamada	help
15581a054ceSPawel Moll	 Allow virtio-mmio devices instantiation via the kernel command line
15681a054ceSPawel Moll	 or module parameters. Be aware that using incorrect parameters (base
15781a054ceSPawel Moll	 address in particular) can crash your system - you have been warned.
1588c27ceffSMauro Carvalho Chehab	 See Documentation/admin-guide/kernel-parameters.rst for details.
15981a054ceSPawel Moll
16081a054ceSPawel Moll	 If unsure, say 'N'.
16181a054ceSPawel Moll
1629fe2f897SDavid Stevensconfig VIRTIO_DMA_SHARED_BUFFER
1639fe2f897SDavid Stevens	tristate
1649fe2f897SDavid Stevens	depends on DMA_SHARED_BUFFER
1659fe2f897SDavid Stevens	help
1669fe2f897SDavid Stevens	 This option adds a flavor of dma buffers that are backed by
1679fe2f897SDavid Stevens	 virtio resources.
1689fe2f897SDavid Stevens
1697b95fec6SVincent Legollendif # VIRTIO_MENU
170