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