zephyr/drivers/ipm
Andrew Davis 93a6f694db drivers: ipm: Add IPM over MBOX driver
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>
2024-09-26 09:17:48 -05:00
..
CMakeLists.txt drivers: ipm: Add IPM over MBOX driver 2024-09-26 09:17:48 -05:00
ipm_cavs_host.c xtensa: move to use system cache API support for coherency 2024-02-03 13:42:33 -05:00
ipm_esp32.c drivers: esp32: Interrupts flags configuration 2024-08-22 14:25:25 -04:00
ipm_handlers.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
ipm_imx.c everywhere: replace #if IS_ENABLED() as per docs 2024-06-28 07:20:32 -04:00
ipm_ivshmem.c style: drivers: comply with MISRA C:2012 Rule 15.6 2024-08-20 10:33:51 +02:00
ipm_mbox.c drivers: ipm: Add IPM over MBOX driver 2024-09-26 09:17:48 -05:00
ipm_mcux.c drivers: nxp: Add reset code to driver inits 2024-05-21 16:49:42 -04:00
ipm_mhu.c
ipm_mhu.h
ipm_nrfx_ipc.c
ipm_nrfx_ipc.h
ipm_sedi.c drivers: ipm: add init version of sedi ipm driver 2023-09-08 14:43:17 +02:00
ipm_sedi.h include: always use <> for Zephyr includes 2023-09-14 13:49:58 +02:00
ipm_stm32_hsem.c style: drivers: comply with MISRA C:2012 Rule 15.6 2024-08-20 10:33:51 +02:00
ipm_stm32_ipcc.c
ipm_xlnx_ipi.c drivers: ipm: xlnx: remove redundant code 2023-08-16 20:31:17 +02:00
ipm_xlnx_ipi.h drivers: ipm: add zynqmp r5f support 2023-08-15 11:23:04 +00:00
Kconfig drivers: ipm: Add IPM over MBOX driver 2024-09-26 09:17:48 -05:00
Kconfig.imx drivers: nxp: Add reset code to driver inits 2024-05-21 16:49:42 -04:00
Kconfig.intel_adsp ipm: remove ipm_cavs_idc driver 2023-09-14 06:24:18 -04:00
Kconfig.ivshmem drivers: ipm: added IPM over IVSHMEM driver 2023-07-20 10:44:57 +00:00
Kconfig.nrfx
Kconfig.nrfx_ipc_channel
Kconfig.sedi drivers: ipm: add init version of sedi ipm driver 2023-09-08 14:43:17 +02:00
Kconfig.stm32