1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2a603002eSJuergen Grossconfig VIRTIO_ANCHOR 3a603002eSJuergen Gross bool 4a603002eSJuergen Gross 5ec3d41c4SRusty Russellconfig VIRTIO 6c6fd4701SRusty Russell tristate 7a603002eSJuergen 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" 38ebe797f2SMichael S. Tsirkin depends on BROKEN 39c346dae4SJason Wang help 40c346dae4SJason Wang Enable this to harden the device notifications and suppress 41c346dae4SJason Wang those that happen at a time where notifications are illegal. 42c346dae4SJason Wang 43ebe797f2SMichael S. Tsirkin Experimental: Note that several drivers still have issues that 44c346dae4SJason Wang may cause crashes or hangs when correct handling of 45c346dae4SJason Wang notifications is enforced; depending on the subset of 46c346dae4SJason Wang drivers and devices you use, this may or may not work. 47c346dae4SJason Wang 48c346dae4SJason Wang If unsure, say N. 49c346dae4SJason Wang 503343660dSAnthony Liguoriconfig VIRTIO_PCI 51d72c5a8cSKees Cook tristate "PCI driver for virtio devices" 52d72c5a8cSKees Cook depends on PCI 53fd502729SJason Wang select VIRTIO_PCI_LIB 543343660dSAnthony Liguori select VIRTIO 55a7f7f624SMasahiro Yamada help 56b2a6d51dSMichael S. Tsirkin This driver provides support for virtio based paravirtual device 573343660dSAnthony Liguori drivers over PCI. This requires that your VMM has appropriate PCI 583343660dSAnthony Liguori virtio backends. Most QEMU based VMMs should support these devices 593343660dSAnthony Liguori (like KVM or Xen). 603343660dSAnthony Liguori 613343660dSAnthony Liguori If unsure, say M. 623343660dSAnthony Liguori 6346506da5SMichael S. Tsirkinconfig VIRTIO_PCI_LEGACY 6446506da5SMichael S. Tsirkin bool "Support for legacy virtio draft 0.9.X and older devices" 6546506da5SMichael S. Tsirkin default y 6646506da5SMichael S. Tsirkin depends on VIRTIO_PCI 67d89c8169SWu Zongyong select VIRTIO_PCI_LIB_LEGACY 68a7f7f624SMasahiro Yamada help 6946506da5SMichael S. Tsirkin Virtio PCI Card 0.9.X Draft (circa 2014) and older device support. 7046506da5SMichael S. Tsirkin 7146506da5SMichael S. Tsirkin This option enables building a transitional driver, supporting 7246506da5SMichael S. Tsirkin both devices conforming to Virtio 1 specification, and legacy devices. 7346506da5SMichael S. Tsirkin If disabled, you get a slightly smaller, non-transitional driver, 7446506da5SMichael S. Tsirkin with no legacy compatibility. 7546506da5SMichael S. Tsirkin 7646506da5SMichael S. Tsirkin So look out into your driveway. Do you have a flying car? If 7746506da5SMichael S. Tsirkin so, you can happily disable this option and virtio will not 7846506da5SMichael S. Tsirkin break. Otherwise, leave it set. Unless you're testing what 7946506da5SMichael S. Tsirkin life will be like in The Future. 8046506da5SMichael S. Tsirkin 8146506da5SMichael S. Tsirkin If unsure, say Y. 8246506da5SMichael S. Tsirkin 83c043b4a8SJason Wangconfig VIRTIO_VDPA 84c043b4a8SJason Wang tristate "vDPA driver for virtio devices" 8558ad1372SMichael S. Tsirkin depends on VDPA 86c043b4a8SJason Wang select VIRTIO 87c043b4a8SJason Wang help 88c043b4a8SJason Wang This driver provides support for virtio based paravirtual 89c043b4a8SJason Wang device driver over vDPA bus. For this to be useful, you need 90c043b4a8SJason Wang an appropriate vDPA device implementation that operates on a 91c043b4a8SJason Wang physical device to allow the datapath of virtio to be 92c043b4a8SJason Wang offloaded to hardware. 93c043b4a8SJason Wang 94c043b4a8SJason Wang If unsure, say M. 95c043b4a8SJason Wang 966e84200cSPankaj Guptaconfig VIRTIO_PMEM 976e84200cSPankaj Gupta tristate "Support for virtio pmem driver" 986e84200cSPankaj Gupta depends on VIRTIO 996e84200cSPankaj Gupta depends on LIBNVDIMM 1006e84200cSPankaj Gupta help 1016e84200cSPankaj Gupta This driver provides access to virtio-pmem devices, storage devices 1026e84200cSPankaj Gupta that are mapped into the physical address space - similar to NVDIMMs 1036e84200cSPankaj Gupta - with a virtio-based flushing interface. 1046e84200cSPankaj Gupta 1056e84200cSPankaj Gupta If unsure, say Y. 1066e84200cSPankaj Gupta 1076b35e407SRusty Russellconfig VIRTIO_BALLOON 1087a23eb28SRusty Russell tristate "Virtio balloon driver" 1097a23eb28SRusty Russell depends on VIRTIO 11009316c09SKonstantin Khlebnikov select MEMORY_BALLOON 111b0c504f1SAlexander Duyck select PAGE_REPORTING 112a7f7f624SMasahiro Yamada help 1136b35e407SRusty Russell This driver supports increasing and decreasing the amount 1146b35e407SRusty Russell of memory within a KVM guest. 1156b35e407SRusty Russell 1166b35e407SRusty Russell If unsure, say M. 1176b35e407SRusty Russell 1185f1f79bbSDavid Hildenbrandconfig VIRTIO_MEM 1195f1f79bbSDavid Hildenbrand tristate "Virtio mem driver" 1206f4abbaaSGavin Shan depends on X86_64 || ARM64 1215f1f79bbSDavid Hildenbrand depends on VIRTIO 12250f9481eSDavid Hildenbrand depends on MEMORY_HOTPLUG 1235f1f79bbSDavid Hildenbrand depends on MEMORY_HOTREMOVE 124a96b0d06SWeilong Chen depends on CONTIG_ALLOC 1252128f4e2SDavid Hildenbrand depends on EXCLUSIVE_SYSTEM_RAM 1265f1f79bbSDavid Hildenbrand help 1275f1f79bbSDavid Hildenbrand This driver provides access to virtio-mem paravirtualized memory 1285f1f79bbSDavid Hildenbrand devices, allowing to hotplug and hotunplug memory. 1295f1f79bbSDavid Hildenbrand 130*0b6fd46eSDavid Hildenbrand This driver currently only supports x86-64 and arm64. Although it 131*0b6fd46eSDavid Hildenbrand should compile on other architectures that implement memory 132*0b6fd46eSDavid Hildenbrand hot(un)plug, architecture-specific and/or common 133*0b6fd46eSDavid Hildenbrand code changes may be required for virtio-mem, kdump and kexec to work as 134*0b6fd46eSDavid Hildenbrand expected. 1355f1f79bbSDavid Hildenbrand 1365f1f79bbSDavid Hildenbrand If unsure, say M. 1375f1f79bbSDavid Hildenbrand 138271c8651SGerd Hoffmannconfig VIRTIO_INPUT 139271c8651SGerd Hoffmann tristate "Virtio input driver" 140271c8651SGerd Hoffmann depends on VIRTIO 141271c8651SGerd Hoffmann depends on INPUT 142a7f7f624SMasahiro Yamada help 143271c8651SGerd Hoffmann This driver supports virtio input devices such as 144271c8651SGerd Hoffmann keyboards, mice and tablets. 145271c8651SGerd Hoffmann 146271c8651SGerd Hoffmann If unsure, say M. 147271c8651SGerd Hoffmann 148edfd52e6SPawel Mollconfig VIRTIO_MMIO 149d72c5a8cSKees Cook tristate "Platform bus driver for memory mapped virtio devices" 150780bc790SAndy Lutomirski depends on HAS_IOMEM && HAS_DMA 151edfd52e6SPawel Moll select VIRTIO 152a7f7f624SMasahiro Yamada help 153edfd52e6SPawel Moll This drivers provides support for memory mapped virtio 154edfd52e6SPawel Moll platform device driver. 155edfd52e6SPawel Moll 156edfd52e6SPawel Moll If unsure, say N. 157edfd52e6SPawel Moll 15881a054ceSPawel Mollconfig VIRTIO_MMIO_CMDLINE_DEVICES 15981a054ceSPawel Moll bool "Memory mapped virtio devices parameter parsing" 16081a054ceSPawel Moll depends on VIRTIO_MMIO 161a7f7f624SMasahiro Yamada help 16281a054ceSPawel Moll Allow virtio-mmio devices instantiation via the kernel command line 16381a054ceSPawel Moll or module parameters. Be aware that using incorrect parameters (base 16481a054ceSPawel Moll address in particular) can crash your system - you have been warned. 1658c27ceffSMauro Carvalho Chehab See Documentation/admin-guide/kernel-parameters.rst for details. 16681a054ceSPawel Moll 16781a054ceSPawel Moll If unsure, say 'N'. 16881a054ceSPawel Moll 1699fe2f897SDavid Stevensconfig VIRTIO_DMA_SHARED_BUFFER 1709fe2f897SDavid Stevens tristate 1719fe2f897SDavid Stevens depends on DMA_SHARED_BUFFER 1729fe2f897SDavid Stevens help 1739fe2f897SDavid Stevens This option adds a flavor of dma buffers that are backed by 1749fe2f897SDavid Stevens virtio resources. 1759fe2f897SDavid Stevens 1767b95fec6SVincent Legollendif # VIRTIO_MENU 177