xref: /linux/drivers/virtio/Kconfig (revision a96b0d061d476093cf86ca1c2de06fc57163588d)
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
97b95fec6SVincent Legollmenuconfig VIRTIO_MENU
107b95fec6SVincent Legoll	bool "Virtio drivers"
117b95fec6SVincent Legoll	default y
127b95fec6SVincent Legoll
137b95fec6SVincent Legollif VIRTIO_MENU
14e7254219SOhad Ben-Cohen
153343660dSAnthony Liguoriconfig VIRTIO_PCI
16d72c5a8cSKees Cook	tristate "PCI driver for virtio devices"
17d72c5a8cSKees Cook	depends on PCI
183343660dSAnthony Liguori	select VIRTIO
19a7f7f624SMasahiro Yamada	help
20b2a6d51dSMichael S. Tsirkin	  This driver provides support for virtio based paravirtual device
213343660dSAnthony Liguori	  drivers over PCI.  This requires that your VMM has appropriate PCI
223343660dSAnthony Liguori	  virtio backends.  Most QEMU based VMMs should support these devices
233343660dSAnthony Liguori	  (like KVM or Xen).
243343660dSAnthony Liguori
253343660dSAnthony Liguori	  If unsure, say M.
263343660dSAnthony Liguori
2746506da5SMichael S. Tsirkinconfig VIRTIO_PCI_LEGACY
2846506da5SMichael S. Tsirkin	bool "Support for legacy virtio draft 0.9.X and older devices"
2946506da5SMichael S. Tsirkin	default y
3046506da5SMichael S. Tsirkin	depends on VIRTIO_PCI
31a7f7f624SMasahiro Yamada	help
3246506da5SMichael S. Tsirkin          Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
3346506da5SMichael S. Tsirkin
3446506da5SMichael S. Tsirkin	  This option enables building a transitional driver, supporting
3546506da5SMichael S. Tsirkin	  both devices conforming to Virtio 1 specification, and legacy devices.
3646506da5SMichael S. Tsirkin	  If disabled, you get a slightly smaller, non-transitional driver,
3746506da5SMichael S. Tsirkin	  with no legacy compatibility.
3846506da5SMichael S. Tsirkin
3946506da5SMichael S. Tsirkin          So look out into your driveway.  Do you have a flying car?  If
4046506da5SMichael S. Tsirkin          so, you can happily disable this option and virtio will not
4146506da5SMichael S. Tsirkin          break.  Otherwise, leave it set.  Unless you're testing what
4246506da5SMichael S. Tsirkin          life will be like in The Future.
4346506da5SMichael S. Tsirkin
4446506da5SMichael S. Tsirkin	  If unsure, say Y.
4546506da5SMichael S. Tsirkin
46c043b4a8SJason Wangconfig VIRTIO_VDPA
47c043b4a8SJason Wang	tristate "vDPA driver for virtio devices"
4858ad1372SMichael S. Tsirkin	depends on VDPA
49c043b4a8SJason Wang	select VIRTIO
50c043b4a8SJason Wang	help
51c043b4a8SJason Wang	  This driver provides support for virtio based paravirtual
52c043b4a8SJason Wang	  device driver over vDPA bus. For this to be useful, you need
53c043b4a8SJason Wang	  an appropriate vDPA device implementation that operates on a
54c043b4a8SJason Wang	  physical device to allow the datapath of virtio to be
55c043b4a8SJason Wang	  offloaded to hardware.
56c043b4a8SJason Wang
57c043b4a8SJason Wang	  If unsure, say M.
58c043b4a8SJason Wang
596e84200cSPankaj Guptaconfig VIRTIO_PMEM
606e84200cSPankaj Gupta	tristate "Support for virtio pmem driver"
616e84200cSPankaj Gupta	depends on VIRTIO
626e84200cSPankaj Gupta	depends on LIBNVDIMM
636e84200cSPankaj Gupta	help
646e84200cSPankaj Gupta	  This driver provides access to virtio-pmem devices, storage devices
656e84200cSPankaj Gupta	  that are mapped into the physical address space - similar to NVDIMMs
666e84200cSPankaj Gupta	   - with a virtio-based flushing interface.
676e84200cSPankaj Gupta
686e84200cSPankaj Gupta	  If unsure, say Y.
696e84200cSPankaj Gupta
706b35e407SRusty Russellconfig VIRTIO_BALLOON
717a23eb28SRusty Russell	tristate "Virtio balloon driver"
727a23eb28SRusty Russell	depends on VIRTIO
7309316c09SKonstantin Khlebnikov	select MEMORY_BALLOON
74b0c504f1SAlexander Duyck	select PAGE_REPORTING
75a7f7f624SMasahiro Yamada	help
766b35e407SRusty Russell	 This driver supports increasing and decreasing the amount
776b35e407SRusty Russell	 of memory within a KVM guest.
786b35e407SRusty Russell
796b35e407SRusty Russell	 If unsure, say M.
806b35e407SRusty Russell
815f1f79bbSDavid Hildenbrandconfig VIRTIO_MEM
825f1f79bbSDavid Hildenbrand	tristate "Virtio mem driver"
835f1f79bbSDavid Hildenbrand	default m
845f1f79bbSDavid Hildenbrand	depends on X86_64
855f1f79bbSDavid Hildenbrand	depends on VIRTIO
865f1f79bbSDavid Hildenbrand	depends on MEMORY_HOTPLUG_SPARSE
875f1f79bbSDavid Hildenbrand	depends on MEMORY_HOTREMOVE
88*a96b0d06SWeilong Chen	depends on CONTIG_ALLOC
895f1f79bbSDavid Hildenbrand	help
905f1f79bbSDavid Hildenbrand	 This driver provides access to virtio-mem paravirtualized memory
915f1f79bbSDavid Hildenbrand	 devices, allowing to hotplug and hotunplug memory.
925f1f79bbSDavid Hildenbrand
935f1f79bbSDavid Hildenbrand	 This driver was only tested under x86-64, but should theoretically
945f1f79bbSDavid Hildenbrand	 work on all architectures that support memory hotplug and hotremove.
955f1f79bbSDavid Hildenbrand
965f1f79bbSDavid Hildenbrand	 If unsure, say M.
975f1f79bbSDavid Hildenbrand
98271c8651SGerd Hoffmannconfig VIRTIO_INPUT
99271c8651SGerd Hoffmann	tristate "Virtio input driver"
100271c8651SGerd Hoffmann	depends on VIRTIO
101271c8651SGerd Hoffmann	depends on INPUT
102a7f7f624SMasahiro Yamada	help
103271c8651SGerd Hoffmann	 This driver supports virtio input devices such as
104271c8651SGerd Hoffmann	 keyboards, mice and tablets.
105271c8651SGerd Hoffmann
106271c8651SGerd Hoffmann	 If unsure, say M.
107271c8651SGerd Hoffmann
108edfd52e6SPawel Mollconfig VIRTIO_MMIO
109d72c5a8cSKees Cook	tristate "Platform bus driver for memory mapped virtio devices"
110780bc790SAndy Lutomirski	depends on HAS_IOMEM && HAS_DMA
111edfd52e6SPawel Moll	select VIRTIO
112a7f7f624SMasahiro Yamada	help
113edfd52e6SPawel Moll	 This drivers provides support for memory mapped virtio
114edfd52e6SPawel Moll	 platform device driver.
115edfd52e6SPawel Moll
116edfd52e6SPawel Moll 	 If unsure, say N.
117edfd52e6SPawel Moll
11881a054ceSPawel Mollconfig VIRTIO_MMIO_CMDLINE_DEVICES
11981a054ceSPawel Moll	bool "Memory mapped virtio devices parameter parsing"
12081a054ceSPawel Moll	depends on VIRTIO_MMIO
121a7f7f624SMasahiro Yamada	help
12281a054ceSPawel Moll	 Allow virtio-mmio devices instantiation via the kernel command line
12381a054ceSPawel Moll	 or module parameters. Be aware that using incorrect parameters (base
12481a054ceSPawel Moll	 address in particular) can crash your system - you have been warned.
1258c27ceffSMauro Carvalho Chehab	 See Documentation/admin-guide/kernel-parameters.rst for details.
12681a054ceSPawel Moll
12781a054ceSPawel Moll	 If unsure, say 'N'.
12881a054ceSPawel Moll
1297b95fec6SVincent Legollendif # VIRTIO_MENU
130