# SPDX-License-Identifier: Apache-2.0 menuconfig IPM bool "IPM drivers" help Include interrupt-based inter-processor mailboxes drivers in system configuration if IPM config IPM_MCUX bool "MCUX IPM driver" depends on HAS_MCUX help Driver for MCUX mailbox config IPM_IMX bool "IMX IPM driver" depends on HAS_IMX_HAL help Driver for NXP i.MX messaging unit config IPM_IMX_REV2 bool "IMX IPM driver (rev 2)" depends on HAS_MCUX depends on !IPM_IMX help Rev 2 driver for NXP i.MX messaging unit (MCUX-based) choice prompt "IMX IPM max data size" default IPM_IMX_MAX_DATA_SIZE_16 depends on IPM_IMX || IPM_IMX_REV2 help Select maximum message size for NXP i.MX messaging unit. config IPM_IMX_MAX_DATA_SIZE_4 bool "4 bytes" help There will be four message types with ids 0, 1, 2 or 3 and a maximum size of 4 bytes each. config IPM_IMX_MAX_DATA_SIZE_8 bool "8 bytes" help There will be two message types with ids 0 or 1 and a maximum size of 8 bytes each. config IPM_IMX_MAX_DATA_SIZE_16 bool "16 bytes" help There will be a single message type with id 0 and a maximum size of 16 bytes. endchoice config IPM_IMX_MAX_DATA_SIZE int range 4 16 default 4 if IPM_IMX_MAX_DATA_SIZE_4 default 8 if IPM_IMX_MAX_DATA_SIZE_8 default 16 if IPM_IMX_MAX_DATA_SIZE_16 depends on IPM_IMX || IPM_IMX_REV2 config IPM_IMX_MAX_ID_VAL int range 0 3 default 3 if IPM_IMX_MAX_DATA_SIZE_4 default 1 if IPM_IMX_MAX_DATA_SIZE_8 default 0 if IPM_IMX_MAX_DATA_SIZE_16 depends on IPM_IMX || IPM_IMX_REV2 config IPM_MHU bool "IPM MHU driver" help Driver for SSE 200 MHU (Message Handling Unit) config IPM_NRFX bool "IPM NRF driver" depends on HAS_HW_NRF_IPC select NRFX_IPC help Driver for Nordic nRF messaging unit, based on nRF IPC peripheral HW. config IPM_NRF_SINGLE_INSTANCE bool "Single instance of IPM device" help Enable this option if the IPM device should have a single instance, instead of one per IPC message channel. source "drivers/ipm/Kconfig.nrfx" config IPM_STM32_IPCC bool "STM32 IPCC controller" select USE_STM32_LL_IPCC help Driver for stm32 IPCC mailboxes config IPM_STM32_IPCC_PROCID int "STM32 IPCC Processor ID" default 2 range 1 2 depends on IPM_STM32_IPCC help use to define the Processor ID for IPCC access config IPM_CAVS_IDC bool "CAVS DSP Intra-DSP Communication (IDC) driver" depends on IPM && CAVS_ICTL default y if MP_NUM_CPUS > 1 && SMP help Driver for the Intra-DSP Communication (IDC) channel for cross SoC communications. config IPM_STM32_HSEM bool "STM32 HSEM controller" depends on STM32H7_DUAL_CORE help Driver for stm32 HSEM mailbox config IPM_STM32_HSEM_CPU int "HSEM CPU ID" default 1 if "$(dt_nodelabel_enabled,cpu0)" default 2 if "$(dt_nodelabel_enabled,cpu1)" range 1 2 depends on IPM_STM32_HSEM help use to define the CPU ID used by HSEM config IPM_CALLBACK_ASYNC bool "Deliver callbacks asynchronously" default y if IPM_CAVS_HOST help When selected, the driver supports "asynchronous" command delivery. Commands will stay active after the ISR returns, until the application expressly "completes" the command later. config IPM_CAVS_HOST bool "cAVS DSP/host communication" select CAVS_IPC help Driver for host/DSP communication on intel_adsp devices if IPM_CAVS_HOST config IPM_CAVS_HOST_INBOX_OFFSET hex "Byte offset of cAVS inbox window" depends on CAVS_IPC default 0x6000 help Location of the host-writable inbox window within the HP_SRAM_RESERVE region. This location must be synchronized with host driver and SOF source code (must match SRAM_INBOX_BASE). Be careful. config IPM_CAVS_HOST_OUTBOX_OFFSET hex "Byte offset of cAVS outbox memory" depends on CAVS_IPC default 0x1000 help Location of the "outbox" region for SOF IPC3/4 message within the pre-existing window 0 (this is not the same as the HP_SRAM_RESERVE region used for INBOX_OFFSET). This location must be synchronized with host driver and SOF source code (where it must equal SRAM_SW_REG_SIZE). Be careful. config IPM_CAVS_HOST_REGWORD bool "Store first 4 bytes in IPC register" depends on CAVS_IPC depends on !SOC_SERIES_INTEL_CAVS_V15 help Protocol variant. When true, the first four bytes of a message are passed in the cAVS IDR/TDR register pair instead of in the SRAM window. Only available on cAVS 1.8+. endif # IPM_CAVS_HOST module = IPM module-str = ipm source "subsys/logging/Kconfig.template.log_config" endif #IPM