Kconfig 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config VIRTIO
  3. tristate
  4. help
  5. This option is selected by any driver which implements the virtio
  6. bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
  7. or CONFIG_S390_GUEST.
  8. config ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS
  9. bool
  10. help
  11. This option is selected if the architecture may need to enforce
  12. VIRTIO_F_ACCESS_PLATFORM
  13. menuconfig VIRTIO_MENU
  14. bool "Virtio drivers"
  15. default y
  16. if VIRTIO_MENU
  17. config VIRTIO_PCI
  18. tristate "PCI driver for virtio devices"
  19. depends on PCI
  20. select VIRTIO
  21. help
  22. This driver provides support for virtio based paravirtual device
  23. drivers over PCI. This requires that your VMM has appropriate PCI
  24. virtio backends. Most QEMU based VMMs should support these devices
  25. (like KVM or Xen).
  26. If unsure, say M.
  27. config VIRTIO_PCI_LEGACY
  28. bool "Support for legacy virtio draft 0.9.X and older devices"
  29. default y
  30. depends on VIRTIO_PCI
  31. help
  32. Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
  33. This option enables building a transitional driver, supporting
  34. both devices conforming to Virtio 1 specification, and legacy devices.
  35. If disabled, you get a slightly smaller, non-transitional driver,
  36. with no legacy compatibility.
  37. So look out into your driveway. Do you have a flying car? If
  38. so, you can happily disable this option and virtio will not
  39. break. Otherwise, leave it set. Unless you're testing what
  40. life will be like in The Future.
  41. If unsure, say Y.
  42. config VIRTIO_VDPA
  43. tristate "vDPA driver for virtio devices"
  44. depends on VDPA
  45. select VIRTIO
  46. help
  47. This driver provides support for virtio based paravirtual
  48. device driver over vDPA bus. For this to be useful, you need
  49. an appropriate vDPA device implementation that operates on a
  50. physical device to allow the datapath of virtio to be
  51. offloaded to hardware.
  52. If unsure, say M.
  53. config VIRTIO_PMEM
  54. tristate "Support for virtio pmem driver"
  55. depends on VIRTIO
  56. depends on LIBNVDIMM
  57. help
  58. This driver provides access to virtio-pmem devices, storage devices
  59. that are mapped into the physical address space - similar to NVDIMMs
  60. - with a virtio-based flushing interface.
  61. If unsure, say Y.
  62. config VIRTIO_BALLOON
  63. tristate "Virtio balloon driver"
  64. depends on VIRTIO
  65. select MEMORY_BALLOON
  66. select PAGE_REPORTING
  67. help
  68. This driver supports increasing and decreasing the amount
  69. of memory within a KVM guest.
  70. If unsure, say M.
  71. config VIRTIO_MEM
  72. tristate "Virtio mem driver"
  73. default m
  74. depends on X86_64
  75. depends on VIRTIO
  76. depends on MEMORY_HOTPLUG_SPARSE
  77. depends on MEMORY_HOTREMOVE
  78. depends on CONTIG_ALLOC
  79. help
  80. This driver provides access to virtio-mem paravirtualized memory
  81. devices, allowing to hotplug and hotunplug memory.
  82. This driver was only tested under x86-64, but should theoretically
  83. work on all architectures that support memory hotplug and hotremove.
  84. If unsure, say M.
  85. config VIRTIO_INPUT
  86. tristate "Virtio input driver"
  87. depends on VIRTIO
  88. depends on INPUT
  89. help
  90. This driver supports virtio input devices such as
  91. keyboards, mice and tablets.
  92. If unsure, say M.
  93. config VIRTIO_MMIO
  94. tristate "Platform bus driver for memory mapped virtio devices"
  95. depends on HAS_IOMEM && HAS_DMA
  96. select VIRTIO
  97. help
  98. This drivers provides support for memory mapped virtio
  99. platform device driver.
  100. If unsure, say N.
  101. config VIRTIO_KHV_MMIO
  102. tristate "Platform bus driver for khv memory mapped virtio devices"
  103. depends on HAS_IOMEM && HAS_DMA
  104. select VIRTIO
  105. help
  106. This drivers provides support for khv memory mapped virtio
  107. platform device driver.
  108. If unsure, say N.
  109. config VIRTIO_MMIO_CMDLINE_DEVICES
  110. bool "Memory mapped virtio devices parameter parsing"
  111. depends on VIRTIO_MMIO
  112. help
  113. Allow virtio-mmio devices instantiation via the kernel command line
  114. or module parameters. Be aware that using incorrect parameters (base
  115. address in particular) can crash your system - you have been warned.
  116. See Documentation/admin-guide/kernel-parameters.rst for details.
  117. If unsure, say 'N'.
  118. config VIRTIO_DMA_SHARED_BUFFER
  119. tristate "Virtio DMA shared buffer support"
  120. depends on DMA_SHARED_BUFFER
  121. help
  122. This option adds a flavor of dma buffers that are backed by
  123. virtio resources.
  124. config VIRTIO_LIGHT
  125. tristate "Virtio light bus driver for virtio_light devices"
  126. depends on HAS_IOMEM
  127. select VIRTIO
  128. default y
  129. help
  130. This drivers provides support for memory mapped virtio
  131. platform device driver of light platform.
  132. If unsure, say N.
  133. config VIRTIO_VDMABUF
  134. bool "Enables Vdmabuf driver in guest os"
  135. default y
  136. depends on VIRTIO
  137. help
  138. This driver provides a way to share the dmabufs created in
  139. the Guest with the Host.
  140. endif # VIRTIO_MENU