zephyr/drivers/ipm/Kconfig.intel_adsp

61 lines
1.8 KiB
Plaintext
Raw Normal View History

# SPDX-License-Identifier: Apache-2.0
# Copyright (c) 2022, Intel Corporation
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_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"
soc: intel_adsp: Refactored IPC/IDC Changes to code: 1. Renamed CAVS_IPC API from common/include/cavs_ipc.h to common/include/intel_adsp_ipc.h. Renamed all API functions and structs - added "intel_adsp_" prefix. 2. Moved definitions from intel-ipc-regs.h and ace-ipc-regs.g to SOC specific headers include/<soc_name>/adsp_ipc_regs.h. 3. Added new common intel_adsp_ipc_devtree.h header with new macros to retrieve IPC and IDC nodes and register addresses. Put those new macros in code replacing hardcoded values outside of devicetree. 4. Changed documentation of IDC and renamed IDC register struct to have common name between all intel adsp socs. 5. Removed excessive docs description on cAVS IPC protocol. Changes to Devicetree: 1. Renamed in all CAVS boards .dtsi files content in IPC nodes: - "cavs_host_ipc" node labels to "adsp_ipc" labels. - compatible "intel,cavs-host-ipc" renamed to "intel,adsp-host-ipc". 2. Added (previously missing) yaml file for "intel,adsp-host-ipc" compatible. 3. Renamed in all CAVS boards .dtsi files content in IDC nodes: - "idc" node labels to "adsp_idc" labels. - compatible "intel,cavs-idc" renamed to "intel-adsp-idc" 4. Renamed intel,cavs_idc.yaml file to intel,adsp_idc.yaml so it is suitable for both CAVS and ACE SoC family. Moved it from ipm bindings to ipc bindings where it belongs. Changes to Kconfig: 1. Renamed existing Kconfig option CONFIG_CAVS_IPC to INTEL_ADSP_IPC. 2. For renamed INTEL_ADSP_IPC addded default value based on status of the "adsp-ipc" and "adsp-ipc" node. Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-07-13 05:15:06 +08:00
select INTEL_ADSP_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"
soc: intel_adsp: Refactored IPC/IDC Changes to code: 1. Renamed CAVS_IPC API from common/include/cavs_ipc.h to common/include/intel_adsp_ipc.h. Renamed all API functions and structs - added "intel_adsp_" prefix. 2. Moved definitions from intel-ipc-regs.h and ace-ipc-regs.g to SOC specific headers include/<soc_name>/adsp_ipc_regs.h. 3. Added new common intel_adsp_ipc_devtree.h header with new macros to retrieve IPC and IDC nodes and register addresses. Put those new macros in code replacing hardcoded values outside of devicetree. 4. Changed documentation of IDC and renamed IDC register struct to have common name between all intel adsp socs. 5. Removed excessive docs description on cAVS IPC protocol. Changes to Devicetree: 1. Renamed in all CAVS boards .dtsi files content in IPC nodes: - "cavs_host_ipc" node labels to "adsp_ipc" labels. - compatible "intel,cavs-host-ipc" renamed to "intel,adsp-host-ipc". 2. Added (previously missing) yaml file for "intel,adsp-host-ipc" compatible. 3. Renamed in all CAVS boards .dtsi files content in IDC nodes: - "idc" node labels to "adsp_idc" labels. - compatible "intel,cavs-idc" renamed to "intel-adsp-idc" 4. Renamed intel,cavs_idc.yaml file to intel,adsp_idc.yaml so it is suitable for both CAVS and ACE SoC family. Moved it from ipm bindings to ipc bindings where it belongs. Changes to Kconfig: 1. Renamed existing Kconfig option CONFIG_CAVS_IPC to INTEL_ADSP_IPC. 2. For renamed INTEL_ADSP_IPC addded default value based on status of the "adsp-ipc" and "adsp-ipc" node. Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-07-13 05:15:06 +08:00
depends on INTEL_ADSP_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"
soc: intel_adsp: Refactored IPC/IDC Changes to code: 1. Renamed CAVS_IPC API from common/include/cavs_ipc.h to common/include/intel_adsp_ipc.h. Renamed all API functions and structs - added "intel_adsp_" prefix. 2. Moved definitions from intel-ipc-regs.h and ace-ipc-regs.g to SOC specific headers include/<soc_name>/adsp_ipc_regs.h. 3. Added new common intel_adsp_ipc_devtree.h header with new macros to retrieve IPC and IDC nodes and register addresses. Put those new macros in code replacing hardcoded values outside of devicetree. 4. Changed documentation of IDC and renamed IDC register struct to have common name between all intel adsp socs. 5. Removed excessive docs description on cAVS IPC protocol. Changes to Devicetree: 1. Renamed in all CAVS boards .dtsi files content in IPC nodes: - "cavs_host_ipc" node labels to "adsp_ipc" labels. - compatible "intel,cavs-host-ipc" renamed to "intel,adsp-host-ipc". 2. Added (previously missing) yaml file for "intel,adsp-host-ipc" compatible. 3. Renamed in all CAVS boards .dtsi files content in IDC nodes: - "idc" node labels to "adsp_idc" labels. - compatible "intel,cavs-idc" renamed to "intel-adsp-idc" 4. Renamed intel,cavs_idc.yaml file to intel,adsp_idc.yaml so it is suitable for both CAVS and ACE SoC family. Moved it from ipm bindings to ipc bindings where it belongs. Changes to Kconfig: 1. Renamed existing Kconfig option CONFIG_CAVS_IPC to INTEL_ADSP_IPC. 2. For renamed INTEL_ADSP_IPC addded default value based on status of the "adsp-ipc" and "adsp-ipc" node. Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-07-13 05:15:06 +08:00
depends on INTEL_ADSP_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"
soc: intel_adsp: Refactored IPC/IDC Changes to code: 1. Renamed CAVS_IPC API from common/include/cavs_ipc.h to common/include/intel_adsp_ipc.h. Renamed all API functions and structs - added "intel_adsp_" prefix. 2. Moved definitions from intel-ipc-regs.h and ace-ipc-regs.g to SOC specific headers include/<soc_name>/adsp_ipc_regs.h. 3. Added new common intel_adsp_ipc_devtree.h header with new macros to retrieve IPC and IDC nodes and register addresses. Put those new macros in code replacing hardcoded values outside of devicetree. 4. Changed documentation of IDC and renamed IDC register struct to have common name between all intel adsp socs. 5. Removed excessive docs description on cAVS IPC protocol. Changes to Devicetree: 1. Renamed in all CAVS boards .dtsi files content in IPC nodes: - "cavs_host_ipc" node labels to "adsp_ipc" labels. - compatible "intel,cavs-host-ipc" renamed to "intel,adsp-host-ipc". 2. Added (previously missing) yaml file for "intel,adsp-host-ipc" compatible. 3. Renamed in all CAVS boards .dtsi files content in IDC nodes: - "idc" node labels to "adsp_idc" labels. - compatible "intel,cavs-idc" renamed to "intel-adsp-idc" 4. Renamed intel,cavs_idc.yaml file to intel,adsp_idc.yaml so it is suitable for both CAVS and ACE SoC family. Moved it from ipm bindings to ipc bindings where it belongs. Changes to Kconfig: 1. Renamed existing Kconfig option CONFIG_CAVS_IPC to INTEL_ADSP_IPC. 2. For renamed INTEL_ADSP_IPC addded default value based on status of the "adsp-ipc" and "adsp-ipc" node. Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-07-13 05:15:06 +08:00
depends on INTEL_ADSP_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