Kconfig 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. menuconfig MAILBOX
  3. bool "Mailbox Hardware Support"
  4. help
  5. Mailbox is a framework to control hardware communication between
  6. on-chip processors through queued messages and interrupt driven
  7. signals. Say Y if your platform supports hardware mailboxes.
  8. if MAILBOX
  9. config ARM_MHU
  10. tristate "ARM MHU Mailbox"
  11. depends on ARM_AMBA
  12. help
  13. Say Y here if you want to build the ARM MHU controller driver.
  14. The controller has 3 mailbox channels, the last of which can be
  15. used in Secure mode only.
  16. config IMX_MBOX
  17. tristate "i.MX Mailbox"
  18. depends on ARCH_MXC || COMPILE_TEST
  19. help
  20. Mailbox implementation for i.MX Messaging Unit (MU).
  21. config PLATFORM_MHU
  22. tristate "Platform MHU Mailbox"
  23. depends on OF
  24. depends on HAS_IOMEM
  25. help
  26. Say Y here if you want to build a platform specific variant MHU
  27. controller driver.
  28. The controller has a maximum of 3 mailbox channels, the last of
  29. which can be used in Secure mode only.
  30. config PL320_MBOX
  31. bool "ARM PL320 Mailbox"
  32. depends on ARM_AMBA
  33. help
  34. An implementation of the ARM PL320 Interprocessor Communication
  35. Mailbox (IPCM), tailored for the Calxeda Highbank. It is used to
  36. send short messages between Highbank's A9 cores and the EnergyCore
  37. Management Engine, primarily for cpufreq. Say Y here if you want
  38. to use the PL320 IPCM support.
  39. config ARMADA_37XX_RWTM_MBOX
  40. tristate "Armada 37xx rWTM BIU Mailbox"
  41. depends on ARCH_MVEBU || COMPILE_TEST
  42. depends on OF
  43. help
  44. Mailbox implementation for communication with the the firmware
  45. running on the Cortex-M3 rWTM secure processor of the Armada 37xx
  46. SOC. Say Y here if you are building for such a device (for example
  47. the Turris Mox router).
  48. config OMAP2PLUS_MBOX
  49. tristate "OMAP2+ Mailbox framework support"
  50. depends on ARCH_OMAP2PLUS || ARCH_K3
  51. help
  52. Mailbox implementation for OMAP family chips with hardware for
  53. interprocessor communication involving DSP, IVA1.0 and IVA2 in
  54. OMAP2/3; or IPU, IVA HD and DSP in OMAP4/5. Say Y here if you
  55. want to use OMAP2+ Mailbox framework support.
  56. config OMAP_MBOX_KFIFO_SIZE
  57. int "Mailbox kfifo default buffer size (bytes)"
  58. depends on OMAP2PLUS_MBOX
  59. default 256
  60. help
  61. Specify the default size of mailbox's kfifo buffers (bytes).
  62. This can also be changed at runtime (via the mbox_kfifo_size
  63. module parameter).
  64. config ROCKCHIP_MBOX
  65. bool "Rockchip Soc Intergrated Mailbox Support"
  66. depends on ARCH_ROCKCHIP || COMPILE_TEST
  67. help
  68. This driver provides support for inter-processor communication
  69. between CPU cores and MCU processor on Some Rockchip SOCs.
  70. Please check it that the Soc you use have Mailbox hardware.
  71. Say Y here if you want to use the Rockchip Mailbox support.
  72. config PCC
  73. bool "Platform Communication Channel Driver"
  74. depends on ACPI
  75. default n
  76. help
  77. ACPI 5.0+ spec defines a generic mode of communication
  78. between the OS and a platform such as the BMC. This medium
  79. (PCC) is typically used by CPPC (ACPI CPU Performance management),
  80. RAS (ACPI reliability protocol) and MPST (ACPI Memory power
  81. states). Select this driver if your platform implements the
  82. PCC clients mentioned above.
  83. config ALTERA_MBOX
  84. tristate "Altera Mailbox"
  85. depends on HAS_IOMEM
  86. help
  87. An implementation of the Altera Mailbox soft core. It is used
  88. to send message between processors. Say Y here if you want to use the
  89. Altera mailbox support.
  90. config BCM2835_MBOX
  91. tristate "BCM2835 Mailbox"
  92. depends on ARCH_BCM2835
  93. help
  94. An implementation of the BCM2385 Mailbox. It is used to invoke
  95. the services of the Videocore. Say Y here if you want to use the
  96. BCM2835 Mailbox.
  97. config STI_MBOX
  98. tristate "STI Mailbox framework support"
  99. depends on ARCH_STI && OF
  100. help
  101. Mailbox implementation for STMicroelectonics family chips with
  102. hardware for interprocessor communication.
  103. config TI_MESSAGE_MANAGER
  104. tristate "Texas Instruments Message Manager Driver"
  105. depends on ARCH_KEYSTONE || ARCH_K3
  106. help
  107. An implementation of Message Manager slave driver for Keystone
  108. and K3 architecture SoCs from Texas Instruments. Message Manager
  109. is a communication entity found on few of Texas Instrument's keystone
  110. and K3 architecture SoCs. These may be used for communication between
  111. multiple processors within the SoC. Select this driver if your
  112. platform has support for the hardware block.
  113. config HI3660_MBOX
  114. tristate "Hi3660 Mailbox" if EXPERT
  115. depends on (ARCH_HISI || COMPILE_TEST)
  116. depends on OF
  117. default ARCH_HISI
  118. help
  119. An implementation of the hi3660 mailbox. It is used to send message
  120. between application processors and other processors/MCU/DSP. Select
  121. Y here if you want to use Hi3660 mailbox controller.
  122. config HI6220_MBOX
  123. tristate "Hi6220 Mailbox" if EXPERT
  124. depends on (ARCH_HISI || COMPILE_TEST)
  125. depends on OF
  126. default ARCH_HISI
  127. help
  128. An implementation of the hi6220 mailbox. It is used to send message
  129. between application processors and MCU. Say Y here if you want to
  130. build Hi6220 mailbox controller driver.
  131. config MAILBOX_TEST
  132. tristate "Mailbox Test Client"
  133. depends on OF
  134. depends on HAS_IOMEM
  135. help
  136. Test client to help with testing new Controller driver
  137. implementations.
  138. config VIRTIO_MAILBOX_TEST
  139. tristate "Virtio Mailbox Test Client"
  140. depends on OF
  141. depends on HAS_IOMEM
  142. help
  143. Virtio est client to help with testing new Controller driver
  144. implementations.
  145. config QCOM_APCS_IPC
  146. tristate "Qualcomm APCS IPC driver"
  147. depends on ARCH_QCOM || COMPILE_TEST
  148. help
  149. Say y here to enable support for the APCS IPC mailbox driver,
  150. providing an interface for invoking the inter-process communication
  151. signals from the application processor to other masters.
  152. config TEGRA_HSP_MBOX
  153. bool "Tegra HSP (Hardware Synchronization Primitives) Driver"
  154. depends on ARCH_TEGRA
  155. help
  156. The Tegra HSP driver is used for the interprocessor communication
  157. between different remote processors and host processors on Tegra186
  158. and later SoCs. Say Y here if you want to have this support.
  159. If unsure say N.
  160. config XGENE_SLIMPRO_MBOX
  161. tristate "APM SoC X-Gene SLIMpro Mailbox Controller"
  162. depends on ARCH_XGENE
  163. help
  164. An implementation of the APM X-Gene Interprocessor Communication
  165. Mailbox (IPCM) between the ARM 64-bit cores and SLIMpro controller.
  166. It is used to send short messages between ARM64-bit cores and
  167. the SLIMpro Management Engine, primarily for PM. Say Y here if you
  168. want to use the APM X-Gene SLIMpro IPCM support.
  169. config BCM_PDC_MBOX
  170. tristate "Broadcom FlexSparx DMA Mailbox"
  171. depends on ARCH_BCM_IPROC || COMPILE_TEST
  172. help
  173. Mailbox implementation for the Broadcom FlexSparx DMA ring manager,
  174. which provides access to various offload engines on Broadcom
  175. SoCs, including FA2/FA+ on Northstar Plus and PDC on Northstar 2.
  176. config BCM_FLEXRM_MBOX
  177. tristate "Broadcom FlexRM Mailbox"
  178. depends on ARM64
  179. depends on ARCH_BCM_IPROC || COMPILE_TEST
  180. select GENERIC_MSI_IRQ_DOMAIN
  181. default m if ARCH_BCM_IPROC
  182. help
  183. Mailbox implementation of the Broadcom FlexRM ring manager,
  184. which provides access to various offload engines on Broadcom
  185. SoCs. Say Y here if you want to use the Broadcom FlexRM.
  186. config STM32_IPCC
  187. tristate "STM32 IPCC Mailbox"
  188. depends on MACH_STM32MP157
  189. help
  190. Mailbox implementation for STMicroelectonics STM32 family chips
  191. with hardware for Inter-Processor Communication Controller (IPCC)
  192. between processors. Say Y here if you want to have this support.
  193. config MTK_CMDQ_MBOX
  194. tristate "MediaTek CMDQ Mailbox Support"
  195. depends on ARCH_MEDIATEK || COMPILE_TEST
  196. select MTK_INFRACFG
  197. help
  198. Say yes here to add support for the MediaTek Command Queue (CMDQ)
  199. mailbox driver. The CMDQ is used to help read/write registers with
  200. critical time limitation, such as updating display configuration
  201. during the vblank.
  202. config ZYNQMP_IPI_MBOX
  203. bool "Xilinx ZynqMP IPI Mailbox"
  204. depends on ARCH_ZYNQMP && OF
  205. help
  206. Say yes here to add support for Xilinx IPI mailbox driver.
  207. This mailbox driver is used to send notification or short message
  208. between processors with Xilinx ZynqMP IPI. It will place the
  209. message to the IPI buffer and will access the IPI control
  210. registers to kick the other processor or enquire status.
  211. config SUN6I_MSGBOX
  212. tristate "Allwinner sun6i/sun8i/sun9i/sun50i Message Box"
  213. depends on ARCH_SUNXI || COMPILE_TEST
  214. default ARCH_SUNXI
  215. help
  216. Mailbox implementation for the hardware message box present in
  217. various Allwinner SoCs. This mailbox is used for communication
  218. between the application CPUs and the power management coprocessor.
  219. config SPRD_MBOX
  220. tristate "Spreadtrum Mailbox"
  221. depends on ARCH_SPRD || COMPILE_TEST
  222. help
  223. Mailbox driver implementation for the Spreadtrum platform. It is used
  224. to send message between application processors and MCU. Say Y here if
  225. you want to build the Spreatrum mailbox controller driver.
  226. config QCOM_IPCC
  227. bool "Qualcomm Technologies, Inc. IPCC driver"
  228. depends on ARCH_QCOM || COMPILE_TEST
  229. help
  230. Qualcomm Technologies, Inc. Inter-Processor Communication Controller
  231. (IPCC) driver for MSM devices. The driver provides mailbox support for
  232. sending interrupts to the clients. On the other hand, the driver also
  233. acts as an interrupt controller for receiving interrupts from clients.
  234. Say Y here if you want to build this driver.
  235. config THEAD_LIGHT_MBOX
  236. bool "Thead light Mailbox"
  237. depends on SOC_THEAD || COMPILE_TEST
  238. default y
  239. help
  240. Mailbox implementation for Thead light SoCs.
  241. config VIRTIO_MAILBOX
  242. tristate "Virtio mailbox driver"
  243. depends on VIRTIO
  244. default y
  245. help
  246. This is the virtual mailbox driver for virtio.
  247. endif