18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig VIRTIO
38c2ecf20Sopenharmony_ci	tristate
48c2ecf20Sopenharmony_ci	help
58c2ecf20Sopenharmony_ci	  This option is selected by any driver which implements the virtio
68c2ecf20Sopenharmony_ci	  bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
78c2ecf20Sopenharmony_ci	  or CONFIG_S390_GUEST.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciconfig ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS
108c2ecf20Sopenharmony_ci	bool
118c2ecf20Sopenharmony_ci	help
128c2ecf20Sopenharmony_ci	  This option is selected if the architecture may need to enforce
138c2ecf20Sopenharmony_ci	  VIRTIO_F_ACCESS_PLATFORM
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cimenuconfig VIRTIO_MENU
168c2ecf20Sopenharmony_ci	bool "Virtio drivers"
178c2ecf20Sopenharmony_ci	default y
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciif VIRTIO_MENU
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciconfig VIRTIO_PCI
228c2ecf20Sopenharmony_ci	tristate "PCI driver for virtio devices"
238c2ecf20Sopenharmony_ci	depends on PCI
248c2ecf20Sopenharmony_ci	select VIRTIO
258c2ecf20Sopenharmony_ci	help
268c2ecf20Sopenharmony_ci	  This driver provides support for virtio based paravirtual device
278c2ecf20Sopenharmony_ci	  drivers over PCI.  This requires that your VMM has appropriate PCI
288c2ecf20Sopenharmony_ci	  virtio backends.  Most QEMU based VMMs should support these devices
298c2ecf20Sopenharmony_ci	  (like KVM or Xen).
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	  If unsure, say M.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ciconfig VIRTIO_PCI_LEGACY
348c2ecf20Sopenharmony_ci	bool "Support for legacy virtio draft 0.9.X and older devices"
358c2ecf20Sopenharmony_ci	default y
368c2ecf20Sopenharmony_ci	depends on VIRTIO_PCI
378c2ecf20Sopenharmony_ci	help
388c2ecf20Sopenharmony_ci          Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci	  This option enables building a transitional driver, supporting
418c2ecf20Sopenharmony_ci	  both devices conforming to Virtio 1 specification, and legacy devices.
428c2ecf20Sopenharmony_ci	  If disabled, you get a slightly smaller, non-transitional driver,
438c2ecf20Sopenharmony_ci	  with no legacy compatibility.
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci          So look out into your driveway.  Do you have a flying car?  If
468c2ecf20Sopenharmony_ci          so, you can happily disable this option and virtio will not
478c2ecf20Sopenharmony_ci          break.  Otherwise, leave it set.  Unless you're testing what
488c2ecf20Sopenharmony_ci          life will be like in The Future.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci	  If unsure, say Y.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciconfig VIRTIO_VDPA
538c2ecf20Sopenharmony_ci	tristate "vDPA driver for virtio devices"
548c2ecf20Sopenharmony_ci	depends on VDPA
558c2ecf20Sopenharmony_ci	select VIRTIO
568c2ecf20Sopenharmony_ci	help
578c2ecf20Sopenharmony_ci	  This driver provides support for virtio based paravirtual
588c2ecf20Sopenharmony_ci	  device driver over vDPA bus. For this to be useful, you need
598c2ecf20Sopenharmony_ci	  an appropriate vDPA device implementation that operates on a
608c2ecf20Sopenharmony_ci	  physical device to allow the datapath of virtio to be
618c2ecf20Sopenharmony_ci	  offloaded to hardware.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci	  If unsure, say M.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciconfig VIRTIO_PMEM
668c2ecf20Sopenharmony_ci	tristate "Support for virtio pmem driver"
678c2ecf20Sopenharmony_ci	depends on VIRTIO
688c2ecf20Sopenharmony_ci	depends on LIBNVDIMM
698c2ecf20Sopenharmony_ci	help
708c2ecf20Sopenharmony_ci	  This driver provides access to virtio-pmem devices, storage devices
718c2ecf20Sopenharmony_ci	  that are mapped into the physical address space - similar to NVDIMMs
728c2ecf20Sopenharmony_ci	   - with a virtio-based flushing interface.
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci	  If unsure, say Y.
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciconfig VIRTIO_BALLOON
778c2ecf20Sopenharmony_ci	tristate "Virtio balloon driver"
788c2ecf20Sopenharmony_ci	depends on VIRTIO
798c2ecf20Sopenharmony_ci	select MEMORY_BALLOON
808c2ecf20Sopenharmony_ci	select PAGE_REPORTING
818c2ecf20Sopenharmony_ci	help
828c2ecf20Sopenharmony_ci	 This driver supports increasing and decreasing the amount
838c2ecf20Sopenharmony_ci	 of memory within a KVM guest.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci	 If unsure, say M.
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ciconfig VIRTIO_MEM
888c2ecf20Sopenharmony_ci	tristate "Virtio mem driver"
898c2ecf20Sopenharmony_ci	default m
908c2ecf20Sopenharmony_ci	depends on X86_64
918c2ecf20Sopenharmony_ci	depends on VIRTIO
928c2ecf20Sopenharmony_ci	depends on MEMORY_HOTPLUG_SPARSE
938c2ecf20Sopenharmony_ci	depends on MEMORY_HOTREMOVE
948c2ecf20Sopenharmony_ci	depends on CONTIG_ALLOC
958c2ecf20Sopenharmony_ci	help
968c2ecf20Sopenharmony_ci	 This driver provides access to virtio-mem paravirtualized memory
978c2ecf20Sopenharmony_ci	 devices, allowing to hotplug and hotunplug memory.
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ci	 This driver was only tested under x86-64, but should theoretically
1008c2ecf20Sopenharmony_ci	 work on all architectures that support memory hotplug and hotremove.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci	 If unsure, say M.
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ciconfig VIRTIO_INPUT
1058c2ecf20Sopenharmony_ci	tristate "Virtio input driver"
1068c2ecf20Sopenharmony_ci	depends on VIRTIO
1078c2ecf20Sopenharmony_ci	depends on INPUT
1088c2ecf20Sopenharmony_ci	help
1098c2ecf20Sopenharmony_ci	 This driver supports virtio input devices such as
1108c2ecf20Sopenharmony_ci	 keyboards, mice and tablets.
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci	 If unsure, say M.
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ciconfig VIRTIO_MMIO
1158c2ecf20Sopenharmony_ci	tristate "Platform bus driver for memory mapped virtio devices"
1168c2ecf20Sopenharmony_ci	depends on HAS_IOMEM && HAS_DMA
1178c2ecf20Sopenharmony_ci	select VIRTIO
1188c2ecf20Sopenharmony_ci	help
1198c2ecf20Sopenharmony_ci	 This drivers provides support for memory mapped virtio
1208c2ecf20Sopenharmony_ci	 platform device driver.
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci 	 If unsure, say N.
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ciconfig VIRTIO_MMIO_CMDLINE_DEVICES
1258c2ecf20Sopenharmony_ci	bool "Memory mapped virtio devices parameter parsing"
1268c2ecf20Sopenharmony_ci	depends on VIRTIO_MMIO
1278c2ecf20Sopenharmony_ci	help
1288c2ecf20Sopenharmony_ci	 Allow virtio-mmio devices instantiation via the kernel command line
1298c2ecf20Sopenharmony_ci	 or module parameters. Be aware that using incorrect parameters (base
1308c2ecf20Sopenharmony_ci	 address in particular) can crash your system - you have been warned.
1318c2ecf20Sopenharmony_ci	 See Documentation/admin-guide/kernel-parameters.rst for details.
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ci	 If unsure, say 'N'.
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ciconfig VIRTIO_DMA_SHARED_BUFFER
1368c2ecf20Sopenharmony_ci	tristate
1378c2ecf20Sopenharmony_ci	depends on DMA_SHARED_BUFFER
1388c2ecf20Sopenharmony_ci	help
1398c2ecf20Sopenharmony_ci	 This option adds a flavor of dma buffers that are backed by
1408c2ecf20Sopenharmony_ci	 virtio resources.
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ciendif # VIRTIO_MENU
143