The Multi-Channel Inter-Processor Mailbox (MBOX) framework can be seen as a more general version of the Inter-Processor Mailbox (IPM) framework. An MBOX driver provides for multiple channels, where IPM provides for only a single channel of communication. Currently many applications are written to use IPM, while some are now being written to use MBOX. This means if a platform wants to support both types of apps a given it must have a driver for both frameworks. As MBOX is the newer and more generic framework, new drivers are being added for this framework only and older IPM drivers are being migrated to MBOX. This leads to the situation where applications need to be written twice, once for each framework, to run across all platforms. The solution is to add a gasket driver that exposes the IPM interface while using a MBOX driver in the back-end. This shim driver allows platforms to only need an MBOX driver to support both types of application. This IPM driver can be used when an application only supports IPM but the platform only supports MBOX. This will allow platforms and applications to be ported over to MBOX independently of each other. Add this driver here. Signed-off-by: Andrew Davis <afd@ti.com>
20 lines
927 B
CMake
20 lines
927 B
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
zephyr_syscall_header(${ZEPHYR_BASE}/include/zephyr/drivers/ipm.h)
|
|
|
|
zephyr_library()
|
|
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_MCUX ipm_mcux.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_IMX ipm_imx.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_MHU ipm_mhu.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_STM32_IPCC ipm_stm32_ipcc.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_NRFX ipm_nrfx_ipc.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_STM32_HSEM ipm_stm32_hsem.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_CAVS_HOST ipm_cavs_host.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_SEDI ipm_sedi.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_IVSHMEM ipm_ivshmem.c)
|
|
zephyr_library_sources_ifdef(CONFIG_ESP32_SOFT_IPM ipm_esp32.c)
|
|
zephyr_library_sources_ifdef(CONFIG_XLNX_IPI ipm_xlnx_ipi.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IPM_MBOX ipm_mbox.c)
|
|
|
|
zephyr_library_sources_ifdef(CONFIG_USERSPACE ipm_handlers.c)
|