Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only
2config VIRTIO
3 tristate
4 help
5 This option is selected by any driver which implements the virtio
6 bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
7 or CONFIG_S390_GUEST.
8
9config 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
15config 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
23config VIRTIO_PCI_LIB_LEGACY
24 tristate
25 help
26 Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device)
27 implementation.
28 This module implements the basic probe and control for devices
29 which are based on legacy PCI device. Any module that selects this
30 module must depend on PCI.
31
32menuconfig VIRTIO_MENU
33 bool "Virtio drivers"
34 default y
35
36if VIRTIO_MENU
37
38config VIRTIO_PCI
39 tristate "PCI driver for virtio devices"
40 depends on PCI
41 select VIRTIO_PCI_LIB
42 select VIRTIO
43 help
44 This driver provides support for virtio based paravirtual device
45 drivers over PCI. This requires that your VMM has appropriate PCI
46 virtio backends. Most QEMU based VMMs should support these devices
47 (like KVM or Xen).
48
49 If unsure, say M.
50
51config VIRTIO_PCI_LEGACY
52 bool "Support for legacy virtio draft 0.9.X and older devices"
53 default y
54 depends on VIRTIO_PCI
55 select VIRTIO_PCI_LIB_LEGACY
56 help
57 Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
58
59 This option enables building a transitional driver, supporting
60 both devices conforming to Virtio 1 specification, and legacy devices.
61 If disabled, you get a slightly smaller, non-transitional driver,
62 with no legacy compatibility.
63
64 So look out into your driveway. Do you have a flying car? If
65 so, you can happily disable this option and virtio will not
66 break. Otherwise, leave it set. Unless you're testing what
67 life will be like in The Future.
68
69 If unsure, say Y.
70
71config VIRTIO_VDPA
72 tristate "vDPA driver for virtio devices"
73 depends on VDPA
74 select VIRTIO
75 help
76 This driver provides support for virtio based paravirtual
77 device driver over vDPA bus. For this to be useful, you need
78 an appropriate vDPA device implementation that operates on a
79 physical device to allow the datapath of virtio to be
80 offloaded to hardware.
81
82 If unsure, say M.
83
84config VIRTIO_PMEM
85 tristate "Support for virtio pmem driver"
86 depends on VIRTIO
87 depends on LIBNVDIMM
88 help
89 This driver provides access to virtio-pmem devices, storage devices
90 that are mapped into the physical address space - similar to NVDIMMs
91 - with a virtio-based flushing interface.
92
93 If unsure, say Y.
94
95config VIRTIO_BALLOON
96 tristate "Virtio balloon driver"
97 depends on VIRTIO
98 select MEMORY_BALLOON
99 select PAGE_REPORTING
100 help
101 This driver supports increasing and decreasing the amount
102 of memory within a KVM guest.
103
104 If unsure, say M.
105
106config VIRTIO_MEM
107 tristate "Virtio mem driver"
108 default m
109 depends on X86_64
110 depends on VIRTIO
111 depends on MEMORY_HOTPLUG
112 depends on MEMORY_HOTREMOVE
113 depends on CONTIG_ALLOC
114 depends on EXCLUSIVE_SYSTEM_RAM
115 help
116 This driver provides access to virtio-mem paravirtualized memory
117 devices, allowing to hotplug and hotunplug memory.
118
119 This driver was only tested under x86-64, but should theoretically
120 work on all architectures that support memory hotplug and hotremove.
121
122 If unsure, say M.
123
124config VIRTIO_INPUT
125 tristate "Virtio input driver"
126 depends on VIRTIO
127 depends on INPUT
128 help
129 This driver supports virtio input devices such as
130 keyboards, mice and tablets.
131
132 If unsure, say M.
133
134config VIRTIO_MMIO
135 tristate "Platform bus driver for memory mapped virtio devices"
136 depends on HAS_IOMEM && HAS_DMA
137 select VIRTIO
138 help
139 This drivers provides support for memory mapped virtio
140 platform device driver.
141
142 If unsure, say N.
143
144config VIRTIO_MMIO_CMDLINE_DEVICES
145 bool "Memory mapped virtio devices parameter parsing"
146 depends on VIRTIO_MMIO
147 help
148 Allow virtio-mmio devices instantiation via the kernel command line
149 or module parameters. Be aware that using incorrect parameters (base
150 address in particular) can crash your system - you have been warned.
151 See Documentation/admin-guide/kernel-parameters.rst for details.
152
153 If unsure, say 'N'.
154
155config VIRTIO_DMA_SHARED_BUFFER
156 tristate
157 depends on DMA_SHARED_BUFFER
158 help
159 This option adds a flavor of dma buffers that are backed by
160 virtio resources.
161
162endif # VIRTIO_MENU