1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 230058677SRob Herringmenuconfig MAILBOX 330058677SRob Herring bool "Mailbox Hardware Support" 430058677SRob Herring help 530058677SRob Herring Mailbox is a framework to control hardware communication between 630058677SRob Herring on-chip processors through queued messages and interrupt driven 730058677SRob Herring signals. Say Y if your platform supports hardware mailboxes. 830058677SRob Herring 930058677SRob Herringif MAILBOX 10ee23d66aSJassi Brar 11ee23d66aSJassi Brarconfig ARM_MHU 12ee23d66aSJassi Brar tristate "ARM MHU Mailbox" 13ee23d66aSJassi Brar depends on ARM_AMBA 14ee23d66aSJassi Brar help 15ee23d66aSJassi Brar Say Y here if you want to build the ARM MHU controller driver. 16ee23d66aSJassi Brar The controller has 3 mailbox channels, the last of which can be 17ee23d66aSJassi Brar used in Secure mode only. 18ee23d66aSJassi Brar 195a6338ccSViresh Kumarconfig ARM_MHU_V2 205a6338ccSViresh Kumar tristate "ARM MHUv2 Mailbox" 215a6338ccSViresh Kumar depends on ARM_AMBA 225a6338ccSViresh Kumar help 235a6338ccSViresh Kumar Say Y here if you want to build the ARM MHUv2 controller driver, 245a6338ccSViresh Kumar which provides unidirectional mailboxes between processing elements. 255a6338ccSViresh Kumar 26ca1a8680SCristian Marussiconfig ARM_MHU_V3 27ca1a8680SCristian Marussi tristate "ARM MHUv3 Mailbox" 280e4ed482SGeert Uytterhoeven depends on ARM64 || COMPILE_TEST 29ca1a8680SCristian Marussi depends on HAS_IOMEM || COMPILE_TEST 30ca1a8680SCristian Marussi depends on OF 31ca1a8680SCristian Marussi help 32ca1a8680SCristian Marussi Say Y here if you want to build the ARM MHUv3 controller driver, 33ca1a8680SCristian Marussi which provides unidirectional mailboxes between processing elements. 34ca1a8680SCristian Marussi 35ca1a8680SCristian Marussi ARM MHUv3 controllers can implement a varying number of extensions 36ca1a8680SCristian Marussi that provides different means of transports: supported extensions 37ca1a8680SCristian Marussi will be discovered and possibly managed at probe-time. 38ca1a8680SCristian Marussi 39*529015a0SYuntao Daiconfig CV1800_MBOX 40*529015a0SYuntao Dai tristate "cv1800 mailbox" 41*529015a0SYuntao Dai depends on ARCH_SOPHGO || COMPILE_TEST 42*529015a0SYuntao Dai help 43*529015a0SYuntao Dai Mailbox driver implementation for Sophgo CV18XX SoCs. This driver 44*529015a0SYuntao Dai can be used to send message between different processors in SoC. Any 45*529015a0SYuntao Dai processer can write data in a channel, and set co-responding register 46*529015a0SYuntao Dai to raise interrupt to notice another processor, and it is allowed to 47*529015a0SYuntao Dai send data to itself. 48*529015a0SYuntao Dai 49fbf7e5ceSTudor Ambarusconfig EXYNOS_MBOX 50fbf7e5ceSTudor Ambarus tristate "Exynos Mailbox" 51fbf7e5ceSTudor Ambarus depends on ARCH_EXYNOS || COMPILE_TEST 52fbf7e5ceSTudor Ambarus help 53fbf7e5ceSTudor Ambarus Say Y here if you want to build the Samsung Exynos Mailbox controller 54fbf7e5ceSTudor Ambarus driver. The controller has 16 flag bits for hardware interrupt 55fbf7e5ceSTudor Ambarus generation and a shared register for passing mailbox messages. 56fbf7e5ceSTudor Ambarus When the controller is used by the ACPM interface the shared register 57fbf7e5ceSTudor Ambarus is ignored and the mailbox controller acts as a doorbell that raises 58fbf7e5ceSTudor Ambarus the interrupt to the ACPM firmware. 59fbf7e5ceSTudor Ambarus 602bb70056SOleksij Rempelconfig IMX_MBOX 612bb70056SOleksij Rempel tristate "i.MX Mailbox" 622bb70056SOleksij Rempel depends on ARCH_MXC || COMPILE_TEST 632bb70056SOleksij Rempel help 642bb70056SOleksij Rempel Mailbox implementation for i.MX Messaging Unit (MU). 652bb70056SOleksij Rempel 66ad3a212cSNeil Armstrongconfig PLATFORM_MHU 67ad3a212cSNeil Armstrong tristate "Platform MHU Mailbox" 68ad3a212cSNeil Armstrong depends on OF 69ad3a212cSNeil Armstrong depends on HAS_IOMEM 70ad3a212cSNeil Armstrong help 71ad3a212cSNeil Armstrong Say Y here if you want to build a platform specific variant MHU 72ad3a212cSNeil Armstrong controller driver. 73ad3a212cSNeil Armstrong The controller has a maximum of 3 mailbox channels, the last of 74ad3a212cSNeil Armstrong which can be used in Secure mode only. 75ad3a212cSNeil Armstrong 7630058677SRob Herringconfig PL320_MBOX 7730058677SRob Herring bool "ARM PL320 Mailbox" 7830058677SRob Herring depends on ARM_AMBA 7930058677SRob Herring help 8030058677SRob Herring An implementation of the ARM PL320 Interprocessor Communication 8130058677SRob Herring Mailbox (IPCM), tailored for the Calxeda Highbank. It is used to 8230058677SRob Herring send short messages between Highbank's A9 cores and the EnergyCore 8330058677SRob Herring Management Engine, primarily for cpufreq. Say Y here if you want 8430058677SRob Herring to use the PL320 IPCM support. 8530058677SRob Herring 868fbbfd96SMarek Behunconfig ARMADA_37XX_RWTM_MBOX 878fbbfd96SMarek Behun tristate "Armada 37xx rWTM BIU Mailbox" 888fbbfd96SMarek Behun depends on ARCH_MVEBU || COMPILE_TEST 898fbbfd96SMarek Behun depends on OF 908fbbfd96SMarek Behun help 918fbbfd96SMarek Behun Mailbox implementation for communication with the the firmware 928fbbfd96SMarek Behun running on the Cortex-M3 rWTM secure processor of the Armada 37xx 938fbbfd96SMarek Behun SOC. Say Y here if you are building for such a device (for example 948fbbfd96SMarek Behun the Turris Mox router). 958fbbfd96SMarek Behun 96c869c75cSSuman Annaconfig OMAP2PLUS_MBOX 97c869c75cSSuman Anna tristate "OMAP2+ Mailbox framework support" 9854595f28SArnd Bergmann depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST 99c869c75cSSuman Anna help 100c869c75cSSuman Anna Mailbox implementation for OMAP family chips with hardware for 101c869c75cSSuman Anna interprocessor communication involving DSP, IVA1.0 and IVA2 in 102c869c75cSSuman Anna OMAP2/3; or IPU, IVA HD and DSP in OMAP4/5. Say Y here if you 103c869c75cSSuman Anna want to use OMAP2+ Mailbox framework support. 104c869c75cSSuman Anna 105f70ed3b5SCaesar Wangconfig ROCKCHIP_MBOX 1069d2e8b93STom Saeger bool "Rockchip Soc Integrated Mailbox Support" 107f70ed3b5SCaesar Wang depends on ARCH_ROCKCHIP || COMPILE_TEST 108f70ed3b5SCaesar Wang help 109f70ed3b5SCaesar Wang This driver provides support for inter-processor communication 110f70ed3b5SCaesar Wang between CPU cores and MCU processor on Some Rockchip SOCs. 111f70ed3b5SCaesar Wang Please check it that the Soc you use have Mailbox hardware. 112f70ed3b5SCaesar Wang Say Y here if you want to use the Rockchip Mailbox support. 113f70ed3b5SCaesar Wang 11486c22f8cSAshwin Chauguleconfig PCC 11586c22f8cSAshwin Chaugule bool "Platform Communication Channel Driver" 11686c22f8cSAshwin Chaugule depends on ACPI 117b6fc6072SAshwin Chaugule default n 11886c22f8cSAshwin Chaugule help 11986c22f8cSAshwin Chaugule ACPI 5.0+ spec defines a generic mode of communication 12086c22f8cSAshwin Chaugule between the OS and a platform such as the BMC. This medium 12186c22f8cSAshwin Chaugule (PCC) is typically used by CPPC (ACPI CPU Performance management), 12286c22f8cSAshwin Chaugule RAS (ACPI reliability protocol) and MPST (ACPI Memory power 12386c22f8cSAshwin Chaugule states). Select this driver if your platform implements the 12486c22f8cSAshwin Chaugule PCC clients mentioned above. 12586c22f8cSAshwin Chaugule 126f62092f6SLey Foon Tanconfig ALTERA_MBOX 127f62092f6SLey Foon Tan tristate "Altera Mailbox" 12859dd3f02SRichard Weinberger depends on HAS_IOMEM 129f62092f6SLey Foon Tan help 130f62092f6SLey Foon Tan An implementation of the Altera Mailbox soft core. It is used 131f62092f6SLey Foon Tan to send message between processors. Say Y here if you want to use the 132f62092f6SLey Foon Tan Altera mailbox support. 1330bae6af6SLubomir Rintel 1340bae6af6SLubomir Rintelconfig BCM2835_MBOX 1350bae6af6SLubomir Rintel tristate "BCM2835 Mailbox" 1360bae6af6SLubomir Rintel depends on ARCH_BCM2835 1370bae6af6SLubomir Rintel help 1380bae6af6SLubomir Rintel An implementation of the BCM2385 Mailbox. It is used to invoke 1390bae6af6SLubomir Rintel the services of the Videocore. Say Y here if you want to use the 1400bae6af6SLubomir Rintel BCM2835 Mailbox. 1410bae6af6SLubomir Rintel 1429ef4546cSLee Jonesconfig STI_MBOX 1439ef4546cSLee Jones tristate "STI Mailbox framework support" 1449ef4546cSLee Jones depends on ARCH_STI && OF 1459ef4546cSLee Jones help 1469ef4546cSLee Jones Mailbox implementation for STMicroelectonics family chips with 1479ef4546cSLee Jones hardware for interprocessor communication. 1489ef4546cSLee Jones 149aace66b1SNishanth Menonconfig TI_MESSAGE_MANAGER 150aace66b1SNishanth Menon tristate "Texas Instruments Message Manager Driver" 151ff391d45SAndrew Davis depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST 15231c8d06eSNicolas Frayer default ARCH_K3 153aace66b1SNishanth Menon help 154aace66b1SNishanth Menon An implementation of Message Manager slave driver for Keystone 155cfc0f7a8SNishanth Menon and K3 architecture SoCs from Texas Instruments. Message Manager 156cfc0f7a8SNishanth Menon is a communication entity found on few of Texas Instrument's keystone 157cfc0f7a8SNishanth Menon and K3 architecture SoCs. These may be used for communication between 158aace66b1SNishanth Menon multiple processors within the SoC. Select this driver if your 159aace66b1SNishanth Menon platform has support for the hardware block. 160aace66b1SNishanth Menon 16141c0e939SKaihua Zhongconfig HI3660_MBOX 162f83d1cfcSDaniel Lezcano tristate "Hi3660 Mailbox" if EXPERT 163f83d1cfcSDaniel Lezcano depends on (ARCH_HISI || COMPILE_TEST) 164f83d1cfcSDaniel Lezcano depends on OF 165f83d1cfcSDaniel Lezcano default ARCH_HISI 16641c0e939SKaihua Zhong help 16741c0e939SKaihua Zhong An implementation of the hi3660 mailbox. It is used to send message 16841c0e939SKaihua Zhong between application processors and other processors/MCU/DSP. Select 16941c0e939SKaihua Zhong Y here if you want to use Hi3660 mailbox controller. 17041c0e939SKaihua Zhong 1719c384189SLeo Yanconfig HI6220_MBOX 172f83d1cfcSDaniel Lezcano tristate "Hi6220 Mailbox" if EXPERT 173f83d1cfcSDaniel Lezcano depends on (ARCH_HISI || COMPILE_TEST) 174f83d1cfcSDaniel Lezcano depends on OF 175f83d1cfcSDaniel Lezcano default ARCH_HISI 1769c384189SLeo Yan help 1779c384189SLeo Yan An implementation of the hi6220 mailbox. It is used to send message 1789c384189SLeo Yan between application processors and MCU. Say Y here if you want to 1799c384189SLeo Yan build Hi6220 mailbox controller driver. 1809c384189SLeo Yan 1818ea4484dSLee Jonesconfig MAILBOX_TEST 1828ea4484dSLee Jones tristate "Mailbox Test Client" 1838ea4484dSLee Jones depends on OF 18465d3b04aSRichard Weinberger depends on HAS_IOMEM 1858ea4484dSLee Jones help 1868ea4484dSLee Jones Test client to help with testing new Controller driver 1878ea4484dSLee Jones implementations. 1888ea4484dSLee Jones 18983d7b156SConor Dooleyconfig POLARFIRE_SOC_MAILBOX 19083d7b156SConor Dooley tristate "PolarFire SoC (MPFS) Mailbox" 19183d7b156SConor Dooley depends on HAS_IOMEM 192a4123ffaSConor Dooley depends on MFD_SYSCON 1935f84a056SConor Dooley depends on ARCH_MICROCHIP_POLARFIRE || COMPILE_TEST 19483d7b156SConor Dooley help 19583d7b156SConor Dooley This driver adds support for the PolarFire SoC (MPFS) mailbox controller. 19683d7b156SConor Dooley 19783d7b156SConor Dooley To compile this driver as a module, choose M here. the 19883d7b156SConor Dooley module will be called mailbox-mpfs. 19983d7b156SConor Dooley 20083d7b156SConor Dooley If unsure, say N. 20183d7b156SConor Dooley 202e4b1d67eSValentina Fernandezconfig MCHP_SBI_IPC_MBOX 203e4b1d67eSValentina Fernandez tristate "Microchip Inter-processor Communication (IPC) SBI driver" 204d635ba42SYue Haibing depends on RISCV_SBI 205d635ba42SYue Haibing depends on ARCH_MICROCHIP || COMPILE_TEST 206e4b1d67eSValentina Fernandez help 207e4b1d67eSValentina Fernandez Mailbox implementation for Microchip devices with an 208e4b1d67eSValentina Fernandez Inter-process communication (IPC) controller. 209e4b1d67eSValentina Fernandez 210e4b1d67eSValentina Fernandez To compile this driver as a module, choose M here. the 211e4b1d67eSValentina Fernandez module will be called mailbox-mchp-ipc-sbi. 212e4b1d67eSValentina Fernandez 213e4b1d67eSValentina Fernandez If unsure, say N. 214e4b1d67eSValentina Fernandez 21525bfee16SBjorn Anderssonconfig QCOM_APCS_IPC 21625bfee16SBjorn Andersson tristate "Qualcomm APCS IPC driver" 21725bfee16SBjorn Andersson depends on ARCH_QCOM || COMPILE_TEST 21825bfee16SBjorn Andersson help 21925bfee16SBjorn Andersson Say y here to enable support for the APCS IPC mailbox driver, 22025bfee16SBjorn Andersson providing an interface for invoking the inter-process communication 22125bfee16SBjorn Andersson signals from the application processor to other masters. 22225bfee16SBjorn Andersson 2230fe88461SThierry Redingconfig TEGRA_HSP_MBOX 2240fe88461SThierry Reding bool "Tegra HSP (Hardware Synchronization Primitives) Driver" 22585bd2de4SArnd Bergmann depends on ARCH_TEGRA 2260fe88461SThierry Reding help 2270fe88461SThierry Reding The Tegra HSP driver is used for the interprocessor communication 2280fe88461SThierry Reding between different remote processors and host processors on Tegra186 2290fe88461SThierry Reding and later SoCs. Say Y here if you want to have this support. 2300fe88461SThierry Reding If unsure say N. 2310fe88461SThierry Reding 232f700e84fSDuc Dangconfig XGENE_SLIMPRO_MBOX 233f700e84fSDuc Dang tristate "APM SoC X-Gene SLIMpro Mailbox Controller" 234f700e84fSDuc Dang depends on ARCH_XGENE 235f700e84fSDuc Dang help 236f700e84fSDuc Dang An implementation of the APM X-Gene Interprocessor Communication 237f700e84fSDuc Dang Mailbox (IPCM) between the ARM 64-bit cores and SLIMpro controller. 238f700e84fSDuc Dang It is used to send short messages between ARM64-bit cores and 239f700e84fSDuc Dang the SLIMpro Management Engine, primarily for PM. Say Y here if you 240f700e84fSDuc Dang want to use the APM X-Gene SLIMpro IPCM support. 241a24532f8SRob Rice 242a24532f8SRob Riceconfig BCM_PDC_MBOX 243fc2041c5SSteve Lin tristate "Broadcom FlexSparx DMA Mailbox" 244fc2041c5SSteve Lin depends on ARCH_BCM_IPROC || COMPILE_TEST 245a24532f8SRob Rice help 246fc2041c5SSteve Lin Mailbox implementation for the Broadcom FlexSparx DMA ring manager, 247a24532f8SRob Rice which provides access to various offload engines on Broadcom 248fc2041c5SSteve Lin SoCs, including FA2/FA+ on Northstar Plus and PDC on Northstar 2. 249dbc049eeSAnup Patel 250dbc049eeSAnup Patelconfig BCM_FLEXRM_MBOX 251dbc049eeSAnup Patel tristate "Broadcom FlexRM Mailbox" 25273874913SAnup Patel depends on ARM64 2538f82121dSScott Branden depends on ARCH_BCM_IPROC || COMPILE_TEST 25413e7accbSThomas Gleixner select GENERIC_MSI_IRQ 25522d28b0fSAnup Patel default m if ARCH_BCM_IPROC 256dbc049eeSAnup Patel help 257dbc049eeSAnup Patel Mailbox implementation of the Broadcom FlexRM ring manager, 258dbc049eeSAnup Patel which provides access to various offload engines on Broadcom 259dbc049eeSAnup Patel SoCs. Say Y here if you want to use the Broadcom FlexRM. 260ffbded7dSFabien Dessenne 261ffbded7dSFabien Dessenneconfig STM32_IPCC 262ffbded7dSFabien Dessenne tristate "STM32 IPCC Mailbox" 263d68f1729SMartin Kaiser depends on MACH_STM32MP157 || COMPILE_TEST 264ffbded7dSFabien Dessenne help 265ffbded7dSFabien Dessenne Mailbox implementation for STMicroelectonics STM32 family chips 266ffbded7dSFabien Dessenne with hardware for Inter-Processor Communication Controller (IPCC) 267ffbded7dSFabien Dessenne between processors. Say Y here if you want to have this support. 268623a6143SHoulong Wei 269af2dfa96SAllen-KH Chengconfig MTK_ADSP_MBOX 270af2dfa96SAllen-KH Cheng tristate "MediaTek ADSP Mailbox Controller" 271af2dfa96SAllen-KH Cheng depends on ARCH_MEDIATEK || COMPILE_TEST 272af2dfa96SAllen-KH Cheng help 273af2dfa96SAllen-KH Cheng Say yes here to add support for "MediaTek ADSP Mailbox Controller. 274af2dfa96SAllen-KH Cheng This mailbox driver is used to send notification or short message 275af2dfa96SAllen-KH Cheng between processors with ADSP. It will place the message to share 276af2dfa96SAllen-KH Cheng buffer and will access the ipc control. 277af2dfa96SAllen-KH Cheng 278623a6143SHoulong Weiconfig MTK_CMDQ_MBOX 279623a6143SHoulong Wei tristate "MediaTek CMDQ Mailbox Support" 280623a6143SHoulong Wei depends on ARCH_MEDIATEK || COMPILE_TEST 281623a6143SHoulong Wei select MTK_INFRACFG 282623a6143SHoulong Wei help 283623a6143SHoulong Wei Say yes here to add support for the MediaTek Command Queue (CMDQ) 284623a6143SHoulong Wei mailbox driver. The CMDQ is used to help read/write registers with 285623a6143SHoulong Wei critical time limitation, such as updating display configuration 286623a6143SHoulong Wei during the vblank. 2874981b82bSWendy Liang 2884981b82bSWendy Liangconfig ZYNQMP_IPI_MBOX 2894f2fe396SNick Alcock tristate "Xilinx ZynqMP IPI Mailbox" 2904981b82bSWendy Liang depends on ARCH_ZYNQMP && OF 2914981b82bSWendy Liang help 2924981b82bSWendy Liang Say yes here to add support for Xilinx IPI mailbox driver. 2934981b82bSWendy Liang This mailbox driver is used to send notification or short message 2944981b82bSWendy Liang between processors with Xilinx ZynqMP IPI. It will place the 2954981b82bSWendy Liang message to the IPI buffer and will access the IPI control 2964981b82bSWendy Liang registers to kick the other processor or enquire status. 2974981b82bSWendy Liang 29825831c44SSamuel Hollandconfig SUN6I_MSGBOX 29925831c44SSamuel Holland tristate "Allwinner sun6i/sun8i/sun9i/sun50i Message Box" 30025831c44SSamuel Holland depends on ARCH_SUNXI || COMPILE_TEST 30125831c44SSamuel Holland default ARCH_SUNXI 30225831c44SSamuel Holland help 30325831c44SSamuel Holland Mailbox implementation for the hardware message box present in 30425831c44SSamuel Holland various Allwinner SoCs. This mailbox is used for communication 30525831c44SSamuel Holland between the application CPUs and the power management coprocessor. 30625831c44SSamuel Holland 307ca27fc26SBaolin Wangconfig SPRD_MBOX 308ca27fc26SBaolin Wang tristate "Spreadtrum Mailbox" 309ca27fc26SBaolin Wang depends on ARCH_SPRD || COMPILE_TEST 310ca27fc26SBaolin Wang help 311ca27fc26SBaolin Wang Mailbox driver implementation for the Spreadtrum platform. It is used 312ca27fc26SBaolin Wang to send message between application processors and MCU. Say Y here if 313ca27fc26SBaolin Wang you want to build the Spreatrum mailbox controller driver. 314ca27fc26SBaolin Wang 3150e2a9a03SSibi Sankarconfig QCOM_CPUCP_MBOX 3160e2a9a03SSibi Sankar tristate "Qualcomm Technologies, Inc. CPUCP mailbox driver" 317cbf50095SArnd Bergmann depends on (ARCH_QCOM || COMPILE_TEST) && 64BIT 3180e2a9a03SSibi Sankar help 3190e2a9a03SSibi Sankar Qualcomm Technologies, Inc. CPUSS Control Processor (CPUCP) mailbox 3200e2a9a03SSibi Sankar controller driver enables communication between AP and CPUCP. Say 3210e2a9a03SSibi Sankar Y here if you want to build this driver. 3220e2a9a03SSibi Sankar 323fa74a025SManivannan Sadhasivamconfig QCOM_IPCC 3248d7e5908SAmit Pundir tristate "Qualcomm Technologies, Inc. IPCC driver" 325fa74a025SManivannan Sadhasivam depends on ARCH_QCOM || COMPILE_TEST 326fa74a025SManivannan Sadhasivam help 327fa74a025SManivannan Sadhasivam Qualcomm Technologies, Inc. Inter-Processor Communication Controller 328fa74a025SManivannan Sadhasivam (IPCC) driver for MSM devices. The driver provides mailbox support for 329fa74a025SManivannan Sadhasivam sending interrupts to the clients. On the other hand, the driver also 330fa74a025SManivannan Sadhasivam acts as an interrupt controller for receiving interrupts from clients. 331fa74a025SManivannan Sadhasivam Say Y here if you want to build this driver. 332fa74a025SManivannan Sadhasivam 3335d4d263eSMichal Wilczynskiconfig THEAD_TH1520_MBOX 3345d4d263eSMichal Wilczynski tristate "T-head TH1520 Mailbox" 3355d4d263eSMichal Wilczynski depends on ARCH_THEAD || COMPILE_TEST 3365d4d263eSMichal Wilczynski help 3375d4d263eSMichal Wilczynski Mailbox driver implementation for the Thead TH-1520 platform. Enables 3385d4d263eSMichal Wilczynski two cores within the SoC to communicate and coordinate by passing 3395d4d263eSMichal Wilczynski messages. Could be used to communicate between E910 core, on which the 3405d4d263eSMichal Wilczynski kernel is running, and E902 core used for power management among other 3415d4d263eSMichal Wilczynski things. 3425d4d263eSMichal Wilczynski 34330058677SRob Herringendif 344