Kconfig 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config GUNYAH
  3. tristate "Gunyah Virtualization drivers"
  4. depends on ARM64
  5. depends on MAILBOX
  6. select GUNYAH_PLATFORM_HOOKS
  7. select AUXILIARY_BUS
  8. imply GUNYAH_QCOM_PLATFORM if ARCH_QCOM
  9. help
  10. The Gunyah drivers are the helper interfaces that run in a guest VM
  11. such as basic inter-VM IPC and signaling mechanisms, and higher level
  12. services such as memory/device sharing, IRQ sharing, and so on.
  13. Say Y/M here to enable the drivers needed to interact in a Gunyah
  14. virtual environment.
  15. config GUNYAH_PLATFORM_HOOKS
  16. tristate
  17. config GUNYAH_QCOM_PLATFORM
  18. tristate "Support for Gunyah on Qualcomm platforms"
  19. depends on GUNYAH
  20. select GUNYAH_PLATFORM_HOOKS
  21. select QCOM_SCM
  22. help
  23. Enable support for interacting with Gunyah on Qualcomm
  24. platforms. Interaction with Qualcomm firmware requires
  25. extra platform-specific support.
  26. Say Y/M here to use Gunyah on Qualcomm platforms.
  27. config GUNYAH_VCPU
  28. tristate "Runnable Gunyah vCPUs"
  29. depends on GUNYAH
  30. help
  31. Enable kernel support for host-scheduled vCPUs running under Gunyah.
  32. When selecting this option, userspace virtual machine managers (VMM)
  33. can schedule the guest VM's vCPUs instead of using Gunyah's scheduler.
  34. VMMs can also handle stage 2 faults of the vCPUs.
  35. Say Y/M here if unsure and you want to support Gunyah VMMs.
  36. config GUNYAH_IRQFD
  37. tristate "Gunyah irqfd interface"
  38. depends on GUNYAH
  39. help
  40. Enable kernel support for creating irqfds which can raise an interrupt
  41. on Gunyah virtual machine.
  42. Say Y/M here if unsure and you want to support Gunyah VMMs.
  43. config GUNYAH_IOEVENTFD
  44. tristate "Gunyah ioeventfd interface"
  45. depends on GUNYAH
  46. help
  47. Enable kernel support for creating ioeventfds which can alert userspace
  48. when a Gunyah virtual machine accesses a memory address.
  49. Say Y/M here if unsure and you want to support Gunyah VMMs.
  50. menuconfig GUNYAH_DRIVERS
  51. bool "Gunyah Vendor Virtualization drivers"
  52. depends on ARM64
  53. depends on GUNYAH
  54. help
  55. The Gunyah drivers are the helper interfaces that runs on the
  56. virtual machines that provides support such as memory/device
  57. sharing, IRQ sharing, IPC/signalling mechanisms, and so on.
  58. Say Y here to enable the drivers needed to work on Gunyah
  59. virtualization environment.
  60. If you say N, all options in this submenu will be skipped and disabled.
  61. if GUNYAH_DRIVERS
  62. config GH_VIRT_WATCHDOG
  63. tristate "Gunyah Virtual Watchdog Driver"
  64. depends on QCOM_WDT_CORE
  65. help
  66. This enables the Qualcomm Technologies, Inc. watchdog module for
  67. the Gunyah hypervisor. It provides an interface to perform watchdog
  68. actions such as setting the bark/bite time and also petting the
  69. watchdog in the hypervisor.
  70. config GH_CTRL
  71. tristate "Create Gunyah entries under /sys/hypervisor"
  72. depends on SYSFS
  73. select SYS_HYPERVISOR
  74. help
  75. Create entries under /sys/hypervisor for the Gunyah hypervisor.
  76. The driver also provides a facility for controlling
  77. hypervisor debug features.
  78. See Documentation/ABI/testing/sysfs-hypervisor-gunyah for more details.
  79. config GH_DBL
  80. tristate "Gunyah Doorbell driver"
  81. help
  82. Gunyah offers a simple inter VMs(Virtual Machines) communication
  83. through the use of doorbell interrupts. A single doorbell instance
  84. provides an unidirectional communication between two VMs and it acts
  85. like either a source(Tx) or generate(Rx). Individual VMs make use of
  86. these doorbells by calling send and/or a receive primitives exposed by
  87. driver and trigger an interrupt to each other and exchange the data.
  88. config GH_MSGQ
  89. tristate "Gunyah Message Queue driver"
  90. help
  91. Gunyah offers message-queues as one of the IPC mechanisms to
  92. communicate among the Virtual Machines. The message queue drivers
  93. runs on the Virtual machines to provide an interface to the clients
  94. who wish to communicate to other clients on a different VM. Currently,
  95. the services offered by the drivers is simply to send and receive
  96. messages in a blocking manner.
  97. config GH_RM_DRV
  98. tristate "Gunyah Resource Manager driver"
  99. help
  100. The Gunyah Resource Manager driver is used to communicate with the
  101. Resource Manager Virtual Machine (RM-VM). The RM-VM acts as a mediator
  102. and provides numerous services to the other VMs running in the system,
  103. such as notifying when a particular VM is up, resource (IRQ/device)
  104. sharing between VMs, information about the IPC mechanisms, and so on.
  105. The Resource Manager driver runs on the Virtual Machine and acts as an
  106. interface to other driver in order to obtain the services provided by
  107. the RM-VM.
  108. config GH_IRQ_LEND
  109. tristate "Gunyah IRQ Lending Framework"
  110. depends on GH_RM_DRV
  111. help
  112. Gunyah Resource Manager permits interrupts to be shared between
  113. virtual machines. This config enables a framework which
  114. supports sharing these interrupts. The follows RM recommended
  115. protocol.
  116. config GH_RM_BOOSTER
  117. tristate "Gunyah RM booster driver"
  118. depends on GH_RM_DRV
  119. help
  120. Optimize vm bootup time by boost the performance of Gunyah
  121. Resource Manager, this config enables the driver to change RM affinity
  122. and change cpu frequency. At the beginning of vm bootup, the driver will
  123. migrate RM to the more powerful core and boost the frequency of it, and
  124. resume the status at the end of bootup period.
  125. config GH_MEM_NOTIFIER
  126. tristate "Gunyah Memory Resource Notification Framework"
  127. depends on GH_RM_DRV
  128. help
  129. The Gunyah Resource Manager allows for different memory resources
  130. to be transferred across virtual machines with different notification
  131. labels assigned to each resource to aid in distinguishing them.
  132. Enabling the Gunyah Memory Resource Notification Framework provides an
  133. interface for clients to transmit memory resources between virtual
  134. machines, and register callbacks that get invoked only when
  135. notifications pertaining to their memory resources arrive.
  136. config GH_SECURE_VM_LOADER
  137. tristate "Gunyah Secure Virtual Machine Loader Driver"
  138. depends on GUNYAH
  139. select QCOM_MDT_LOADER
  140. help
  141. This driver invokes mdt Loader to load images of
  142. any secure guest Virtual Machine (VM). The images are loaded
  143. in the carveout designated for the VM once the firmware name
  144. is validated.
  145. config GH_PROXY_SCHED
  146. tristate "PROXY Scheduling for Secondary VMs"
  147. depends on GUNYAH
  148. help
  149. Gunyah Proxy Scheduler provides framework to schedule/run VCPUs
  150. of Secondary VMs by exposing required functionality which can be
  151. invoked by the Gunyah driver. Gunyah Proxy Scheduler communicates
  152. with Gunyah hypervisor to run the VCPUs as needed.
  153. config GH_GUEST_POPS
  154. tristate "Gunyah Guest Power-Operations driver"
  155. depends on GH_RM_DRV
  156. help
  157. The driver runs on guest VMs and is majorly responsible for coordinating
  158. the guest's power operations. This includes, setting the VM's status,
  159. such as OS_STATUS_* or APPS_STATUS_*. It also acts as an input power key
  160. driver. That is, it listens to the shutdown requests, and when it receives
  161. one, it'll emulate a power key press action by sending an input
  162. notification to user-space.
  163. config GH_PANIC_NOTIFIER
  164. tristate "Nofity other VM to do error handle when Primary VM panic"
  165. depends on GH_RM_DRV
  166. help
  167. Through the use of a Gunyah doorbell object to notify other VM do error
  168. handle when Primary VM panic. After other VM received the doorbell, it
  169. can collect some debug information. This driver is to be enabled on both
  170. Primary VM and the other VM who need do error handle.
  171. endif