blob: ce1b3f6ec325de3ca097a818be4757d3907a3def [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Rusty Russellec3d41c2007-10-22 11:03:36 +10002config VIRTIO
Rusty Russellc6fd4702008-02-04 23:50:05 -05003 tristate
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +09004 help
Rusty Russell387daf12012-09-28 15:05:15 +09305 This option is selected by any driver which implements the virtio
Juergen Grossecda85e2017-08-16 19:31:57 +02006 bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
7 or CONFIG_S390_GUEST.
Rusty Russell0a8a69d2007-10-22 11:03:40 +10008
Pierre Morel0afa15e2020-09-10 10:53:49 +02009config ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS
10 bool
11 help
12 This option is selected if the architecture may need to enforce
13 VIRTIO_F_ACCESS_PLATFORM
14
Jason Wangfd502722021-01-04 14:55:00 +080015config VIRTIO_PCI_LIB
16 tristate
17 help
18 Modern PCI device implementation. This module implements the
19 basic probe and control for devices which are based on modern
20 PCI device with possible vendor specific extensions. Any
21 module that selects this module must depend on PCI.
22
Vincent Legoll7b95fec2018-01-07 12:33:56 +010023menuconfig VIRTIO_MENU
24 bool "Virtio drivers"
25 default y
26
27if VIRTIO_MENU
Ohad Ben-Cohene7254212011-07-05 17:06:14 +030028
Anthony Liguori33436602007-11-12 21:30:26 -060029config VIRTIO_PCI
Kees Cookd72c5a82012-10-02 11:19:07 -070030 tristate "PCI driver for virtio devices"
31 depends on PCI
Jason Wangfd502722021-01-04 14:55:00 +080032 select VIRTIO_PCI_LIB
Anthony Liguori33436602007-11-12 21:30:26 -060033 select VIRTIO
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090034 help
Michael S. Tsirkinb2a6d512015-01-15 14:15:51 +020035 This driver provides support for virtio based paravirtual device
Anthony Liguori33436602007-11-12 21:30:26 -060036 drivers over PCI. This requires that your VMM has appropriate PCI
37 virtio backends. Most QEMU based VMMs should support these devices
38 (like KVM or Xen).
39
Anthony Liguori33436602007-11-12 21:30:26 -060040 If unsure, say M.
41
Michael S. Tsirkin46506da2015-01-15 16:06:26 +020042config VIRTIO_PCI_LEGACY
43 bool "Support for legacy virtio draft 0.9.X and older devices"
44 default y
45 depends on VIRTIO_PCI
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090046 help
Michael S. Tsirkin46506da2015-01-15 16:06:26 +020047 Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
48
49 This option enables building a transitional driver, supporting
50 both devices conforming to Virtio 1 specification, and legacy devices.
51 If disabled, you get a slightly smaller, non-transitional driver,
52 with no legacy compatibility.
53
54 So look out into your driveway. Do you have a flying car? If
55 so, you can happily disable this option and virtio will not
56 break. Otherwise, leave it set. Unless you're testing what
57 life will be like in The Future.
58
59 If unsure, say Y.
60
Jason Wangc043b4a2020-03-26 22:01:22 +080061config VIRTIO_VDPA
62 tristate "vDPA driver for virtio devices"
Michael S. Tsirkin58ad1372020-04-12 04:36:55 -040063 depends on VDPA
Jason Wangc043b4a2020-03-26 22:01:22 +080064 select VIRTIO
65 help
66 This driver provides support for virtio based paravirtual
67 device driver over vDPA bus. For this to be useful, you need
68 an appropriate vDPA device implementation that operates on a
69 physical device to allow the datapath of virtio to be
70 offloaded to hardware.
71
72 If unsure, say M.
73
Pankaj Gupta6e842002019-07-05 19:33:23 +053074config VIRTIO_PMEM
75 tristate "Support for virtio pmem driver"
76 depends on VIRTIO
77 depends on LIBNVDIMM
78 help
79 This driver provides access to virtio-pmem devices, storage devices
80 that are mapped into the physical address space - similar to NVDIMMs
81 - with a virtio-based flushing interface.
82
83 If unsure, say Y.
84
Rusty Russell6b35e402008-02-04 23:50:12 -050085config VIRTIO_BALLOON
Rusty Russell7a23eb22012-09-28 15:05:14 +093086 tristate "Virtio balloon driver"
87 depends on VIRTIO
Konstantin Khlebnikov09316c02014-10-09 15:29:32 -070088 select MEMORY_BALLOON
Alexander Duyckb0c504f2020-04-06 20:05:05 -070089 select PAGE_REPORTING
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090090 help
Rusty Russell6b35e402008-02-04 23:50:12 -050091 This driver supports increasing and decreasing the amount
92 of memory within a KVM guest.
93
94 If unsure, say M.
95
David Hildenbrand5f1f79b2020-05-07 16:01:25 +020096config VIRTIO_MEM
97 tristate "Virtio mem driver"
98 default m
99 depends on X86_64
100 depends on VIRTIO
101 depends on MEMORY_HOTPLUG_SPARSE
102 depends on MEMORY_HOTREMOVE
Weilong Chena96b0d02020-06-19 16:03:33 +0800103 depends on CONTIG_ALLOC
David Hildenbrand5f1f79b2020-05-07 16:01:25 +0200104 help
105 This driver provides access to virtio-mem paravirtualized memory
106 devices, allowing to hotplug and hotunplug memory.
107
108 This driver was only tested under x86-64, but should theoretically
109 work on all architectures that support memory hotplug and hotremove.
110
111 If unsure, say M.
112
Gerd Hoffmann271c8652015-03-27 12:46:12 +1030113config VIRTIO_INPUT
114 tristate "Virtio input driver"
115 depends on VIRTIO
116 depends on INPUT
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900117 help
Gerd Hoffmann271c8652015-03-27 12:46:12 +1030118 This driver supports virtio input devices such as
119 keyboards, mice and tablets.
120
121 If unsure, say M.
122
Fabrizio Castro6166e532019-04-03 16:04:09 +0100123config VIRTIO_MMIO
Kees Cookd72c5a82012-10-02 11:19:07 -0700124 tristate "Platform bus driver for memory mapped virtio devices"
Andy Lutomirski780bc792016-02-02 21:46:36 -0800125 depends on HAS_IOMEM && HAS_DMA
Fabrizio Castro6166e532019-04-03 16:04:09 +0100126 select VIRTIO
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900127 help
Fabrizio Castro6166e532019-04-03 16:04:09 +0100128 This drivers provides support for memory mapped virtio
Pawel Molledfd52e2011-10-24 14:07:03 +0100129 platform device driver.
130
131 If unsure, say N.
132
Pawel Moll81a054c2012-05-09 18:30:16 +0100133config VIRTIO_MMIO_CMDLINE_DEVICES
134 bool "Memory mapped virtio devices parameter parsing"
135 depends on VIRTIO_MMIO
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900136 help
Pawel Moll81a054c2012-05-09 18:30:16 +0100137 Allow virtio-mmio devices instantiation via the kernel command line
138 or module parameters. Be aware that using incorrect parameters (base
139 address in particular) can crash your system - you have been warned.
Mauro Carvalho Chehab8c27ceff32016-10-18 10:12:27 -0200140 See Documentation/admin-guide/kernel-parameters.rst for details.
Pawel Moll81a054c2012-05-09 18:30:16 +0100141
142 If unsure, say 'N'.
143
David Stevens9fe2f892020-08-19 12:10:11 +0900144config VIRTIO_DMA_SHARED_BUFFER
145 tristate
146 depends on DMA_SHARED_BUFFER
147 help
148 This option adds a flavor of dma buffers that are backed by
149 virtio resources.
150
Vincent Legoll7b95fec2018-01-07 12:33:56 +0100151endif # VIRTIO_MENU