Intel ADSP CAVS is now a proper series with all CAVS SoCs running under it. This will give us to Intel ADSP series: - CAVS - ACE v1.x Signed-off-by: Anas Nashif <anas.nashif@intel.com>
187 lines
4.4 KiB
Plaintext
187 lines
4.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
|
|
|
|
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_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
|