xref: /linux/drivers/virtio/Kconfig (revision a603002eea8213eec5211be5a85db8340aea06d0)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2*a603002eSJuergen Grossconfig VIRTIO_ANCHOR
3*a603002eSJuergen Gross	bool
4*a603002eSJuergen Gross
5ec3d41c4SRusty Russellconfig VIRTIO
6c6fd4701SRusty Russell	tristate
7*a603002eSJuergen Gross	select VIRTIO_ANCHOR
8a7f7f624SMasahiro Yamada	help
9387daf17SRusty Russell	  This option is selected by any driver which implements the virtio
10ecda85e7SJuergen Gross	  bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
11ecda85e7SJuergen Gross	  or CONFIG_S390_GUEST.
120a8a69ddSRusty Russell
13fd502729SJason Wangconfig VIRTIO_PCI_LIB
14fd502729SJason Wang	tristate
15fd502729SJason Wang	help
16fd502729SJason Wang	  Modern PCI device implementation. This module implements the
17fd502729SJason Wang	  basic probe and control for devices which are based on modern
18fd502729SJason Wang	  PCI device with possible vendor specific extensions. Any
19fd502729SJason Wang	  module that selects this module must depend on PCI.
20fd502729SJason Wang
21d89c8169SWu Zongyongconfig VIRTIO_PCI_LIB_LEGACY
22d89c8169SWu Zongyong	tristate
23d89c8169SWu Zongyong	help
24d89c8169SWu Zongyong	  Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device)
25d89c8169SWu Zongyong	  implementation.
26d89c8169SWu Zongyong	  This module implements the basic probe and control for devices
27d89c8169SWu Zongyong	  which are based on legacy PCI device. Any module that selects this
28d89c8169SWu Zongyong	  module must depend on PCI.
29d89c8169SWu Zongyong
307b95fec6SVincent Legollmenuconfig VIRTIO_MENU
317b95fec6SVincent Legoll	bool "Virtio drivers"
327b95fec6SVincent Legoll	default y
337b95fec6SVincent Legoll
347b95fec6SVincent Legollif VIRTIO_MENU
35e7254219SOhad Ben-Cohen
36c346dae4SJason Wangconfig VIRTIO_HARDEN_NOTIFICATION
37c346dae4SJason Wang        bool "Harden virtio notification"
38c346dae4SJason Wang        help
39c346dae4SJason Wang          Enable this to harden the device notifications and suppress
40c346dae4SJason Wang          those that happen at a time where notifications are illegal.
41c346dae4SJason Wang
42c346dae4SJason Wang          Experimental: Note that several drivers still have bugs that
43c346dae4SJason Wang          may cause crashes or hangs when correct handling of
44c346dae4SJason Wang          notifications is enforced; depending on the subset of
45c346dae4SJason Wang          drivers and devices you use, this may or may not work.
46c346dae4SJason Wang
47c346dae4SJason Wang          If unsure, say N.
48c346dae4SJason Wang
493343660dSAnthony Liguoriconfig VIRTIO_PCI
50d72c5a8cSKees Cook	tristate "PCI driver for virtio devices"
51d72c5a8cSKees Cook	depends on PCI
52fd502729SJason Wang	select VIRTIO_PCI_LIB
533343660dSAnthony Liguori	select VIRTIO
54a7f7f624SMasahiro Yamada	help
55b2a6d51dSMichael S. Tsirkin	  This driver provides support for virtio based paravirtual device
563343660dSAnthony Liguori	  drivers over PCI.  This requires that your VMM has appropriate PCI
573343660dSAnthony Liguori	  virtio backends.  Most QEMU based VMMs should support these devices
583343660dSAnthony Liguori	  (like KVM or Xen).
593343660dSAnthony Liguori
603343660dSAnthony Liguori	  If unsure, say M.
613343660dSAnthony Liguori
6246506da5SMichael S. Tsirkinconfig VIRTIO_PCI_LEGACY
6346506da5SMichael S. Tsirkin	bool "Support for legacy virtio draft 0.9.X and older devices"
6446506da5SMichael S. Tsirkin	default y
6546506da5SMichael S. Tsirkin	depends on VIRTIO_PCI
66d89c8169SWu Zongyong	select VIRTIO_PCI_LIB_LEGACY
67a7f7f624SMasahiro Yamada	help
6846506da5SMichael S. Tsirkin          Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
6946506da5SMichael S. Tsirkin
7046506da5SMichael S. Tsirkin	  This option enables building a transitional driver, supporting
7146506da5SMichael S. Tsirkin	  both devices conforming to Virtio 1 specification, and legacy devices.
7246506da5SMichael S. Tsirkin	  If disabled, you get a slightly smaller, non-transitional driver,
7346506da5SMichael S. Tsirkin	  with no legacy compatibility.
7446506da5SMichael S. Tsirkin
7546506da5SMichael S. Tsirkin          So look out into your driveway.  Do you have a flying car?  If
7646506da5SMichael S. Tsirkin          so, you can happily disable this option and virtio will not
7746506da5SMichael S. Tsirkin          break.  Otherwise, leave it set.  Unless you're testing what
7846506da5SMichael S. Tsirkin          life will be like in The Future.
7946506da5SMichael S. Tsirkin
8046506da5SMichael S. Tsirkin	  If unsure, say Y.
8146506da5SMichael S. Tsirkin
82c043b4a8SJason Wangconfig VIRTIO_VDPA
83c043b4a8SJason Wang	tristate "vDPA driver for virtio devices"
8458ad1372SMichael S. Tsirkin	depends on VDPA
85c043b4a8SJason Wang	select VIRTIO
86c043b4a8SJason Wang	help
87c043b4a8SJason Wang	  This driver provides support for virtio based paravirtual
88c043b4a8SJason Wang	  device driver over vDPA bus. For this to be useful, you need
89c043b4a8SJason Wang	  an appropriate vDPA device implementation that operates on a
90c043b4a8SJason Wang	  physical device to allow the datapath of virtio to be
91c043b4a8SJason Wang	  offloaded to hardware.
92c043b4a8SJason Wang
93c043b4a8SJason Wang	  If unsure, say M.
94c043b4a8SJason Wang
956e84200cSPankaj Guptaconfig VIRTIO_PMEM
966e84200cSPankaj Gupta	tristate "Support for virtio pmem driver"
976e84200cSPankaj Gupta	depends on VIRTIO
986e84200cSPankaj Gupta	depends on LIBNVDIMM
996e84200cSPankaj Gupta	help
1006e84200cSPankaj Gupta	  This driver provides access to virtio-pmem devices, storage devices
1016e84200cSPankaj Gupta	  that are mapped into the physical address space - similar to NVDIMMs
1026e84200cSPankaj Gupta	   - with a virtio-based flushing interface.
1036e84200cSPankaj Gupta
1046e84200cSPankaj Gupta	  If unsure, say Y.
1056e84200cSPankaj Gupta
1066b35e407SRusty Russellconfig VIRTIO_BALLOON
1077a23eb28SRusty Russell	tristate "Virtio balloon driver"
1087a23eb28SRusty Russell	depends on VIRTIO
10909316c09SKonstantin Khlebnikov	select MEMORY_BALLOON
110b0c504f1SAlexander Duyck	select PAGE_REPORTING
111a7f7f624SMasahiro Yamada	help
1126b35e407SRusty Russell	 This driver supports increasing and decreasing the amount
1136b35e407SRusty Russell	 of memory within a KVM guest.
1146b35e407SRusty Russell
1156b35e407SRusty Russell	 If unsure, say M.
1166b35e407SRusty Russell
1175f1f79bbSDavid Hildenbrandconfig VIRTIO_MEM
1185f1f79bbSDavid Hildenbrand	tristate "Virtio mem driver"
1196f4abbaaSGavin Shan	depends on X86_64 || ARM64
1205f1f79bbSDavid Hildenbrand	depends on VIRTIO
12150f9481eSDavid Hildenbrand	depends on MEMORY_HOTPLUG
1225f1f79bbSDavid Hildenbrand	depends on MEMORY_HOTREMOVE
123a96b0d06SWeilong Chen	depends on CONTIG_ALLOC
1242128f4e2SDavid Hildenbrand	depends on EXCLUSIVE_SYSTEM_RAM
1255f1f79bbSDavid Hildenbrand	help
1265f1f79bbSDavid Hildenbrand	 This driver provides access to virtio-mem paravirtualized memory
1275f1f79bbSDavid Hildenbrand	 devices, allowing to hotplug and hotunplug memory.
1285f1f79bbSDavid Hildenbrand
1296f4abbaaSGavin Shan	 This driver was only tested under x86-64 and arm64, but should
1306f4abbaaSGavin Shan	 theoretically work on all architectures that support memory hotplug
1316f4abbaaSGavin Shan	 and hotremove.
1325f1f79bbSDavid Hildenbrand
1335f1f79bbSDavid Hildenbrand	 If unsure, say M.
1345f1f79bbSDavid Hildenbrand
135271c8651SGerd Hoffmannconfig VIRTIO_INPUT
136271c8651SGerd Hoffmann	tristate "Virtio input driver"
137271c8651SGerd Hoffmann	depends on VIRTIO
138271c8651SGerd Hoffmann	depends on INPUT
139a7f7f624SMasahiro Yamada	help
140271c8651SGerd Hoffmann	 This driver supports virtio input devices such as
141271c8651SGerd Hoffmann	 keyboards, mice and tablets.
142271c8651SGerd Hoffmann
143271c8651SGerd Hoffmann	 If unsure, say M.
144271c8651SGerd Hoffmann
145edfd52e6SPawel Mollconfig VIRTIO_MMIO
146d72c5a8cSKees Cook	tristate "Platform bus driver for memory mapped virtio devices"
147780bc790SAndy Lutomirski	depends on HAS_IOMEM && HAS_DMA
148edfd52e6SPawel Moll	select VIRTIO
149a7f7f624SMasahiro Yamada	help
150edfd52e6SPawel Moll	 This drivers provides support for memory mapped virtio
151edfd52e6SPawel Moll	 platform device driver.
152edfd52e6SPawel Moll
153edfd52e6SPawel Moll 	 If unsure, say N.
154edfd52e6SPawel Moll
15581a054ceSPawel Mollconfig VIRTIO_MMIO_CMDLINE_DEVICES
15681a054ceSPawel Moll	bool "Memory mapped virtio devices parameter parsing"
15781a054ceSPawel Moll	depends on VIRTIO_MMIO
158a7f7f624SMasahiro Yamada	help
15981a054ceSPawel Moll	 Allow virtio-mmio devices instantiation via the kernel command line
16081a054ceSPawel Moll	 or module parameters. Be aware that using incorrect parameters (base
16181a054ceSPawel Moll	 address in particular) can crash your system - you have been warned.
1628c27ceffSMauro Carvalho Chehab	 See Documentation/admin-guide/kernel-parameters.rst for details.
16381a054ceSPawel Moll
16481a054ceSPawel Moll	 If unsure, say 'N'.
16581a054ceSPawel Moll
1669fe2f897SDavid Stevensconfig VIRTIO_DMA_SHARED_BUFFER
1679fe2f897SDavid Stevens	tristate
1689fe2f897SDavid Stevens	depends on DMA_SHARED_BUFFER
1699fe2f897SDavid Stevens	help
1709fe2f897SDavid Stevens	 This option adds a flavor of dma buffers that are backed by
1719fe2f897SDavid Stevens	 virtio resources.
1729fe2f897SDavid Stevens
1737b95fec6SVincent Legollendif # VIRTIO_MENU
174