1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | # 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
|