| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
- # 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 ARM_MHU_V2
- tristate "ARM MHUv2 Mailbox"
- depends on ARM_AMBA
- help
- Say Y here if you want to build the ARM MHUv2 controller driver,
- which provides unidirectional mailboxes between processing elements.
- config ARM_MHU_V3
- tristate "ARM MHUv3 Mailbox"
- depends on ARM64 || COMPILE_TEST
- depends on HAS_IOMEM || COMPILE_TEST
- depends on OF
- help
- Say Y here if you want to build the ARM MHUv3 controller driver,
- which provides unidirectional mailboxes between processing elements.
- ARM MHUv3 controllers can implement a varying number of extensions
- that provides different means of transports: supported extensions
- will be discovered and possibly managed at probe-time.
- config AST2700_MBOX
- tristate "ASPEED AST2700 IPC driver"
- depends on ARCH_ASPEED || COMPILE_TEST
- help
- Mailbox driver implementation for ASPEED AST27XX SoCs. This driver
- can be used to send message between different processors in SoC.
- The driver provides mailbox support for sending interrupts to the
- clients. Say Y here if you want to build this driver.
- config CV1800_MBOX
- tristate "cv1800 mailbox"
- depends on ARCH_SOPHGO || COMPILE_TEST
- help
- Mailbox driver implementation for Sophgo CV18XX SoCs. This driver
- can be used to send message between different processors in SoC. Any
- processer can write data in a channel, and set co-responding register
- to raise interrupt to notice another processor, and it is allowed to
- send data to itself.
- config EXYNOS_MBOX
- tristate "Exynos Mailbox"
- depends on ARCH_EXYNOS || COMPILE_TEST
- help
- Say Y here if you want to build the Samsung Exynos Mailbox controller
- driver. The controller has 16 flag bits for hardware interrupt
- generation and a shared register for passing mailbox messages.
- When the controller is used by the ACPM interface the shared register
- is ignored and the mailbox controller acts as a doorbell that raises
- the interrupt to the ACPM firmware.
- 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 || COMPILE_TEST
- 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 ROCKCHIP_MBOX
- bool "Rockchip Soc Integrated 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 || COMPILE_TEST
- default 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 POLARFIRE_SOC_MAILBOX
- tristate "PolarFire SoC (MPFS) Mailbox"
- depends on HAS_IOMEM
- depends on MFD_SYSCON
- depends on ARCH_MICROCHIP || COMPILE_TEST
- help
- This driver adds support for the PolarFire SoC (MPFS) mailbox controller.
- To compile this driver as a module, choose M here. the
- module will be called mailbox-mpfs.
- If unsure, say N.
- config MCHP_SBI_IPC_MBOX
- tristate "Microchip Inter-processor Communication (IPC) SBI driver"
- depends on RISCV_SBI
- depends on ARCH_MICROCHIP || COMPILE_TEST
- help
- Mailbox implementation for Microchip devices with an
- Inter-process communication (IPC) controller.
- To compile this driver as a module, choose M here. the
- module will be called mailbox-mchp-ipc-sbi.
- If unsure, say N.
- 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
- 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 || COMPILE_TEST
- 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_ADSP_MBOX
- tristate "MediaTek ADSP Mailbox Controller"
- depends on ARCH_MEDIATEK || COMPILE_TEST
- help
- Say yes here to add support for MediaTek ADSP Mailbox Controller.
- This mailbox driver is used to send notification or short message
- between processors with ADSP. It will place the message to share
- buffer and will access the ipc control.
- 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 MTK_GPUEB_MBOX
- tristate "MediaTek GPUEB Mailbox Support"
- depends on ARCH_MEDIATEK || COMPILE_TEST
- help
- The MediaTek GPUEB mailbox is used to communicate with the embedded
- controller in charge of GPU frequency and power management on some
- MediaTek SoCs, such as the MT8196.
- Say Y or m here if you want to support the MT8196 SoC in your kernel
- build.
- config MTK_VCP_MBOX
- tristate "MediaTek VCP Mailbox Support"
- depends on ARCH_MEDIATEK || COMPILE_TEST
- help
- Say yes here to add support for the MediaTek VCP mailbox driver.
- The mailbox implementation provides access from the application
- processor to Video Companion Processor Unit.
- If unsure say N.
- config ZYNQMP_IPI_MBOX
- tristate "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.
- config SUN6I_MSGBOX
- tristate "Allwinner sun6i/sun8i/sun9i/sun50i Message Box"
- depends on ARCH_SUNXI || COMPILE_TEST
- default ARCH_SUNXI
- help
- Mailbox implementation for the hardware message box present in
- various Allwinner SoCs. This mailbox is used for communication
- between the application CPUs and the power management coprocessor.
- config SPRD_MBOX
- tristate "Spreadtrum Mailbox"
- depends on ARCH_SPRD || COMPILE_TEST
- help
- Mailbox driver implementation for the Spreadtrum platform. It is used
- to send message between application processors and MCU. Say Y here if
- you want to build the Spreatrum mailbox controller driver.
- config QCOM_CPUCP_MBOX
- tristate "Qualcomm Technologies, Inc. CPUCP mailbox driver"
- depends on (ARCH_QCOM || COMPILE_TEST) && 64BIT
- help
- Qualcomm Technologies, Inc. CPUSS Control Processor (CPUCP) mailbox
- controller driver enables communication between AP and CPUCP. Say
- Y here if you want to build this driver.
- config QCOM_IPCC
- tristate "Qualcomm Technologies, Inc. IPCC driver"
- depends on ARCH_QCOM || COMPILE_TEST
- help
- Qualcomm Technologies, Inc. Inter-Processor Communication Controller
- (IPCC) driver for MSM devices. The driver provides mailbox support for
- sending interrupts to the clients. On the other hand, the driver also
- acts as an interrupt controller for receiving interrupts from clients.
- Say Y here if you want to build this driver.
- config THEAD_TH1520_MBOX
- tristate "T-head TH1520 Mailbox"
- depends on ARCH_THEAD || COMPILE_TEST
- help
- Mailbox driver implementation for the Thead TH-1520 platform. Enables
- two cores within the SoC to communicate and coordinate by passing
- messages. Could be used to communicate between E910 core, on which the
- kernel is running, and E902 core used for power management among other
- things.
- config CIX_MBOX
- tristate "CIX Mailbox"
- depends on ARCH_CIX || COMPILE_TEST
- depends on OF
- help
- Mailbox implementation for CIX IPC system. The controller supports
- 11 mailbox channels with different operating mode and every channel
- is unidirectional. Say Y here if you want to use the CIX Mailbox
- support.
- config BCM74110_MAILBOX
- tristate "Brcmstb BCM74110 Mailbox"
- depends on ARCH_BRCMSTB || COMPILE_TEST
- default ARCH_BRCMSTB
- help
- Broadcom STB mailbox driver present starting with brcmstb bcm74110
- SoCs. The mailbox is a communication channel between the host
- processor and coprocessor that handles various power management task
- and more.
- config RISCV_SBI_MPXY_MBOX
- tristate "RISC-V SBI Message Proxy (MPXY) Mailbox"
- depends on RISCV_SBI
- default RISCV
- help
- Mailbox driver implementation for RISC-V SBI Message Proxy (MPXY)
- extension. This mailbox driver is used to send messages to the
- remote processor through the SBI implementation (M-mode firmware
- or HS-mode hypervisor). Say Y here, unless you are sure you do not
- need this.
- endif
|