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