1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2*a603002eSJuergen Grossconfig VIRTIO_ANCHOR 3*a603002eSJuergen Gross bool 4*a603002eSJuergen Gross 5ec3d41c4SRusty Russellconfig VIRTIO 6c6fd4701SRusty Russell tristate 7*a603002eSJuergen Gross select VIRTIO_ANCHOR 8a7f7f624SMasahiro Yamada help 9387daf17SRusty Russell This option is selected by any driver which implements the virtio 10ecda85e7SJuergen Gross bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG 11ecda85e7SJuergen Gross or CONFIG_S390_GUEST. 120a8a69ddSRusty Russell 13fd502729SJason Wangconfig VIRTIO_PCI_LIB 14fd502729SJason Wang tristate 15fd502729SJason Wang help 16fd502729SJason Wang Modern PCI device implementation. This module implements the 17fd502729SJason Wang basic probe and control for devices which are based on modern 18fd502729SJason Wang PCI device with possible vendor specific extensions. Any 19fd502729SJason Wang module that selects this module must depend on PCI. 20fd502729SJason Wang 21d89c8169SWu Zongyongconfig VIRTIO_PCI_LIB_LEGACY 22d89c8169SWu Zongyong tristate 23d89c8169SWu Zongyong help 24d89c8169SWu Zongyong Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device) 25d89c8169SWu Zongyong implementation. 26d89c8169SWu Zongyong This module implements the basic probe and control for devices 27d89c8169SWu Zongyong which are based on legacy PCI device. Any module that selects this 28d89c8169SWu Zongyong module must depend on PCI. 29d89c8169SWu Zongyong 307b95fec6SVincent Legollmenuconfig VIRTIO_MENU 317b95fec6SVincent Legoll bool "Virtio drivers" 327b95fec6SVincent Legoll default y 337b95fec6SVincent Legoll 347b95fec6SVincent Legollif VIRTIO_MENU 35e7254219SOhad Ben-Cohen 36c346dae4SJason Wangconfig VIRTIO_HARDEN_NOTIFICATION 37c346dae4SJason Wang bool "Harden virtio notification" 38c346dae4SJason Wang help 39c346dae4SJason Wang Enable this to harden the device notifications and suppress 40c346dae4SJason Wang those that happen at a time where notifications are illegal. 41c346dae4SJason Wang 42c346dae4SJason Wang Experimental: Note that several drivers still have bugs that 43c346dae4SJason Wang may cause crashes or hangs when correct handling of 44c346dae4SJason Wang notifications is enforced; depending on the subset of 45c346dae4SJason Wang drivers and devices you use, this may or may not work. 46c346dae4SJason Wang 47c346dae4SJason Wang If unsure, say N. 48c346dae4SJason Wang 493343660dSAnthony Liguoriconfig VIRTIO_PCI 50d72c5a8cSKees Cook tristate "PCI driver for virtio devices" 51d72c5a8cSKees Cook depends on PCI 52fd502729SJason Wang select VIRTIO_PCI_LIB 533343660dSAnthony Liguori select VIRTIO 54a7f7f624SMasahiro Yamada help 55b2a6d51dSMichael S. Tsirkin This driver provides support for virtio based paravirtual device 563343660dSAnthony Liguori drivers over PCI. This requires that your VMM has appropriate PCI 573343660dSAnthony Liguori virtio backends. Most QEMU based VMMs should support these devices 583343660dSAnthony Liguori (like KVM or Xen). 593343660dSAnthony Liguori 603343660dSAnthony Liguori If unsure, say M. 613343660dSAnthony Liguori 6246506da5SMichael S. Tsirkinconfig VIRTIO_PCI_LEGACY 6346506da5SMichael S. Tsirkin bool "Support for legacy virtio draft 0.9.X and older devices" 6446506da5SMichael S. Tsirkin default y 6546506da5SMichael S. Tsirkin depends on VIRTIO_PCI 66d89c8169SWu Zongyong select VIRTIO_PCI_LIB_LEGACY 67a7f7f624SMasahiro Yamada help 6846506da5SMichael S. Tsirkin Virtio PCI Card 0.9.X Draft (circa 2014) and older device support. 6946506da5SMichael S. Tsirkin 7046506da5SMichael S. Tsirkin This option enables building a transitional driver, supporting 7146506da5SMichael S. Tsirkin both devices conforming to Virtio 1 specification, and legacy devices. 7246506da5SMichael S. Tsirkin If disabled, you get a slightly smaller, non-transitional driver, 7346506da5SMichael S. Tsirkin with no legacy compatibility. 7446506da5SMichael S. Tsirkin 7546506da5SMichael S. Tsirkin So look out into your driveway. Do you have a flying car? If 7646506da5SMichael S. Tsirkin so, you can happily disable this option and virtio will not 7746506da5SMichael S. Tsirkin break. Otherwise, leave it set. Unless you're testing what 7846506da5SMichael S. Tsirkin life will be like in The Future. 7946506da5SMichael S. Tsirkin 8046506da5SMichael S. Tsirkin If unsure, say Y. 8146506da5SMichael S. Tsirkin 82c043b4a8SJason Wangconfig VIRTIO_VDPA 83c043b4a8SJason Wang tristate "vDPA driver for virtio devices" 8458ad1372SMichael S. Tsirkin depends on VDPA 85c043b4a8SJason Wang select VIRTIO 86c043b4a8SJason Wang help 87c043b4a8SJason Wang This driver provides support for virtio based paravirtual 88c043b4a8SJason Wang device driver over vDPA bus. For this to be useful, you need 89c043b4a8SJason Wang an appropriate vDPA device implementation that operates on a 90c043b4a8SJason Wang physical device to allow the datapath of virtio to be 91c043b4a8SJason Wang offloaded to hardware. 92c043b4a8SJason Wang 93c043b4a8SJason Wang If unsure, say M. 94c043b4a8SJason Wang 956e84200cSPankaj Guptaconfig VIRTIO_PMEM 966e84200cSPankaj Gupta tristate "Support for virtio pmem driver" 976e84200cSPankaj Gupta depends on VIRTIO 986e84200cSPankaj Gupta depends on LIBNVDIMM 996e84200cSPankaj Gupta help 1006e84200cSPankaj Gupta This driver provides access to virtio-pmem devices, storage devices 1016e84200cSPankaj Gupta that are mapped into the physical address space - similar to NVDIMMs 1026e84200cSPankaj Gupta - with a virtio-based flushing interface. 1036e84200cSPankaj Gupta 1046e84200cSPankaj Gupta If unsure, say Y. 1056e84200cSPankaj Gupta 1066b35e407SRusty Russellconfig VIRTIO_BALLOON 1077a23eb28SRusty Russell tristate "Virtio balloon driver" 1087a23eb28SRusty Russell depends on VIRTIO 10909316c09SKonstantin Khlebnikov select MEMORY_BALLOON 110b0c504f1SAlexander Duyck select PAGE_REPORTING 111a7f7f624SMasahiro Yamada help 1126b35e407SRusty Russell This driver supports increasing and decreasing the amount 1136b35e407SRusty Russell of memory within a KVM guest. 1146b35e407SRusty Russell 1156b35e407SRusty Russell If unsure, say M. 1166b35e407SRusty Russell 1175f1f79bbSDavid Hildenbrandconfig VIRTIO_MEM 1185f1f79bbSDavid Hildenbrand tristate "Virtio mem driver" 1196f4abbaaSGavin Shan depends on X86_64 || ARM64 1205f1f79bbSDavid Hildenbrand depends on VIRTIO 12150f9481eSDavid Hildenbrand depends on MEMORY_HOTPLUG 1225f1f79bbSDavid Hildenbrand depends on MEMORY_HOTREMOVE 123a96b0d06SWeilong Chen depends on CONTIG_ALLOC 1242128f4e2SDavid Hildenbrand depends on EXCLUSIVE_SYSTEM_RAM 1255f1f79bbSDavid Hildenbrand help 1265f1f79bbSDavid Hildenbrand This driver provides access to virtio-mem paravirtualized memory 1275f1f79bbSDavid Hildenbrand devices, allowing to hotplug and hotunplug memory. 1285f1f79bbSDavid Hildenbrand 1296f4abbaaSGavin Shan This driver was only tested under x86-64 and arm64, but should 1306f4abbaaSGavin Shan theoretically work on all architectures that support memory hotplug 1316f4abbaaSGavin Shan and hotremove. 1325f1f79bbSDavid Hildenbrand 1335f1f79bbSDavid Hildenbrand If unsure, say M. 1345f1f79bbSDavid Hildenbrand 135271c8651SGerd Hoffmannconfig VIRTIO_INPUT 136271c8651SGerd Hoffmann tristate "Virtio input driver" 137271c8651SGerd Hoffmann depends on VIRTIO 138271c8651SGerd Hoffmann depends on INPUT 139a7f7f624SMasahiro Yamada help 140271c8651SGerd Hoffmann This driver supports virtio input devices such as 141271c8651SGerd Hoffmann keyboards, mice and tablets. 142271c8651SGerd Hoffmann 143271c8651SGerd Hoffmann If unsure, say M. 144271c8651SGerd Hoffmann 145edfd52e6SPawel Mollconfig VIRTIO_MMIO 146d72c5a8cSKees Cook tristate "Platform bus driver for memory mapped virtio devices" 147780bc790SAndy Lutomirski depends on HAS_IOMEM && HAS_DMA 148edfd52e6SPawel Moll select VIRTIO 149a7f7f624SMasahiro Yamada help 150edfd52e6SPawel Moll This drivers provides support for memory mapped virtio 151edfd52e6SPawel Moll platform device driver. 152edfd52e6SPawel Moll 153edfd52e6SPawel Moll If unsure, say N. 154edfd52e6SPawel Moll 15581a054ceSPawel Mollconfig VIRTIO_MMIO_CMDLINE_DEVICES 15681a054ceSPawel Moll bool "Memory mapped virtio devices parameter parsing" 15781a054ceSPawel Moll depends on VIRTIO_MMIO 158a7f7f624SMasahiro Yamada help 15981a054ceSPawel Moll Allow virtio-mmio devices instantiation via the kernel command line 16081a054ceSPawel Moll or module parameters. Be aware that using incorrect parameters (base 16181a054ceSPawel Moll address in particular) can crash your system - you have been warned. 1628c27ceffSMauro Carvalho Chehab See Documentation/admin-guide/kernel-parameters.rst for details. 16381a054ceSPawel Moll 16481a054ceSPawel Moll If unsure, say 'N'. 16581a054ceSPawel Moll 1669fe2f897SDavid Stevensconfig VIRTIO_DMA_SHARED_BUFFER 1679fe2f897SDavid Stevens tristate 1689fe2f897SDavid Stevens depends on DMA_SHARED_BUFFER 1699fe2f897SDavid Stevens help 1709fe2f897SDavid Stevens This option adds a flavor of dma buffers that are backed by 1719fe2f897SDavid Stevens virtio resources. 1729fe2f897SDavid Stevens 1737b95fec6SVincent Legollendif # VIRTIO_MENU 174