162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_cimenuconfig MAILBOX 362306a36Sopenharmony_ci bool "Mailbox Hardware Support" 462306a36Sopenharmony_ci help 562306a36Sopenharmony_ci Mailbox is a framework to control hardware communication between 662306a36Sopenharmony_ci on-chip processors through queued messages and interrupt driven 762306a36Sopenharmony_ci signals. Say Y if your platform supports hardware mailboxes. 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciif MAILBOX 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciconfig APPLE_MAILBOX 1262306a36Sopenharmony_ci tristate "Apple Mailbox driver" 1362306a36Sopenharmony_ci depends on ARCH_APPLE || (ARM64 && COMPILE_TEST) 1462306a36Sopenharmony_ci default ARCH_APPLE 1562306a36Sopenharmony_ci help 1662306a36Sopenharmony_ci Apple SoCs have various co-processors required for certain 1762306a36Sopenharmony_ci peripherals to work (NVMe, display controller, etc.). This 1862306a36Sopenharmony_ci driver adds support for the mailbox controller used to 1962306a36Sopenharmony_ci communicate with those. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci Say Y here if you have a Apple SoC. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciconfig ARM_MHU 2462306a36Sopenharmony_ci tristate "ARM MHU Mailbox" 2562306a36Sopenharmony_ci depends on ARM_AMBA 2662306a36Sopenharmony_ci help 2762306a36Sopenharmony_ci Say Y here if you want to build the ARM MHU controller driver. 2862306a36Sopenharmony_ci The controller has 3 mailbox channels, the last of which can be 2962306a36Sopenharmony_ci used in Secure mode only. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciconfig ARM_MHU_V2 3262306a36Sopenharmony_ci tristate "ARM MHUv2 Mailbox" 3362306a36Sopenharmony_ci depends on ARM_AMBA 3462306a36Sopenharmony_ci help 3562306a36Sopenharmony_ci Say Y here if you want to build the ARM MHUv2 controller driver, 3662306a36Sopenharmony_ci which provides unidirectional mailboxes between processing elements. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciconfig IMX_MBOX 3962306a36Sopenharmony_ci tristate "i.MX Mailbox" 4062306a36Sopenharmony_ci depends on ARCH_MXC || COMPILE_TEST 4162306a36Sopenharmony_ci help 4262306a36Sopenharmony_ci Mailbox implementation for i.MX Messaging Unit (MU). 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciconfig PLATFORM_MHU 4562306a36Sopenharmony_ci tristate "Platform MHU Mailbox" 4662306a36Sopenharmony_ci depends on OF 4762306a36Sopenharmony_ci depends on HAS_IOMEM 4862306a36Sopenharmony_ci help 4962306a36Sopenharmony_ci Say Y here if you want to build a platform specific variant MHU 5062306a36Sopenharmony_ci controller driver. 5162306a36Sopenharmony_ci The controller has a maximum of 3 mailbox channels, the last of 5262306a36Sopenharmony_ci which can be used in Secure mode only. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciconfig PL320_MBOX 5562306a36Sopenharmony_ci bool "ARM PL320 Mailbox" 5662306a36Sopenharmony_ci depends on ARM_AMBA 5762306a36Sopenharmony_ci help 5862306a36Sopenharmony_ci An implementation of the ARM PL320 Interprocessor Communication 5962306a36Sopenharmony_ci Mailbox (IPCM), tailored for the Calxeda Highbank. It is used to 6062306a36Sopenharmony_ci send short messages between Highbank's A9 cores and the EnergyCore 6162306a36Sopenharmony_ci Management Engine, primarily for cpufreq. Say Y here if you want 6262306a36Sopenharmony_ci to use the PL320 IPCM support. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ciconfig ARMADA_37XX_RWTM_MBOX 6562306a36Sopenharmony_ci tristate "Armada 37xx rWTM BIU Mailbox" 6662306a36Sopenharmony_ci depends on ARCH_MVEBU || COMPILE_TEST 6762306a36Sopenharmony_ci depends on OF 6862306a36Sopenharmony_ci help 6962306a36Sopenharmony_ci Mailbox implementation for communication with the the firmware 7062306a36Sopenharmony_ci running on the Cortex-M3 rWTM secure processor of the Armada 37xx 7162306a36Sopenharmony_ci SOC. Say Y here if you are building for such a device (for example 7262306a36Sopenharmony_ci the Turris Mox router). 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ciconfig OMAP2PLUS_MBOX 7562306a36Sopenharmony_ci tristate "OMAP2+ Mailbox framework support" 7662306a36Sopenharmony_ci depends on ARCH_OMAP2PLUS || ARCH_K3 7762306a36Sopenharmony_ci help 7862306a36Sopenharmony_ci Mailbox implementation for OMAP family chips with hardware for 7962306a36Sopenharmony_ci interprocessor communication involving DSP, IVA1.0 and IVA2 in 8062306a36Sopenharmony_ci OMAP2/3; or IPU, IVA HD and DSP in OMAP4/5. Say Y here if you 8162306a36Sopenharmony_ci want to use OMAP2+ Mailbox framework support. 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ciconfig OMAP_MBOX_KFIFO_SIZE 8462306a36Sopenharmony_ci int "Mailbox kfifo default buffer size (bytes)" 8562306a36Sopenharmony_ci depends on OMAP2PLUS_MBOX 8662306a36Sopenharmony_ci default 256 8762306a36Sopenharmony_ci help 8862306a36Sopenharmony_ci Specify the default size of mailbox's kfifo buffers (bytes). 8962306a36Sopenharmony_ci This can also be changed at runtime (via the mbox_kfifo_size 9062306a36Sopenharmony_ci module parameter). 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciconfig ROCKCHIP_MBOX 9362306a36Sopenharmony_ci bool "Rockchip Soc Integrated Mailbox Support" 9462306a36Sopenharmony_ci depends on ARCH_ROCKCHIP || COMPILE_TEST 9562306a36Sopenharmony_ci help 9662306a36Sopenharmony_ci This driver provides support for inter-processor communication 9762306a36Sopenharmony_ci between CPU cores and MCU processor on Some Rockchip SOCs. 9862306a36Sopenharmony_ci Please check it that the Soc you use have Mailbox hardware. 9962306a36Sopenharmony_ci Say Y here if you want to use the Rockchip Mailbox support. 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ciconfig PCC 10262306a36Sopenharmony_ci bool "Platform Communication Channel Driver" 10362306a36Sopenharmony_ci depends on ACPI 10462306a36Sopenharmony_ci default n 10562306a36Sopenharmony_ci help 10662306a36Sopenharmony_ci ACPI 5.0+ spec defines a generic mode of communication 10762306a36Sopenharmony_ci between the OS and a platform such as the BMC. This medium 10862306a36Sopenharmony_ci (PCC) is typically used by CPPC (ACPI CPU Performance management), 10962306a36Sopenharmony_ci RAS (ACPI reliability protocol) and MPST (ACPI Memory power 11062306a36Sopenharmony_ci states). Select this driver if your platform implements the 11162306a36Sopenharmony_ci PCC clients mentioned above. 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ciconfig ALTERA_MBOX 11462306a36Sopenharmony_ci tristate "Altera Mailbox" 11562306a36Sopenharmony_ci depends on HAS_IOMEM 11662306a36Sopenharmony_ci help 11762306a36Sopenharmony_ci An implementation of the Altera Mailbox soft core. It is used 11862306a36Sopenharmony_ci to send message between processors. Say Y here if you want to use the 11962306a36Sopenharmony_ci Altera mailbox support. 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ciconfig BCM2835_MBOX 12262306a36Sopenharmony_ci tristate "BCM2835 Mailbox" 12362306a36Sopenharmony_ci depends on ARCH_BCM2835 12462306a36Sopenharmony_ci help 12562306a36Sopenharmony_ci An implementation of the BCM2385 Mailbox. It is used to invoke 12662306a36Sopenharmony_ci the services of the Videocore. Say Y here if you want to use the 12762306a36Sopenharmony_ci BCM2835 Mailbox. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ciconfig STI_MBOX 13062306a36Sopenharmony_ci tristate "STI Mailbox framework support" 13162306a36Sopenharmony_ci depends on ARCH_STI && OF 13262306a36Sopenharmony_ci help 13362306a36Sopenharmony_ci Mailbox implementation for STMicroelectonics family chips with 13462306a36Sopenharmony_ci hardware for interprocessor communication. 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ciconfig TI_MESSAGE_MANAGER 13762306a36Sopenharmony_ci tristate "Texas Instruments Message Manager Driver" 13862306a36Sopenharmony_ci depends on ARCH_KEYSTONE || ARCH_K3 13962306a36Sopenharmony_ci default ARCH_K3 14062306a36Sopenharmony_ci help 14162306a36Sopenharmony_ci An implementation of Message Manager slave driver for Keystone 14262306a36Sopenharmony_ci and K3 architecture SoCs from Texas Instruments. Message Manager 14362306a36Sopenharmony_ci is a communication entity found on few of Texas Instrument's keystone 14462306a36Sopenharmony_ci and K3 architecture SoCs. These may be used for communication between 14562306a36Sopenharmony_ci multiple processors within the SoC. Select this driver if your 14662306a36Sopenharmony_ci platform has support for the hardware block. 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ciconfig HI3660_MBOX 14962306a36Sopenharmony_ci tristate "Hi3660 Mailbox" if EXPERT 15062306a36Sopenharmony_ci depends on (ARCH_HISI || COMPILE_TEST) 15162306a36Sopenharmony_ci depends on OF 15262306a36Sopenharmony_ci default ARCH_HISI 15362306a36Sopenharmony_ci help 15462306a36Sopenharmony_ci An implementation of the hi3660 mailbox. It is used to send message 15562306a36Sopenharmony_ci between application processors and other processors/MCU/DSP. Select 15662306a36Sopenharmony_ci Y here if you want to use Hi3660 mailbox controller. 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ciconfig HI6220_MBOX 15962306a36Sopenharmony_ci tristate "Hi6220 Mailbox" if EXPERT 16062306a36Sopenharmony_ci depends on (ARCH_HISI || COMPILE_TEST) 16162306a36Sopenharmony_ci depends on OF 16262306a36Sopenharmony_ci default ARCH_HISI 16362306a36Sopenharmony_ci help 16462306a36Sopenharmony_ci An implementation of the hi6220 mailbox. It is used to send message 16562306a36Sopenharmony_ci between application processors and MCU. Say Y here if you want to 16662306a36Sopenharmony_ci build Hi6220 mailbox controller driver. 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ciconfig MAILBOX_TEST 16962306a36Sopenharmony_ci tristate "Mailbox Test Client" 17062306a36Sopenharmony_ci depends on OF 17162306a36Sopenharmony_ci depends on HAS_IOMEM 17262306a36Sopenharmony_ci help 17362306a36Sopenharmony_ci Test client to help with testing new Controller driver 17462306a36Sopenharmony_ci implementations. 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ciconfig POLARFIRE_SOC_MAILBOX 17762306a36Sopenharmony_ci tristate "PolarFire SoC (MPFS) Mailbox" 17862306a36Sopenharmony_ci depends on HAS_IOMEM 17962306a36Sopenharmony_ci depends on ARCH_MICROCHIP_POLARFIRE || COMPILE_TEST 18062306a36Sopenharmony_ci help 18162306a36Sopenharmony_ci This driver adds support for the PolarFire SoC (MPFS) mailbox controller. 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci To compile this driver as a module, choose M here. the 18462306a36Sopenharmony_ci module will be called mailbox-mpfs. 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci If unsure, say N. 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ciconfig QCOM_APCS_IPC 18962306a36Sopenharmony_ci tristate "Qualcomm APCS IPC driver" 19062306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 19162306a36Sopenharmony_ci help 19262306a36Sopenharmony_ci Say y here to enable support for the APCS IPC mailbox driver, 19362306a36Sopenharmony_ci providing an interface for invoking the inter-process communication 19462306a36Sopenharmony_ci signals from the application processor to other masters. 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ciconfig TEGRA_HSP_MBOX 19762306a36Sopenharmony_ci bool "Tegra HSP (Hardware Synchronization Primitives) Driver" 19862306a36Sopenharmony_ci depends on ARCH_TEGRA 19962306a36Sopenharmony_ci help 20062306a36Sopenharmony_ci The Tegra HSP driver is used for the interprocessor communication 20162306a36Sopenharmony_ci between different remote processors and host processors on Tegra186 20262306a36Sopenharmony_ci and later SoCs. Say Y here if you want to have this support. 20362306a36Sopenharmony_ci If unsure say N. 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ciconfig XGENE_SLIMPRO_MBOX 20662306a36Sopenharmony_ci tristate "APM SoC X-Gene SLIMpro Mailbox Controller" 20762306a36Sopenharmony_ci depends on ARCH_XGENE 20862306a36Sopenharmony_ci help 20962306a36Sopenharmony_ci An implementation of the APM X-Gene Interprocessor Communication 21062306a36Sopenharmony_ci Mailbox (IPCM) between the ARM 64-bit cores and SLIMpro controller. 21162306a36Sopenharmony_ci It is used to send short messages between ARM64-bit cores and 21262306a36Sopenharmony_ci the SLIMpro Management Engine, primarily for PM. Say Y here if you 21362306a36Sopenharmony_ci want to use the APM X-Gene SLIMpro IPCM support. 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ciconfig BCM_PDC_MBOX 21662306a36Sopenharmony_ci tristate "Broadcom FlexSparx DMA Mailbox" 21762306a36Sopenharmony_ci depends on ARCH_BCM_IPROC || COMPILE_TEST 21862306a36Sopenharmony_ci help 21962306a36Sopenharmony_ci Mailbox implementation for the Broadcom FlexSparx DMA ring manager, 22062306a36Sopenharmony_ci which provides access to various offload engines on Broadcom 22162306a36Sopenharmony_ci SoCs, including FA2/FA+ on Northstar Plus and PDC on Northstar 2. 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ciconfig BCM_FLEXRM_MBOX 22462306a36Sopenharmony_ci tristate "Broadcom FlexRM Mailbox" 22562306a36Sopenharmony_ci depends on ARM64 22662306a36Sopenharmony_ci depends on ARCH_BCM_IPROC || COMPILE_TEST 22762306a36Sopenharmony_ci select GENERIC_MSI_IRQ 22862306a36Sopenharmony_ci default m if ARCH_BCM_IPROC 22962306a36Sopenharmony_ci help 23062306a36Sopenharmony_ci Mailbox implementation of the Broadcom FlexRM ring manager, 23162306a36Sopenharmony_ci which provides access to various offload engines on Broadcom 23262306a36Sopenharmony_ci SoCs. Say Y here if you want to use the Broadcom FlexRM. 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ciconfig STM32_IPCC 23562306a36Sopenharmony_ci tristate "STM32 IPCC Mailbox" 23662306a36Sopenharmony_ci depends on MACH_STM32MP157 || COMPILE_TEST 23762306a36Sopenharmony_ci help 23862306a36Sopenharmony_ci Mailbox implementation for STMicroelectonics STM32 family chips 23962306a36Sopenharmony_ci with hardware for Inter-Processor Communication Controller (IPCC) 24062306a36Sopenharmony_ci between processors. Say Y here if you want to have this support. 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ciconfig MTK_ADSP_MBOX 24362306a36Sopenharmony_ci tristate "MediaTek ADSP Mailbox Controller" 24462306a36Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 24562306a36Sopenharmony_ci help 24662306a36Sopenharmony_ci Say yes here to add support for "MediaTek ADSP Mailbox Controller. 24762306a36Sopenharmony_ci This mailbox driver is used to send notification or short message 24862306a36Sopenharmony_ci between processors with ADSP. It will place the message to share 24962306a36Sopenharmony_ci buffer and will access the ipc control. 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ciconfig MTK_CMDQ_MBOX 25262306a36Sopenharmony_ci tristate "MediaTek CMDQ Mailbox Support" 25362306a36Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 25462306a36Sopenharmony_ci select MTK_INFRACFG 25562306a36Sopenharmony_ci help 25662306a36Sopenharmony_ci Say yes here to add support for the MediaTek Command Queue (CMDQ) 25762306a36Sopenharmony_ci mailbox driver. The CMDQ is used to help read/write registers with 25862306a36Sopenharmony_ci critical time limitation, such as updating display configuration 25962306a36Sopenharmony_ci during the vblank. 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ciconfig ZYNQMP_IPI_MBOX 26262306a36Sopenharmony_ci tristate "Xilinx ZynqMP IPI Mailbox" 26362306a36Sopenharmony_ci depends on ARCH_ZYNQMP && OF 26462306a36Sopenharmony_ci help 26562306a36Sopenharmony_ci Say yes here to add support for Xilinx IPI mailbox driver. 26662306a36Sopenharmony_ci This mailbox driver is used to send notification or short message 26762306a36Sopenharmony_ci between processors with Xilinx ZynqMP IPI. It will place the 26862306a36Sopenharmony_ci message to the IPI buffer and will access the IPI control 26962306a36Sopenharmony_ci registers to kick the other processor or enquire status. 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ciconfig SUN6I_MSGBOX 27262306a36Sopenharmony_ci tristate "Allwinner sun6i/sun8i/sun9i/sun50i Message Box" 27362306a36Sopenharmony_ci depends on ARCH_SUNXI || COMPILE_TEST 27462306a36Sopenharmony_ci default ARCH_SUNXI 27562306a36Sopenharmony_ci help 27662306a36Sopenharmony_ci Mailbox implementation for the hardware message box present in 27762306a36Sopenharmony_ci various Allwinner SoCs. This mailbox is used for communication 27862306a36Sopenharmony_ci between the application CPUs and the power management coprocessor. 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ciconfig SPRD_MBOX 28162306a36Sopenharmony_ci tristate "Spreadtrum Mailbox" 28262306a36Sopenharmony_ci depends on ARCH_SPRD || COMPILE_TEST 28362306a36Sopenharmony_ci help 28462306a36Sopenharmony_ci Mailbox driver implementation for the Spreadtrum platform. It is used 28562306a36Sopenharmony_ci to send message between application processors and MCU. Say Y here if 28662306a36Sopenharmony_ci you want to build the Spreatrum mailbox controller driver. 28762306a36Sopenharmony_ci 28862306a36Sopenharmony_ciconfig QCOM_IPCC 28962306a36Sopenharmony_ci tristate "Qualcomm Technologies, Inc. IPCC driver" 29062306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 29162306a36Sopenharmony_ci help 29262306a36Sopenharmony_ci Qualcomm Technologies, Inc. Inter-Processor Communication Controller 29362306a36Sopenharmony_ci (IPCC) driver for MSM devices. The driver provides mailbox support for 29462306a36Sopenharmony_ci sending interrupts to the clients. On the other hand, the driver also 29562306a36Sopenharmony_ci acts as an interrupt controller for receiving interrupts from clients. 29662306a36Sopenharmony_ci Say Y here if you want to build this driver. 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ciendif 299