1# SPDX-License-Identifier: Apache-2.0
2
3menuconfig IPM
4	bool "Inter-Processor Mailbox (IPM) drivers"
5	help
6	  Include interrupt-based inter-processor mailboxes
7	  drivers in system configuration
8
9if IPM
10
11config IPM_MAX_DATA_SIZE
12	int "Max data size supported"
13	default 0 if IPM_STM32_IPCC || IPM_STM32_HSEM
14	default 1024
15	help
16	  Define the max size (in bytes) of data that can be transmitted or
17	  received by the IPM device.
18
19config IPM_MHU
20	bool "IPM MHU driver"
21	default y
22	depends on DT_HAS_ARM_MHU_ENABLED
23	help
24	  Driver for SSE 200 MHU (Message Handling Unit)
25
26config IPM_NRFX
27	bool "IPM NRF driver"
28	default y
29	depends on DT_HAS_NORDIC_NRF_IPC_ENABLED
30	select NRFX_IPC
31	help
32	  Driver for Nordic nRF messaging unit, based
33	  on nRF IPC peripheral HW.
34
35config IPM_NRF_SINGLE_INSTANCE
36	bool "Single instance of IPM device"
37	help
38	  Enable this option if the IPM device should have
39	  a single instance, instead of one per IPC
40	  message channel.
41
42config ESP32_SOFT_IPM
43	bool "ESP32 Software IPM driver"
44	default y
45	depends on DT_HAS_ESPRESSIF_ESP32_IPM_ENABLED
46	help
47	  Interprocessor driver for ESP32 when using AMP.
48
49config IPM_IVSHMEM
50	bool "IPM driver based on IVSHMEM-Doorbell"
51	default y
52	depends on DT_HAS_LINARO_IVSHMEM_IPM_ENABLED
53	depends on IVSHMEM
54	depends on IVSHMEM_DOORBELL
55	help
56	  Interprocessor driver using IVSHMEM Doorbell mechanism.
57
58config XLNX_IPI
59	bool "AMD-Xilinx IPM driver"
60	default y
61	depends on DT_HAS_XLNX_ZYNQMP_IPI_MAILBOX_ENABLED
62	help
63	  Inter Processor Interrupt driver for AMD-Xilinx
64	  platforms such as ZynqMP Ultrascale+.
65
66config IPM_MBOX
67	bool "IPM over MBOX driver"
68	default y
69	depends on DT_HAS_ZEPHYR_MBOX_IPM_ENABLED
70	select MBOX
71	help
72	  IPM driver using a MBOX driver as the backend mechanism.
73
74# zephyr-keep-sorted-start
75source "drivers/ipm/Kconfig.imx"
76source "drivers/ipm/Kconfig.ivshmem"
77source "drivers/ipm/Kconfig.nrfx"
78source "drivers/ipm/Kconfig.sedi"
79source "drivers/ipm/Kconfig.stm32"
80# zephyr-keep-sorted-stop
81
82module = IPM
83module-str = ipm
84source "subsys/logging/Kconfig.template.log_config"
85
86endif #IPM
87