|  | # SPDX-License-Identifier: GPL-2.0-only | 
|  | menuconfig MAILBOX | 
|  | bool "Mailbox Hardware Support" | 
|  | help | 
|  | Mailbox is a framework to control hardware communication between | 
|  | on-chip processors through queued messages and interrupt driven | 
|  | signals. Say Y if your platform supports hardware mailboxes. | 
|  |  | 
|  | if MAILBOX | 
|  |  | 
|  | config ARM_MHU | 
|  | tristate "ARM MHU Mailbox" | 
|  | depends on ARM_AMBA | 
|  | help | 
|  | Say Y here if you want to build the ARM MHU controller driver. | 
|  | The controller has 3 mailbox channels, the last of which can be | 
|  | used in Secure mode only. | 
|  |  | 
|  | config IMX_MBOX | 
|  | tristate "i.MX Mailbox" | 
|  | depends on ARCH_MXC || COMPILE_TEST | 
|  | help | 
|  | Mailbox implementation for i.MX Messaging Unit (MU). | 
|  |  | 
|  | config PLATFORM_MHU | 
|  | tristate "Platform MHU Mailbox" | 
|  | depends on OF | 
|  | depends on HAS_IOMEM | 
|  | help | 
|  | Say Y here if you want to build a platform specific variant MHU | 
|  | controller driver. | 
|  | The controller has a maximum of 3 mailbox channels, the last of | 
|  | which can be used in Secure mode only. | 
|  |  | 
|  | config PL320_MBOX | 
|  | bool "ARM PL320 Mailbox" | 
|  | depends on ARM_AMBA | 
|  | help | 
|  | An implementation of the ARM PL320 Interprocessor Communication | 
|  | Mailbox (IPCM), tailored for the Calxeda Highbank. It is used to | 
|  | send short messages between Highbank's A9 cores and the EnergyCore | 
|  | Management Engine, primarily for cpufreq. Say Y here if you want | 
|  | to use the PL320 IPCM support. | 
|  |  | 
|  | config ARMADA_37XX_RWTM_MBOX | 
|  | tristate "Armada 37xx rWTM BIU Mailbox" | 
|  | depends on ARCH_MVEBU || COMPILE_TEST | 
|  | depends on OF | 
|  | help | 
|  | Mailbox implementation for communication with the the firmware | 
|  | running on the Cortex-M3 rWTM secure processor of the Armada 37xx | 
|  | SOC. Say Y here if you are building for such a device (for example | 
|  | the Turris Mox router). | 
|  |  | 
|  | config OMAP2PLUS_MBOX | 
|  | tristate "OMAP2+ Mailbox framework support" | 
|  | depends on ARCH_OMAP2PLUS || ARCH_K3 | 
|  | help | 
|  | Mailbox implementation for OMAP family chips with hardware for | 
|  | interprocessor communication involving DSP, IVA1.0 and IVA2 in | 
|  | OMAP2/3; or IPU, IVA HD and DSP in OMAP4/5. Say Y here if you | 
|  | want to use OMAP2+ Mailbox framework support. | 
|  |  | 
|  | config OMAP_MBOX_KFIFO_SIZE | 
|  | int "Mailbox kfifo default buffer size (bytes)" | 
|  | depends on OMAP2PLUS_MBOX | 
|  | default 256 | 
|  | help | 
|  | Specify the default size of mailbox's kfifo buffers (bytes). | 
|  | This can also be changed at runtime (via the mbox_kfifo_size | 
|  | module parameter). | 
|  |  | 
|  | config ROCKCHIP_MBOX | 
|  | bool "Rockchip Soc Intergrated Mailbox Support" | 
|  | depends on ARCH_ROCKCHIP || COMPILE_TEST | 
|  | help | 
|  | This driver provides support for inter-processor communication | 
|  | between CPU cores and MCU processor on Some Rockchip SOCs. | 
|  | Please check it that the Soc you use have Mailbox hardware. | 
|  | Say Y here if you want to use the Rockchip Mailbox support. | 
|  |  | 
|  | config PCC | 
|  | bool "Platform Communication Channel Driver" | 
|  | depends on ACPI | 
|  | default n | 
|  | help | 
|  | ACPI 5.0+ spec defines a generic mode of communication | 
|  | between the OS and a platform such as the BMC. This medium | 
|  | (PCC) is typically used by CPPC (ACPI CPU Performance management), | 
|  | RAS (ACPI reliability protocol) and MPST (ACPI Memory power | 
|  | states). Select this driver if your platform implements the | 
|  | PCC clients mentioned above. | 
|  |  | 
|  | config ALTERA_MBOX | 
|  | tristate "Altera Mailbox" | 
|  | depends on HAS_IOMEM | 
|  | help | 
|  | An implementation of the Altera Mailbox soft core. It is used | 
|  | to send message between processors. Say Y here if you want to use the | 
|  | Altera mailbox support. | 
|  |  | 
|  | config BCM2835_MBOX | 
|  | tristate "BCM2835 Mailbox" | 
|  | depends on ARCH_BCM2835 | 
|  | help | 
|  | An implementation of the BCM2385 Mailbox.  It is used to invoke | 
|  | the services of the Videocore. Say Y here if you want to use the | 
|  | BCM2835 Mailbox. | 
|  |  | 
|  | config STI_MBOX | 
|  | tristate "STI Mailbox framework support" | 
|  | depends on ARCH_STI && OF | 
|  | help | 
|  | Mailbox implementation for STMicroelectonics family chips with | 
|  | hardware for interprocessor communication. | 
|  |  | 
|  | config TI_MESSAGE_MANAGER | 
|  | tristate "Texas Instruments Message Manager Driver" | 
|  | depends on ARCH_KEYSTONE || ARCH_K3 | 
|  | help | 
|  | An implementation of Message Manager slave driver for Keystone | 
|  | and K3 architecture SoCs from Texas Instruments. Message Manager | 
|  | is a communication entity found on few of Texas Instrument's keystone | 
|  | and K3 architecture SoCs. These may be used for communication between | 
|  | multiple processors within the SoC. Select this driver if your | 
|  | platform has support for the hardware block. | 
|  |  | 
|  | config HI3660_MBOX | 
|  | tristate "Hi3660 Mailbox" if EXPERT | 
|  | depends on (ARCH_HISI || COMPILE_TEST) | 
|  | depends on OF | 
|  | default ARCH_HISI | 
|  | help | 
|  | An implementation of the hi3660 mailbox. It is used to send message | 
|  | between application processors and other processors/MCU/DSP. Select | 
|  | Y here if you want to use Hi3660 mailbox controller. | 
|  |  | 
|  | config HI6220_MBOX | 
|  | tristate "Hi6220 Mailbox" if EXPERT | 
|  | depends on (ARCH_HISI || COMPILE_TEST) | 
|  | depends on OF | 
|  | default ARCH_HISI | 
|  | help | 
|  | An implementation of the hi6220 mailbox. It is used to send message | 
|  | between application processors and MCU. Say Y here if you want to | 
|  | build Hi6220 mailbox controller driver. | 
|  |  | 
|  | config MAILBOX_TEST | 
|  | tristate "Mailbox Test Client" | 
|  | depends on OF | 
|  | depends on HAS_IOMEM | 
|  | help | 
|  | Test client to help with testing new Controller driver | 
|  | implementations. | 
|  |  | 
|  | config QCOM_APCS_IPC | 
|  | tristate "Qualcomm APCS IPC driver" | 
|  | depends on ARCH_QCOM || COMPILE_TEST | 
|  | help | 
|  | Say y here to enable support for the APCS IPC mailbox driver, | 
|  | providing an interface for invoking the inter-process communication | 
|  | signals from the application processor to other masters. | 
|  |  | 
|  | config TEGRA_HSP_MBOX | 
|  | bool "Tegra HSP (Hardware Synchronization Primitives) Driver" | 
|  | depends on ARCH_TEGRA | 
|  | help | 
|  | The Tegra HSP driver is used for the interprocessor communication | 
|  | between different remote processors and host processors on Tegra186 | 
|  | and later SoCs. Say Y here if you want to have this support. | 
|  | If unsure say N. | 
|  |  | 
|  | config XGENE_SLIMPRO_MBOX | 
|  | tristate "APM SoC X-Gene SLIMpro Mailbox Controller" | 
|  | depends on ARCH_XGENE | 
|  | help | 
|  | An implementation of the APM X-Gene Interprocessor Communication | 
|  | Mailbox (IPCM) between the ARM 64-bit cores and SLIMpro controller. | 
|  | It is used to send short messages between ARM64-bit cores and | 
|  | the SLIMpro Management Engine, primarily for PM. Say Y here if you | 
|  | want to use the APM X-Gene SLIMpro IPCM support. | 
|  |  | 
|  | config BCM_PDC_MBOX | 
|  | tristate "Broadcom FlexSparx DMA Mailbox" | 
|  | depends on ARCH_BCM_IPROC || COMPILE_TEST | 
|  | help | 
|  | Mailbox implementation for the Broadcom FlexSparx DMA ring manager, | 
|  | which provides access to various offload engines on Broadcom | 
|  | SoCs, including FA2/FA+ on Northstar Plus and PDC on Northstar 2. | 
|  |  | 
|  | config BCM_FLEXRM_MBOX | 
|  | tristate "Broadcom FlexRM Mailbox" | 
|  | depends on ARM64 | 
|  | depends on ARCH_BCM_IPROC || COMPILE_TEST | 
|  | select GENERIC_MSI_IRQ_DOMAIN | 
|  | default m if ARCH_BCM_IPROC | 
|  | help | 
|  | Mailbox implementation of the Broadcom FlexRM ring manager, | 
|  | which provides access to various offload engines on Broadcom | 
|  | SoCs. Say Y here if you want to use the Broadcom FlexRM. | 
|  |  | 
|  | config STM32_IPCC | 
|  | tristate "STM32 IPCC Mailbox" | 
|  | depends on MACH_STM32MP157 | 
|  | help | 
|  | Mailbox implementation for STMicroelectonics STM32 family chips | 
|  | with hardware for Inter-Processor Communication Controller (IPCC) | 
|  | between processors. Say Y here if you want to have this support. | 
|  |  | 
|  | config MTK_CMDQ_MBOX | 
|  | tristate "MediaTek CMDQ Mailbox Support" | 
|  | depends on ARCH_MEDIATEK || COMPILE_TEST | 
|  | select MTK_INFRACFG | 
|  | help | 
|  | Say yes here to add support for the MediaTek Command Queue (CMDQ) | 
|  | mailbox driver. The CMDQ is used to help read/write registers with | 
|  | critical time limitation, such as updating display configuration | 
|  | during the vblank. | 
|  |  | 
|  | config ZYNQMP_IPI_MBOX | 
|  | bool "Xilinx ZynqMP IPI Mailbox" | 
|  | depends on ARCH_ZYNQMP && OF | 
|  | help | 
|  | Say yes here to add support for Xilinx IPI mailbox driver. | 
|  | This mailbox driver is used to send notification or short message | 
|  | between processors with Xilinx ZynqMP IPI. It will place the | 
|  | message to the IPI buffer and will access the IPI control | 
|  | registers to kick the other processor or enquire status. | 
|  |  | 
|  | endif |