492e890cd6
This adds a rather primitive driver for use with the Intra-DSP Communication (IDC) on the DSP on certain Intel SoCs. The IDC generates interrupts from one core to another by writing to certain registers. This is also being utilized as the scheduler IPI since it can interrupt other cores. Signed-off-by: Daniel Leung <daniel.leung@intel.com>
114 lines
2.4 KiB
Plaintext
114 lines
2.4 KiB
Plaintext
# 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
|
|
|
|
choice
|
|
prompt "IMX IPM max data size"
|
|
default IPM_IMX_MAX_DATA_SIZE_16
|
|
depends on IPM_IMX
|
|
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
|
|
|
|
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
|
|
|
|
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 SMP && CAVS_ICTL
|
|
help
|
|
Driver for the Intra-DSP Communication (IDC) channel for
|
|
cross SoC communications.
|
|
|
|
module = IPM
|
|
module-str = ipm
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
endif #IPM
|