blob: e76e9b9ba93cad564064de2073f37da08863fd2e [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Rusty Russellec3d41c2007-10-22 11:03:36 +10002config VIRTIO
Rusty Russellc6fd4702008-02-04 23:50:05 -05003 tristate
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +09004 help
Rusty Russell387daf12012-09-28 15:05:15 +09305 This option is selected by any driver which implements the virtio
Juergen Grossecda85e2017-08-16 19:31:57 +02006 bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
7 or CONFIG_S390_GUEST.
Rusty Russell0a8a69d2007-10-22 11:03:40 +10008
Vincent Legoll7b95fec2018-01-07 12:33:56 +01009menuconfig VIRTIO_MENU
10 bool "Virtio drivers"
11 default y
12
13if VIRTIO_MENU
Ohad Ben-Cohene7254212011-07-05 17:06:14 +030014
Anthony Liguori33436602007-11-12 21:30:26 -060015config VIRTIO_PCI
Kees Cookd72c5a82012-10-02 11:19:07 -070016 tristate "PCI driver for virtio devices"
17 depends on PCI
Anthony Liguori33436602007-11-12 21:30:26 -060018 select VIRTIO
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090019 help
Michael S. Tsirkinb2a6d512015-01-15 14:15:51 +020020 This driver provides support for virtio based paravirtual device
Anthony Liguori33436602007-11-12 21:30:26 -060021 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
Anthony Liguori33436602007-11-12 21:30:26 -060025 If unsure, say M.
26
Michael S. Tsirkin46506da2015-01-15 16:06:26 +020027config VIRTIO_PCI_LEGACY
28 bool "Support for legacy virtio draft 0.9.X and older devices"
29 default y
30 depends on VIRTIO_PCI
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090031 help
Michael S. Tsirkin46506da2015-01-15 16:06:26 +020032 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
Jason Wangc043b4a2020-03-26 22:01:22 +080046config VIRTIO_VDPA
47 tristate "vDPA driver for virtio devices"
Michael S. Tsirkin58ad1372020-04-12 04:36:55 -040048 depends on VDPA
Jason Wangc043b4a2020-03-26 22:01:22 +080049 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
Pankaj Gupta6e842002019-07-05 19:33:23 +053059config 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
Rusty Russell6b35e402008-02-04 23:50:12 -050070config VIRTIO_BALLOON
Rusty Russell7a23eb22012-09-28 15:05:14 +093071 tristate "Virtio balloon driver"
72 depends on VIRTIO
Konstantin Khlebnikov09316c02014-10-09 15:29:32 -070073 select MEMORY_BALLOON
Alexander Duyckb0c504f2020-04-06 20:05:05 -070074 select PAGE_REPORTING
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090075 help
Rusty Russell6b35e402008-02-04 23:50:12 -050076 This driver supports increasing and decreasing the amount
77 of memory within a KVM guest.
78
79 If unsure, say M.
80
David Hildenbrand5f1f79b2020-05-07 16:01:25 +020081config 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
Weilong Chena96b0d02020-06-19 16:03:33 +080088 depends on CONTIG_ALLOC
David Hildenbrand5f1f79b2020-05-07 16:01:25 +020089 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
Gerd Hoffmann271c8652015-03-27 12:46:12 +103098config VIRTIO_INPUT
99 tristate "Virtio input driver"
100 depends on VIRTIO
101 depends on INPUT
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900102 help
Gerd Hoffmann271c8652015-03-27 12:46:12 +1030103 This driver supports virtio input devices such as
104 keyboards, mice and tablets.
105
106 If unsure, say M.
107
Fabrizio Castro6166e532019-04-03 16:04:09 +0100108config VIRTIO_MMIO
Kees Cookd72c5a82012-10-02 11:19:07 -0700109 tristate "Platform bus driver for memory mapped virtio devices"
Andy Lutomirski780bc792016-02-02 21:46:36 -0800110 depends on HAS_IOMEM && HAS_DMA
Fabrizio Castro6166e532019-04-03 16:04:09 +0100111 select VIRTIO
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900112 help
Fabrizio Castro6166e532019-04-03 16:04:09 +0100113 This drivers provides support for memory mapped virtio
Pawel Molledfd52e2011-10-24 14:07:03 +0100114 platform device driver.
115
116 If unsure, say N.
117
Pawel Moll81a054c2012-05-09 18:30:16 +0100118config VIRTIO_MMIO_CMDLINE_DEVICES
119 bool "Memory mapped virtio devices parameter parsing"
120 depends on VIRTIO_MMIO
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +0900121 help
Pawel Moll81a054c2012-05-09 18:30:16 +0100122 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.
Mauro Carvalho Chehab8c27ceff32016-10-18 10:12:27 -0200125 See Documentation/admin-guide/kernel-parameters.rst for details.
Pawel Moll81a054c2012-05-09 18:30:16 +0100126
127 If unsure, say 'N'.
128
David Stevens9fe2f892020-08-19 12:10:11 +0900129config 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
Vincent Legoll7b95fec2018-01-07 12:33:56 +0100136endif # VIRTIO_MENU