1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2ec3d41c4SRusty Russellconfig VIRTIO 3c6fd4701SRusty Russell tristate 4a7f7f624SMasahiro Yamada help 5387daf17SRusty Russell This option is selected by any driver which implements the virtio 6ecda85e7SJuergen Gross bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG 7ecda85e7SJuergen Gross or CONFIG_S390_GUEST. 80a8a69ddSRusty Russell 9fd502729SJason Wangconfig VIRTIO_PCI_LIB 10fd502729SJason Wang tristate 11fd502729SJason Wang help 12fd502729SJason Wang Modern PCI device implementation. This module implements the 13fd502729SJason Wang basic probe and control for devices which are based on modern 14fd502729SJason Wang PCI device with possible vendor specific extensions. Any 15fd502729SJason Wang module that selects this module must depend on PCI. 16fd502729SJason Wang 17d89c8169SWu Zongyongconfig VIRTIO_PCI_LIB_LEGACY 18d89c8169SWu Zongyong tristate 19d89c8169SWu Zongyong help 20d89c8169SWu Zongyong Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device) 21d89c8169SWu Zongyong implementation. 22d89c8169SWu Zongyong This module implements the basic probe and control for devices 23d89c8169SWu Zongyong which are based on legacy PCI device. Any module that selects this 24d89c8169SWu Zongyong module must depend on PCI. 25d89c8169SWu Zongyong 267b95fec6SVincent Legollmenuconfig VIRTIO_MENU 277b95fec6SVincent Legoll bool "Virtio drivers" 287b95fec6SVincent Legoll default y 297b95fec6SVincent Legoll 307b95fec6SVincent Legollif VIRTIO_MENU 31e7254219SOhad Ben-Cohen 32*c346dae4SJason Wangconfig VIRTIO_HARDEN_NOTIFICATION 33*c346dae4SJason Wang bool "Harden virtio notification" 34*c346dae4SJason Wang help 35*c346dae4SJason Wang Enable this to harden the device notifications and suppress 36*c346dae4SJason Wang those that happen at a time where notifications are illegal. 37*c346dae4SJason Wang 38*c346dae4SJason Wang Experimental: Note that several drivers still have bugs that 39*c346dae4SJason Wang may cause crashes or hangs when correct handling of 40*c346dae4SJason Wang notifications is enforced; depending on the subset of 41*c346dae4SJason Wang drivers and devices you use, this may or may not work. 42*c346dae4SJason Wang 43*c346dae4SJason Wang If unsure, say N. 44*c346dae4SJason Wang 453343660dSAnthony Liguoriconfig VIRTIO_PCI 46d72c5a8cSKees Cook tristate "PCI driver for virtio devices" 47d72c5a8cSKees Cook depends on PCI 48fd502729SJason Wang select VIRTIO_PCI_LIB 493343660dSAnthony Liguori select VIRTIO 50a7f7f624SMasahiro Yamada help 51b2a6d51dSMichael S. Tsirkin This driver provides support for virtio based paravirtual device 523343660dSAnthony Liguori drivers over PCI. This requires that your VMM has appropriate PCI 533343660dSAnthony Liguori virtio backends. Most QEMU based VMMs should support these devices 543343660dSAnthony Liguori (like KVM or Xen). 553343660dSAnthony Liguori 563343660dSAnthony Liguori If unsure, say M. 573343660dSAnthony Liguori 5846506da5SMichael S. Tsirkinconfig VIRTIO_PCI_LEGACY 5946506da5SMichael S. Tsirkin bool "Support for legacy virtio draft 0.9.X and older devices" 6046506da5SMichael S. Tsirkin default y 6146506da5SMichael S. Tsirkin depends on VIRTIO_PCI 62d89c8169SWu Zongyong select VIRTIO_PCI_LIB_LEGACY 63a7f7f624SMasahiro Yamada help 6446506da5SMichael S. Tsirkin Virtio PCI Card 0.9.X Draft (circa 2014) and older device support. 6546506da5SMichael S. Tsirkin 6646506da5SMichael S. Tsirkin This option enables building a transitional driver, supporting 6746506da5SMichael S. Tsirkin both devices conforming to Virtio 1 specification, and legacy devices. 6846506da5SMichael S. Tsirkin If disabled, you get a slightly smaller, non-transitional driver, 6946506da5SMichael S. Tsirkin with no legacy compatibility. 7046506da5SMichael S. Tsirkin 7146506da5SMichael S. Tsirkin So look out into your driveway. Do you have a flying car? If 7246506da5SMichael S. Tsirkin so, you can happily disable this option and virtio will not 7346506da5SMichael S. Tsirkin break. Otherwise, leave it set. Unless you're testing what 7446506da5SMichael S. Tsirkin life will be like in The Future. 7546506da5SMichael S. Tsirkin 7646506da5SMichael S. Tsirkin If unsure, say Y. 7746506da5SMichael S. Tsirkin 78c043b4a8SJason Wangconfig VIRTIO_VDPA 79c043b4a8SJason Wang tristate "vDPA driver for virtio devices" 8058ad1372SMichael S. Tsirkin depends on VDPA 81c043b4a8SJason Wang select VIRTIO 82c043b4a8SJason Wang help 83c043b4a8SJason Wang This driver provides support for virtio based paravirtual 84c043b4a8SJason Wang device driver over vDPA bus. For this to be useful, you need 85c043b4a8SJason Wang an appropriate vDPA device implementation that operates on a 86c043b4a8SJason Wang physical device to allow the datapath of virtio to be 87c043b4a8SJason Wang offloaded to hardware. 88c043b4a8SJason Wang 89c043b4a8SJason Wang If unsure, say M. 90c043b4a8SJason Wang 916e84200cSPankaj Guptaconfig VIRTIO_PMEM 926e84200cSPankaj Gupta tristate "Support for virtio pmem driver" 936e84200cSPankaj Gupta depends on VIRTIO 946e84200cSPankaj Gupta depends on LIBNVDIMM 956e84200cSPankaj Gupta help 966e84200cSPankaj Gupta This driver provides access to virtio-pmem devices, storage devices 976e84200cSPankaj Gupta that are mapped into the physical address space - similar to NVDIMMs 986e84200cSPankaj Gupta - with a virtio-based flushing interface. 996e84200cSPankaj Gupta 1006e84200cSPankaj Gupta If unsure, say Y. 1016e84200cSPankaj Gupta 1026b35e407SRusty Russellconfig VIRTIO_BALLOON 1037a23eb28SRusty Russell tristate "Virtio balloon driver" 1047a23eb28SRusty Russell depends on VIRTIO 10509316c09SKonstantin Khlebnikov select MEMORY_BALLOON 106b0c504f1SAlexander Duyck select PAGE_REPORTING 107a7f7f624SMasahiro Yamada help 1086b35e407SRusty Russell This driver supports increasing and decreasing the amount 1096b35e407SRusty Russell of memory within a KVM guest. 1106b35e407SRusty Russell 1116b35e407SRusty Russell If unsure, say M. 1126b35e407SRusty Russell 1135f1f79bbSDavid Hildenbrandconfig VIRTIO_MEM 1145f1f79bbSDavid Hildenbrand tristate "Virtio mem driver" 1156f4abbaaSGavin Shan depends on X86_64 || ARM64 1165f1f79bbSDavid Hildenbrand depends on VIRTIO 11750f9481eSDavid Hildenbrand depends on MEMORY_HOTPLUG 1185f1f79bbSDavid Hildenbrand depends on MEMORY_HOTREMOVE 119a96b0d06SWeilong Chen depends on CONTIG_ALLOC 1202128f4e2SDavid Hildenbrand depends on EXCLUSIVE_SYSTEM_RAM 1215f1f79bbSDavid Hildenbrand help 1225f1f79bbSDavid Hildenbrand This driver provides access to virtio-mem paravirtualized memory 1235f1f79bbSDavid Hildenbrand devices, allowing to hotplug and hotunplug memory. 1245f1f79bbSDavid Hildenbrand 1256f4abbaaSGavin Shan This driver was only tested under x86-64 and arm64, but should 1266f4abbaaSGavin Shan theoretically work on all architectures that support memory hotplug 1276f4abbaaSGavin Shan and hotremove. 1285f1f79bbSDavid Hildenbrand 1295f1f79bbSDavid Hildenbrand If unsure, say M. 1305f1f79bbSDavid Hildenbrand 131271c8651SGerd Hoffmannconfig VIRTIO_INPUT 132271c8651SGerd Hoffmann tristate "Virtio input driver" 133271c8651SGerd Hoffmann depends on VIRTIO 134271c8651SGerd Hoffmann depends on INPUT 135a7f7f624SMasahiro Yamada help 136271c8651SGerd Hoffmann This driver supports virtio input devices such as 137271c8651SGerd Hoffmann keyboards, mice and tablets. 138271c8651SGerd Hoffmann 139271c8651SGerd Hoffmann If unsure, say M. 140271c8651SGerd Hoffmann 141edfd52e6SPawel Mollconfig VIRTIO_MMIO 142d72c5a8cSKees Cook tristate "Platform bus driver for memory mapped virtio devices" 143780bc790SAndy Lutomirski depends on HAS_IOMEM && HAS_DMA 144edfd52e6SPawel Moll select VIRTIO 145a7f7f624SMasahiro Yamada help 146edfd52e6SPawel Moll This drivers provides support for memory mapped virtio 147edfd52e6SPawel Moll platform device driver. 148edfd52e6SPawel Moll 149edfd52e6SPawel Moll If unsure, say N. 150edfd52e6SPawel Moll 15181a054ceSPawel Mollconfig VIRTIO_MMIO_CMDLINE_DEVICES 15281a054ceSPawel Moll bool "Memory mapped virtio devices parameter parsing" 15381a054ceSPawel Moll depends on VIRTIO_MMIO 154a7f7f624SMasahiro Yamada help 15581a054ceSPawel Moll Allow virtio-mmio devices instantiation via the kernel command line 15681a054ceSPawel Moll or module parameters. Be aware that using incorrect parameters (base 15781a054ceSPawel Moll address in particular) can crash your system - you have been warned. 1588c27ceffSMauro Carvalho Chehab See Documentation/admin-guide/kernel-parameters.rst for details. 15981a054ceSPawel Moll 16081a054ceSPawel Moll If unsure, say 'N'. 16181a054ceSPawel Moll 1629fe2f897SDavid Stevensconfig VIRTIO_DMA_SHARED_BUFFER 1639fe2f897SDavid Stevens tristate 1649fe2f897SDavid Stevens depends on DMA_SHARED_BUFFER 1659fe2f897SDavid Stevens help 1669fe2f897SDavid Stevens This option adds a flavor of dma buffers that are backed by 1679fe2f897SDavid Stevens virtio resources. 1689fe2f897SDavid Stevens 1697b95fec6SVincent Legollendif # VIRTIO_MENU 170