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