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