Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
a603002e JG |
2 | config VIRTIO_ANCHOR |
3 | bool | |
4 | ||
ec3d41c4 | 5 | config VIRTIO |
c6fd4701 | 6 | tristate |
a603002e | 7 | select VIRTIO_ANCHOR |
a7f7f624 | 8 | help |
387daf17 | 9 | This option is selected by any driver which implements the virtio |
ecda85e7 JG |
10 | bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG |
11 | or CONFIG_S390_GUEST. | |
0a8a69dd | 12 | |
fd502729 JW |
13 | config VIRTIO_PCI_LIB |
14 | tristate | |
15 | help | |
16 | Modern PCI device implementation. This module implements the | |
17 | basic probe and control for devices which are based on modern | |
18 | PCI device with possible vendor specific extensions. Any | |
19 | module that selects this module must depend on PCI. | |
20 | ||
d89c8169 WZ |
21 | config VIRTIO_PCI_LIB_LEGACY |
22 | tristate | |
23 | help | |
24 | Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device) | |
25 | implementation. | |
26 | This module implements the basic probe and control for devices | |
27 | which are based on legacy PCI device. Any module that selects this | |
28 | module must depend on PCI. | |
29 | ||
7b95fec6 VL |
30 | menuconfig VIRTIO_MENU |
31 | bool "Virtio drivers" | |
32 | default y | |
33 | ||
34 | if VIRTIO_MENU | |
e7254219 | 35 | |
c346dae4 JW |
36 | config VIRTIO_HARDEN_NOTIFICATION |
37 | bool "Harden virtio notification" | |
ebe797f2 | 38 | depends on BROKEN |
c346dae4 JW |
39 | help |
40 | Enable this to harden the device notifications and suppress | |
41 | those that happen at a time where notifications are illegal. | |
42 | ||
ebe797f2 | 43 | Experimental: Note that several drivers still have issues that |
c346dae4 JW |
44 | may cause crashes or hangs when correct handling of |
45 | notifications is enforced; depending on the subset of | |
46 | drivers and devices you use, this may or may not work. | |
47 | ||
48 | If unsure, say N. | |
49 | ||
3343660d | 50 | config VIRTIO_PCI |
d72c5a8c KC |
51 | tristate "PCI driver for virtio devices" |
52 | depends on PCI | |
fd502729 | 53 | select VIRTIO_PCI_LIB |
3343660d | 54 | select VIRTIO |
a7f7f624 | 55 | help |
b2a6d51d | 56 | This driver provides support for virtio based paravirtual device |
3343660d AL |
57 | drivers over PCI. This requires that your VMM has appropriate PCI |
58 | virtio backends. Most QEMU based VMMs should support these devices | |
59 | (like KVM or Xen). | |
60 | ||
3343660d AL |
61 | If unsure, say M. |
62 | ||
46506da5 MT |
63 | config VIRTIO_PCI_LEGACY |
64 | bool "Support for legacy virtio draft 0.9.X and older devices" | |
65 | default y | |
66 | depends on VIRTIO_PCI | |
d89c8169 | 67 | select VIRTIO_PCI_LIB_LEGACY |
a7f7f624 | 68 | help |
46506da5 MT |
69 | Virtio PCI Card 0.9.X Draft (circa 2014) and older device support. |
70 | ||
71 | This option enables building a transitional driver, supporting | |
72 | both devices conforming to Virtio 1 specification, and legacy devices. | |
73 | If disabled, you get a slightly smaller, non-transitional driver, | |
74 | with no legacy compatibility. | |
75 | ||
76 | So look out into your driveway. Do you have a flying car? If | |
77 | so, you can happily disable this option and virtio will not | |
78 | break. Otherwise, leave it set. Unless you're testing what | |
79 | life will be like in The Future. | |
80 | ||
81 | If unsure, say Y. | |
82 | ||
c043b4a8 JW |
83 | config VIRTIO_VDPA |
84 | tristate "vDPA driver for virtio devices" | |
58ad1372 | 85 | depends on VDPA |
c043b4a8 JW |
86 | select VIRTIO |
87 | help | |
88 | This driver provides support for virtio based paravirtual | |
89 | device driver over vDPA bus. For this to be useful, you need | |
90 | an appropriate vDPA device implementation that operates on a | |
91 | physical device to allow the datapath of virtio to be | |
92 | offloaded to hardware. | |
93 | ||
94 | If unsure, say M. | |
95 | ||
6e84200c PG |
96 | config VIRTIO_PMEM |
97 | tristate "Support for virtio pmem driver" | |
98 | depends on VIRTIO | |
99 | depends on LIBNVDIMM | |
100 | help | |
101 | This driver provides access to virtio-pmem devices, storage devices | |
102 | that are mapped into the physical address space - similar to NVDIMMs | |
103 | - with a virtio-based flushing interface. | |
104 | ||
105 | If unsure, say Y. | |
106 | ||
6b35e407 | 107 | config VIRTIO_BALLOON |
7a23eb28 RR |
108 | tristate "Virtio balloon driver" |
109 | depends on VIRTIO | |
09316c09 | 110 | select MEMORY_BALLOON |
b0c504f1 | 111 | select PAGE_REPORTING |
a7f7f624 | 112 | help |
6b35e407 RR |
113 | This driver supports increasing and decreasing the amount |
114 | of memory within a KVM guest. | |
115 | ||
116 | If unsure, say M. | |
117 | ||
5f1f79bb DH |
118 | config VIRTIO_MEM |
119 | tristate "Virtio mem driver" | |
6f4abbaa | 120 | depends on X86_64 || ARM64 |
5f1f79bb | 121 | depends on VIRTIO |
50f9481e | 122 | depends on MEMORY_HOTPLUG |
5f1f79bb | 123 | depends on MEMORY_HOTREMOVE |
a96b0d06 | 124 | depends on CONTIG_ALLOC |
2128f4e2 | 125 | depends on EXCLUSIVE_SYSTEM_RAM |
5f1f79bb DH |
126 | help |
127 | This driver provides access to virtio-mem paravirtualized memory | |
128 | devices, allowing to hotplug and hotunplug memory. | |
129 | ||
0b6fd46e DH |
130 | This driver currently only supports x86-64 and arm64. Although it |
131 | should compile on other architectures that implement memory | |
132 | hot(un)plug, architecture-specific and/or common | |
133 | code changes may be required for virtio-mem, kdump and kexec to work as | |
134 | expected. | |
5f1f79bb DH |
135 | |
136 | If unsure, say M. | |
137 | ||
271c8651 GH |
138 | config VIRTIO_INPUT |
139 | tristate "Virtio input driver" | |
140 | depends on VIRTIO | |
141 | depends on INPUT | |
a7f7f624 | 142 | help |
271c8651 GH |
143 | This driver supports virtio input devices such as |
144 | keyboards, mice and tablets. | |
145 | ||
146 | If unsure, say M. | |
147 | ||
6166e533 | 148 | config VIRTIO_MMIO |
d72c5a8c | 149 | tristate "Platform bus driver for memory mapped virtio devices" |
780bc790 | 150 | depends on HAS_IOMEM && HAS_DMA |
6166e533 | 151 | select VIRTIO |
a7f7f624 | 152 | help |
6166e533 | 153 | This drivers provides support for memory mapped virtio |
edfd52e6 PM |
154 | platform device driver. |
155 | ||
156 | If unsure, say N. | |
157 | ||
81a054ce PM |
158 | config VIRTIO_MMIO_CMDLINE_DEVICES |
159 | bool "Memory mapped virtio devices parameter parsing" | |
160 | depends on VIRTIO_MMIO | |
a7f7f624 | 161 | help |
81a054ce PM |
162 | Allow virtio-mmio devices instantiation via the kernel command line |
163 | or module parameters. Be aware that using incorrect parameters (base | |
164 | address in particular) can crash your system - you have been warned. | |
8c27ceff | 165 | See Documentation/admin-guide/kernel-parameters.rst for details. |
81a054ce PM |
166 | |
167 | If unsure, say 'N'. | |
168 | ||
9fe2f897 DS |
169 | config VIRTIO_DMA_SHARED_BUFFER |
170 | tristate | |
171 | depends on DMA_SHARED_BUFFER | |
172 | help | |
173 | This option adds a flavor of dma buffers that are backed by | |
174 | virtio resources. | |
175 | ||
7b95fec6 | 176 | endif # VIRTIO_MENU |