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