18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_cimenuconfig MAILBOX 38c2ecf20Sopenharmony_ci bool "Mailbox Hardware Support" 48c2ecf20Sopenharmony_ci help 58c2ecf20Sopenharmony_ci Mailbox is a framework to control hardware communication between 68c2ecf20Sopenharmony_ci on-chip processors through queued messages and interrupt driven 78c2ecf20Sopenharmony_ci signals. Say Y if your platform supports hardware mailboxes. 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciif MAILBOX 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciconfig ARM_MHU 128c2ecf20Sopenharmony_ci tristate "ARM MHU Mailbox" 138c2ecf20Sopenharmony_ci depends on ARM_AMBA 148c2ecf20Sopenharmony_ci help 158c2ecf20Sopenharmony_ci Say Y here if you want to build the ARM MHU controller driver. 168c2ecf20Sopenharmony_ci The controller has 3 mailbox channels, the last of which can be 178c2ecf20Sopenharmony_ci used in Secure mode only. 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciconfig IMX_MBOX 208c2ecf20Sopenharmony_ci tristate "i.MX Mailbox" 218c2ecf20Sopenharmony_ci depends on ARCH_MXC || COMPILE_TEST 228c2ecf20Sopenharmony_ci help 238c2ecf20Sopenharmony_ci Mailbox implementation for i.MX Messaging Unit (MU). 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciconfig PLATFORM_MHU 268c2ecf20Sopenharmony_ci tristate "Platform MHU Mailbox" 278c2ecf20Sopenharmony_ci depends on OF 288c2ecf20Sopenharmony_ci depends on HAS_IOMEM 298c2ecf20Sopenharmony_ci help 308c2ecf20Sopenharmony_ci Say Y here if you want to build a platform specific variant MHU 318c2ecf20Sopenharmony_ci controller driver. 328c2ecf20Sopenharmony_ci The controller has a maximum of 3 mailbox channels, the last of 338c2ecf20Sopenharmony_ci which can be used in Secure mode only. 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciconfig PL320_MBOX 368c2ecf20Sopenharmony_ci bool "ARM PL320 Mailbox" 378c2ecf20Sopenharmony_ci depends on ARM_AMBA 388c2ecf20Sopenharmony_ci help 398c2ecf20Sopenharmony_ci An implementation of the ARM PL320 Interprocessor Communication 408c2ecf20Sopenharmony_ci Mailbox (IPCM), tailored for the Calxeda Highbank. It is used to 418c2ecf20Sopenharmony_ci send short messages between Highbank's A9 cores and the EnergyCore 428c2ecf20Sopenharmony_ci Management Engine, primarily for cpufreq. Say Y here if you want 438c2ecf20Sopenharmony_ci to use the PL320 IPCM support. 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ciconfig ARMADA_37XX_RWTM_MBOX 468c2ecf20Sopenharmony_ci tristate "Armada 37xx rWTM BIU Mailbox" 478c2ecf20Sopenharmony_ci depends on ARCH_MVEBU || COMPILE_TEST 488c2ecf20Sopenharmony_ci depends on OF 498c2ecf20Sopenharmony_ci help 508c2ecf20Sopenharmony_ci Mailbox implementation for communication with the the firmware 518c2ecf20Sopenharmony_ci running on the Cortex-M3 rWTM secure processor of the Armada 37xx 528c2ecf20Sopenharmony_ci SOC. Say Y here if you are building for such a device (for example 538c2ecf20Sopenharmony_ci the Turris Mox router). 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ciconfig OMAP2PLUS_MBOX 568c2ecf20Sopenharmony_ci tristate "OMAP2+ Mailbox framework support" 578c2ecf20Sopenharmony_ci depends on ARCH_OMAP2PLUS || ARCH_K3 588c2ecf20Sopenharmony_ci help 598c2ecf20Sopenharmony_ci Mailbox implementation for OMAP family chips with hardware for 608c2ecf20Sopenharmony_ci interprocessor communication involving DSP, IVA1.0 and IVA2 in 618c2ecf20Sopenharmony_ci OMAP2/3; or IPU, IVA HD and DSP in OMAP4/5. Say Y here if you 628c2ecf20Sopenharmony_ci want to use OMAP2+ Mailbox framework support. 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ciconfig OMAP_MBOX_KFIFO_SIZE 658c2ecf20Sopenharmony_ci int "Mailbox kfifo default buffer size (bytes)" 668c2ecf20Sopenharmony_ci depends on OMAP2PLUS_MBOX 678c2ecf20Sopenharmony_ci default 256 688c2ecf20Sopenharmony_ci help 698c2ecf20Sopenharmony_ci Specify the default size of mailbox's kfifo buffers (bytes). 708c2ecf20Sopenharmony_ci This can also be changed at runtime (via the mbox_kfifo_size 718c2ecf20Sopenharmony_ci module parameter). 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ciconfig ROCKCHIP_MBOX 748c2ecf20Sopenharmony_ci bool "Rockchip Soc Intergrated Mailbox Support" 758c2ecf20Sopenharmony_ci depends on ARCH_ROCKCHIP || COMPILE_TEST 768c2ecf20Sopenharmony_ci help 778c2ecf20Sopenharmony_ci This driver provides support for inter-processor communication 788c2ecf20Sopenharmony_ci between CPU cores and MCU processor on Some Rockchip SOCs. 798c2ecf20Sopenharmony_ci Please check it that the Soc you use have Mailbox hardware. 808c2ecf20Sopenharmony_ci Say Y here if you want to use the Rockchip Mailbox support. 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ciconfig PCC 838c2ecf20Sopenharmony_ci bool "Platform Communication Channel Driver" 848c2ecf20Sopenharmony_ci depends on ACPI 858c2ecf20Sopenharmony_ci default n 868c2ecf20Sopenharmony_ci help 878c2ecf20Sopenharmony_ci ACPI 5.0+ spec defines a generic mode of communication 888c2ecf20Sopenharmony_ci between the OS and a platform such as the BMC. This medium 898c2ecf20Sopenharmony_ci (PCC) is typically used by CPPC (ACPI CPU Performance management), 908c2ecf20Sopenharmony_ci RAS (ACPI reliability protocol) and MPST (ACPI Memory power 918c2ecf20Sopenharmony_ci states). Select this driver if your platform implements the 928c2ecf20Sopenharmony_ci PCC clients mentioned above. 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ciconfig ALTERA_MBOX 958c2ecf20Sopenharmony_ci tristate "Altera Mailbox" 968c2ecf20Sopenharmony_ci depends on HAS_IOMEM 978c2ecf20Sopenharmony_ci help 988c2ecf20Sopenharmony_ci An implementation of the Altera Mailbox soft core. It is used 998c2ecf20Sopenharmony_ci to send message between processors. Say Y here if you want to use the 1008c2ecf20Sopenharmony_ci Altera mailbox support. 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ciconfig BCM2835_MBOX 1038c2ecf20Sopenharmony_ci tristate "BCM2835 Mailbox" 1048c2ecf20Sopenharmony_ci depends on ARCH_BCM2835 1058c2ecf20Sopenharmony_ci help 1068c2ecf20Sopenharmony_ci An implementation of the BCM2385 Mailbox. It is used to invoke 1078c2ecf20Sopenharmony_ci the services of the Videocore. Say Y here if you want to use the 1088c2ecf20Sopenharmony_ci BCM2835 Mailbox. 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ciconfig STI_MBOX 1118c2ecf20Sopenharmony_ci tristate "STI Mailbox framework support" 1128c2ecf20Sopenharmony_ci depends on ARCH_STI && OF 1138c2ecf20Sopenharmony_ci help 1148c2ecf20Sopenharmony_ci Mailbox implementation for STMicroelectonics family chips with 1158c2ecf20Sopenharmony_ci hardware for interprocessor communication. 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ciconfig TI_MESSAGE_MANAGER 1188c2ecf20Sopenharmony_ci tristate "Texas Instruments Message Manager Driver" 1198c2ecf20Sopenharmony_ci depends on ARCH_KEYSTONE || ARCH_K3 1208c2ecf20Sopenharmony_ci help 1218c2ecf20Sopenharmony_ci An implementation of Message Manager slave driver for Keystone 1228c2ecf20Sopenharmony_ci and K3 architecture SoCs from Texas Instruments. Message Manager 1238c2ecf20Sopenharmony_ci is a communication entity found on few of Texas Instrument's keystone 1248c2ecf20Sopenharmony_ci and K3 architecture SoCs. These may be used for communication between 1258c2ecf20Sopenharmony_ci multiple processors within the SoC. Select this driver if your 1268c2ecf20Sopenharmony_ci platform has support for the hardware block. 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ciconfig HI3660_MBOX 1298c2ecf20Sopenharmony_ci tristate "Hi3660 Mailbox" if EXPERT 1308c2ecf20Sopenharmony_ci depends on (ARCH_HISI || COMPILE_TEST) 1318c2ecf20Sopenharmony_ci depends on OF 1328c2ecf20Sopenharmony_ci default ARCH_HISI 1338c2ecf20Sopenharmony_ci help 1348c2ecf20Sopenharmony_ci An implementation of the hi3660 mailbox. It is used to send message 1358c2ecf20Sopenharmony_ci between application processors and other processors/MCU/DSP. Select 1368c2ecf20Sopenharmony_ci Y here if you want to use Hi3660 mailbox controller. 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ciconfig HI6220_MBOX 1398c2ecf20Sopenharmony_ci tristate "Hi6220 Mailbox" if EXPERT 1408c2ecf20Sopenharmony_ci depends on (ARCH_HISI || COMPILE_TEST) 1418c2ecf20Sopenharmony_ci depends on OF 1428c2ecf20Sopenharmony_ci default ARCH_HISI 1438c2ecf20Sopenharmony_ci help 1448c2ecf20Sopenharmony_ci An implementation of the hi6220 mailbox. It is used to send message 1458c2ecf20Sopenharmony_ci between application processors and MCU. Say Y here if you want to 1468c2ecf20Sopenharmony_ci build Hi6220 mailbox controller driver. 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ciconfig MAILBOX_TEST 1498c2ecf20Sopenharmony_ci tristate "Mailbox Test Client" 1508c2ecf20Sopenharmony_ci depends on OF 1518c2ecf20Sopenharmony_ci depends on HAS_IOMEM 1528c2ecf20Sopenharmony_ci help 1538c2ecf20Sopenharmony_ci Test client to help with testing new Controller driver 1548c2ecf20Sopenharmony_ci implementations. 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ciconfig QCOM_APCS_IPC 1578c2ecf20Sopenharmony_ci tristate "Qualcomm APCS IPC driver" 1588c2ecf20Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 1598c2ecf20Sopenharmony_ci help 1608c2ecf20Sopenharmony_ci Say y here to enable support for the APCS IPC mailbox driver, 1618c2ecf20Sopenharmony_ci providing an interface for invoking the inter-process communication 1628c2ecf20Sopenharmony_ci signals from the application processor to other masters. 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_ciconfig TEGRA_HSP_MBOX 1658c2ecf20Sopenharmony_ci bool "Tegra HSP (Hardware Synchronization Primitives) Driver" 1668c2ecf20Sopenharmony_ci depends on ARCH_TEGRA 1678c2ecf20Sopenharmony_ci help 1688c2ecf20Sopenharmony_ci The Tegra HSP driver is used for the interprocessor communication 1698c2ecf20Sopenharmony_ci between different remote processors and host processors on Tegra186 1708c2ecf20Sopenharmony_ci and later SoCs. Say Y here if you want to have this support. 1718c2ecf20Sopenharmony_ci If unsure say N. 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ciconfig XGENE_SLIMPRO_MBOX 1748c2ecf20Sopenharmony_ci tristate "APM SoC X-Gene SLIMpro Mailbox Controller" 1758c2ecf20Sopenharmony_ci depends on ARCH_XGENE 1768c2ecf20Sopenharmony_ci help 1778c2ecf20Sopenharmony_ci An implementation of the APM X-Gene Interprocessor Communication 1788c2ecf20Sopenharmony_ci Mailbox (IPCM) between the ARM 64-bit cores and SLIMpro controller. 1798c2ecf20Sopenharmony_ci It is used to send short messages between ARM64-bit cores and 1808c2ecf20Sopenharmony_ci the SLIMpro Management Engine, primarily for PM. Say Y here if you 1818c2ecf20Sopenharmony_ci want to use the APM X-Gene SLIMpro IPCM support. 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ciconfig BCM_PDC_MBOX 1848c2ecf20Sopenharmony_ci tristate "Broadcom FlexSparx DMA Mailbox" 1858c2ecf20Sopenharmony_ci depends on ARCH_BCM_IPROC || COMPILE_TEST 1868c2ecf20Sopenharmony_ci help 1878c2ecf20Sopenharmony_ci Mailbox implementation for the Broadcom FlexSparx DMA ring manager, 1888c2ecf20Sopenharmony_ci which provides access to various offload engines on Broadcom 1898c2ecf20Sopenharmony_ci SoCs, including FA2/FA+ on Northstar Plus and PDC on Northstar 2. 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ciconfig BCM_FLEXRM_MBOX 1928c2ecf20Sopenharmony_ci tristate "Broadcom FlexRM Mailbox" 1938c2ecf20Sopenharmony_ci depends on ARM64 1948c2ecf20Sopenharmony_ci depends on ARCH_BCM_IPROC || COMPILE_TEST 1958c2ecf20Sopenharmony_ci select GENERIC_MSI_IRQ_DOMAIN 1968c2ecf20Sopenharmony_ci default m if ARCH_BCM_IPROC 1978c2ecf20Sopenharmony_ci help 1988c2ecf20Sopenharmony_ci Mailbox implementation of the Broadcom FlexRM ring manager, 1998c2ecf20Sopenharmony_ci which provides access to various offload engines on Broadcom 2008c2ecf20Sopenharmony_ci SoCs. Say Y here if you want to use the Broadcom FlexRM. 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ciconfig STM32_IPCC 2038c2ecf20Sopenharmony_ci tristate "STM32 IPCC Mailbox" 2048c2ecf20Sopenharmony_ci depends on MACH_STM32MP157 2058c2ecf20Sopenharmony_ci help 2068c2ecf20Sopenharmony_ci Mailbox implementation for STMicroelectonics STM32 family chips 2078c2ecf20Sopenharmony_ci with hardware for Inter-Processor Communication Controller (IPCC) 2088c2ecf20Sopenharmony_ci between processors. Say Y here if you want to have this support. 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ciconfig MTK_CMDQ_MBOX 2118c2ecf20Sopenharmony_ci tristate "MediaTek CMDQ Mailbox Support" 2128c2ecf20Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 2138c2ecf20Sopenharmony_ci select MTK_INFRACFG 2148c2ecf20Sopenharmony_ci help 2158c2ecf20Sopenharmony_ci Say yes here to add support for the MediaTek Command Queue (CMDQ) 2168c2ecf20Sopenharmony_ci mailbox driver. The CMDQ is used to help read/write registers with 2178c2ecf20Sopenharmony_ci critical time limitation, such as updating display configuration 2188c2ecf20Sopenharmony_ci during the vblank. 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ciconfig ZYNQMP_IPI_MBOX 2218c2ecf20Sopenharmony_ci bool "Xilinx ZynqMP IPI Mailbox" 2228c2ecf20Sopenharmony_ci depends on ARCH_ZYNQMP && OF 2238c2ecf20Sopenharmony_ci help 2248c2ecf20Sopenharmony_ci Say yes here to add support for Xilinx IPI mailbox driver. 2258c2ecf20Sopenharmony_ci This mailbox driver is used to send notification or short message 2268c2ecf20Sopenharmony_ci between processors with Xilinx ZynqMP IPI. It will place the 2278c2ecf20Sopenharmony_ci message to the IPI buffer and will access the IPI control 2288c2ecf20Sopenharmony_ci registers to kick the other processor or enquire status. 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ciconfig SUN6I_MSGBOX 2318c2ecf20Sopenharmony_ci tristate "Allwinner sun6i/sun8i/sun9i/sun50i Message Box" 2328c2ecf20Sopenharmony_ci depends on ARCH_SUNXI || COMPILE_TEST 2338c2ecf20Sopenharmony_ci default ARCH_SUNXI 2348c2ecf20Sopenharmony_ci help 2358c2ecf20Sopenharmony_ci Mailbox implementation for the hardware message box present in 2368c2ecf20Sopenharmony_ci various Allwinner SoCs. This mailbox is used for communication 2378c2ecf20Sopenharmony_ci between the application CPUs and the power management coprocessor. 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ciconfig SPRD_MBOX 2408c2ecf20Sopenharmony_ci tristate "Spreadtrum Mailbox" 2418c2ecf20Sopenharmony_ci depends on ARCH_SPRD || COMPILE_TEST 2428c2ecf20Sopenharmony_ci help 2438c2ecf20Sopenharmony_ci Mailbox driver implementation for the Spreadtrum platform. It is used 2448c2ecf20Sopenharmony_ci to send message between application processors and MCU. Say Y here if 2458c2ecf20Sopenharmony_ci you want to build the Spreatrum mailbox controller driver. 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ciconfig QCOM_IPCC 2488c2ecf20Sopenharmony_ci bool "Qualcomm Technologies, Inc. IPCC driver" 2498c2ecf20Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 2508c2ecf20Sopenharmony_ci help 2518c2ecf20Sopenharmony_ci Qualcomm Technologies, Inc. Inter-Processor Communication Controller 2528c2ecf20Sopenharmony_ci (IPCC) driver for MSM devices. The driver provides mailbox support for 2538c2ecf20Sopenharmony_ci sending interrupts to the clients. On the other hand, the driver also 2548c2ecf20Sopenharmony_ci acts as an interrupt controller for receiving interrupts from clients. 2558c2ecf20Sopenharmony_ci Say Y here if you want to build this driver. 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ciendif 258