intel_adsp: move cavs to be a series

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>
This commit is contained in:
Anas Nashif 2022-07-21 06:46:36 -04:00
commit 43371d0414
56 changed files with 136 additions and 199 deletions

View file

@ -5,4 +5,4 @@
config BOARD_INTEL_ADSP_CAVS15 config BOARD_INTEL_ADSP_CAVS15
bool "Intel ADSP CAVS 1.5" bool "Intel ADSP CAVS 1.5"
depends on SOC_SERIES_INTEL_CAVS_V15 depends on SOC_SERIES_INTEL_ADSP_CAVS

View file

@ -2,7 +2,8 @@
CONFIG_MAIN_STACK_SIZE=2048 CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SOC_SERIES_INTEL_CAVS_V15=y CONFIG_SOC_INTEL_CAVS_V15=y
CONFIG_SOC_SERIES_INTEL_ADSP_CAVS=y
CONFIG_BOARD_INTEL_ADSP_CAVS15=y CONFIG_BOARD_INTEL_ADSP_CAVS15=y
CONFIG_GEN_ISR_TABLES=y CONFIG_GEN_ISR_TABLES=y

View file

@ -5,4 +5,4 @@
config BOARD_INTEL_ADSP_CAVS18 config BOARD_INTEL_ADSP_CAVS18
bool "Intel ADSP CAVS 1.8" bool "Intel ADSP CAVS 1.8"
depends on SOC_SERIES_INTEL_CAVS_V18 depends on SOC_SERIES_INTEL_ADSP_CAVS

View file

@ -2,8 +2,9 @@
CONFIG_MAIN_STACK_SIZE=2048 CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SOC_SERIES_INTEL_CAVS_V18=y CONFIG_SOC_INTEL_CAVS_V18=y
CONFIG_BOARD_INTEL_ADSP_CAVS18=y CONFIG_BOARD_INTEL_ADSP_CAVS18=y
CONFIG_SOC_SERIES_INTEL_ADSP_CAVS=y
CONFIG_GEN_ISR_TABLES=y CONFIG_GEN_ISR_TABLES=y
CONFIG_GEN_IRQ_VECTOR_TABLE=n CONFIG_GEN_IRQ_VECTOR_TABLE=n

View file

@ -5,8 +5,8 @@
config BOARD_INTEL_ADSP_CAVS20 config BOARD_INTEL_ADSP_CAVS20
bool "Intel ADSP CAVS 2.0 for Ice Lake" bool "Intel ADSP CAVS 2.0 for Ice Lake"
depends on SOC_SERIES_INTEL_CAVS_V20 depends on SOC_SERIES_INTEL_ADSP_CAVS
config BOARD_INTEL_ADSP_CAVS20_JSL config BOARD_INTEL_ADSP_CAVS20_JSL
bool "Intel ADSP CAVS 2.0 for Jasper Lake" bool "Intel ADSP CAVS 2.0 for Jasper Lake"
depends on SOC_SERIES_INTEL_CAVS_V20 depends on SOC_SERIES_INTEL_ADSP_CAVS

View file

@ -2,8 +2,9 @@
CONFIG_MAIN_STACK_SIZE=2048 CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SOC_SERIES_INTEL_CAVS_V20=y CONFIG_SOC_INTEL_CAVS_V20=y
CONFIG_BOARD_INTEL_ADSP_CAVS20=y CONFIG_BOARD_INTEL_ADSP_CAVS20=y
CONFIG_SOC_SERIES_INTEL_ADSP_CAVS=y
CONFIG_GEN_ISR_TABLES=y CONFIG_GEN_ISR_TABLES=y
CONFIG_GEN_IRQ_VECTOR_TABLE=n CONFIG_GEN_IRQ_VECTOR_TABLE=n

View file

@ -2,8 +2,10 @@
CONFIG_MAIN_STACK_SIZE=2048 CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SOC_SERIES_INTEL_CAVS_V20=y CONFIG_SOC_INTEL_CAVS_V20=y
CONFIG_BOARD_INTEL_ADSP_CAVS20_JSL=y CONFIG_BOARD_INTEL_ADSP_CAVS20_JSL=y
CONFIG_SOC_SERIES_INTEL_ADSP_CAVS=y
CONFIG_GEN_ISR_TABLES=y CONFIG_GEN_ISR_TABLES=y
CONFIG_GEN_IRQ_VECTOR_TABLE=n CONFIG_GEN_IRQ_VECTOR_TABLE=n

View file

@ -5,8 +5,8 @@
config BOARD_INTEL_ADSP_CAVS25 config BOARD_INTEL_ADSP_CAVS25
bool "Intel ADSP CAVS 2.5" bool "Intel ADSP CAVS 2.5"
depends on SOC_SERIES_INTEL_CAVS_V25 depends on SOC_SERIES_INTEL_ADSP_CAVS
config BOARD_INTEL_ADSP_CAVS25_TGPH config BOARD_INTEL_ADSP_CAVS25_TGPH
bool "Intel ADSP CAVS 2.5 for Tiger Lake H PCH" bool "Intel ADSP CAVS 2.5 for Tiger Lake H PCH"
depends on SOC_SERIES_INTEL_CAVS_V25 depends on SOC_SERIES_INTEL_ADSP_CAVS

View file

@ -2,7 +2,8 @@
CONFIG_MAIN_STACK_SIZE=2048 CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SOC_SERIES_INTEL_CAVS_V25=y CONFIG_SOC_SERIES_INTEL_ADSP_CAVS=y
CONFIG_SOC_INTEL_CAVS_V25=y
CONFIG_BOARD_INTEL_ADSP_CAVS25=y CONFIG_BOARD_INTEL_ADSP_CAVS25=y
CONFIG_GEN_ISR_TABLES=y CONFIG_GEN_ISR_TABLES=y

View file

@ -2,8 +2,10 @@
CONFIG_MAIN_STACK_SIZE=2048 CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SOC_SERIES_INTEL_CAVS_V25=y CONFIG_SOC_INTEL_CAVS_V25=y
CONFIG_BOARD_INTEL_ADSP_CAVS25_TGPH=y CONFIG_BOARD_INTEL_ADSP_CAVS25_TGPH=y
CONFIG_SOC_SERIES_INTEL_ADSP_CAVS=y
CONFIG_GEN_ISR_TABLES=y CONFIG_GEN_ISR_TABLES=y
CONFIG_GEN_IRQ_VECTOR_TABLE=n CONFIG_GEN_IRQ_VECTOR_TABLE=n

View file

@ -675,7 +675,7 @@ static int dai_ssp_poll_for_register_delay(uint32_t reg, uint32_t mask,
static inline void dai_ssp_pm_runtime_dis_ssp_clk_gating(struct dai_intel_ssp *dp, uint32_t index) static inline void dai_ssp_pm_runtime_dis_ssp_clk_gating(struct dai_intel_ssp *dp, uint32_t index)
{ {
#if CONFIG_SOC_SERIES_INTEL_CAVS_V15 #if CONFIG_SOC_INTEL_CAVS_V15
uint32_t shim_reg; uint32_t shim_reg;
shim_reg = sys_read32(dai_shim_base(dp) + SHIM_CLKCTL) | shim_reg = sys_read32(dai_shim_base(dp) + SHIM_CLKCTL) |
@ -691,7 +691,7 @@ static inline void dai_ssp_pm_runtime_dis_ssp_clk_gating(struct dai_intel_ssp *d
static inline void dai_ssp_pm_runtime_en_ssp_clk_gating(struct dai_intel_ssp *dp, uint32_t index) static inline void dai_ssp_pm_runtime_en_ssp_clk_gating(struct dai_intel_ssp *dp, uint32_t index)
{ {
#if CONFIG_SOC_SERIES_INTEL_CAVS_V15 #if CONFIG_SOC_INTEL_CAVS_V15
uint32_t shim_reg; uint32_t shim_reg;
shim_reg = sys_read32(dai_shim_base(dp) + SHIM_CLKCTL) & shim_reg = sys_read32(dai_shim_base(dp) + SHIM_CLKCTL) &

View file

@ -40,7 +40,7 @@
#define DAI_INTEL_SSP_PLATFORM_DEFAULT_DELAY 12 #define DAI_INTEL_SSP_PLATFORM_DEFAULT_DELAY 12
#define DAI_INTEL_SSP_DEFAULT_TRY_TIMES 8 #define DAI_INTEL_SSP_DEFAULT_TRY_TIMES 8
#if CONFIG_SOC_SERIES_INTEL_CAVS_V15 #if CONFIG_SOC_INTEL_CAVS_V15
/** \brief Number of 'base' SSP ports available */ /** \brief Number of 'base' SSP ports available */
#define DAI_INTEL_SSP_NUM_BASE 4 #define DAI_INTEL_SSP_NUM_BASE 4
/** \brief Number of 'extended' SSP ports available */ /** \brief Number of 'extended' SSP ports available */

View file

@ -11,13 +11,13 @@
#include "intc_cavs.h" #include "intc_cavs.h"
#if defined(CONFIG_SMP) && (CONFIG_MP_NUM_CPUS > 1) #if defined(CONFIG_SMP) && (CONFIG_MP_NUM_CPUS > 1)
#if defined(CONFIG_SOC_SERIES_INTEL_CAVS_V15) #if defined(CONFIG_SOC_INTEL_CAVS_V15)
#define PER_CPU_OFFSET(x) (0x40 * x) #define PER_CPU_OFFSET(x) (0x40 * x)
#elif defined(CONFIG_SOC_SERIES_INTEL_CAVS_V18) #elif defined(CONFIG_SOC_INTEL_CAVS_V18)
#define PER_CPU_OFFSET(x) (0x40 * x) #define PER_CPU_OFFSET(x) (0x40 * x)
#elif defined(CONFIG_SOC_SERIES_INTEL_CAVS_V20) #elif defined(CONFIG_SOC_INTEL_CAVS_V20)
#define PER_CPU_OFFSET(x) (0x40 * x) #define PER_CPU_OFFSET(x) (0x40 * x)
#elif defined(CONFIG_SOC_SERIES_INTEL_CAVS_V25) #elif defined(CONFIG_SOC_INTEL_CAVS_V25)
#define PER_CPU_OFFSET(x) (0x40 * x) #define PER_CPU_OFFSET(x) (0x40 * x)
#else #else
#error "Must define PER_CPU_OFFSET(x) for SoC" #error "Must define PER_CPU_OFFSET(x) for SoC"

View file

@ -171,7 +171,7 @@ config IPM_CAVS_HOST_OUTBOX_OFFSET
config IPM_CAVS_HOST_REGWORD config IPM_CAVS_HOST_REGWORD
bool "Store first 4 bytes in IPC register" bool "Store first 4 bytes in IPC register"
depends on CAVS_IPC depends on CAVS_IPC
depends on !SOC_SERIES_INTEL_CAVS_V15 depends on !SOC_INTEL_CAVS_V15
help help
Protocol variant. When true, the first four bytes of a Protocol variant. When true, the first four bytes of a
message are passed in the cAVS IDR/TDR register pair instead message are passed in the cAVS IDR/TDR register pair instead

View file

@ -45,7 +45,7 @@ DEVICE_MMIO_TOPLEVEL_STATIC(tlb_regs, DT_DRV_INST(0));
* Number of significant bits in the page index (defines the size of * Number of significant bits in the page index (defines the size of
* the table) * the table)
*/ */
#if defined(CONFIG_SOC_SERIES_INTEL_CAVS_V15) #if defined(CONFIG_SOC_INTEL_CAVS_V15)
# define TLB_PADDR_SIZE 9 # define TLB_PADDR_SIZE 9
#else #else
# define TLB_PADDR_SIZE 11 # define TLB_PADDR_SIZE 11

View file

@ -14,6 +14,9 @@ config SOC_FAMILY
string string
default "intel_adsp" default "intel_adsp"
# Select SoC Part No. and configuration options
source "soc/xtensa/intel_adsp/*/Kconfig.soc"
config CAVS_IPC config CAVS_IPC
bool bool
default y if !SOF default y if !SOF
@ -27,11 +30,6 @@ config CAVS_CLOCK
Driver for the CAVS clocks. Allow type of clock (and Driver for the CAVS clocks. Allow type of clock (and
thus frequency) to be chosen. thus frequency) to be chosen.
config INTEL_ADSP_CAVS
bool
help
Indicates a CAVS SoC
config HP_SRAM_RESERVE config HP_SRAM_RESERVE
int "Bytes to reserve at start of HP-SRAM" int "Bytes to reserve at start of HP-SRAM"
default 65536 default 65536
@ -65,7 +63,6 @@ config ADSP_TRACE_SIMCALL
of an enclosing simulator process. All window contents will of an enclosing simulator process. All window contents will
remain identical. remain identical.
# Select SoC Part No. and configuration options
source "soc/xtensa/intel_adsp/*/Kconfig.soc"
endif # SOC_FAMILY_INTEL_ADSP endif # SOC_FAMILY_INTEL_ADSP

View file

@ -20,7 +20,7 @@ config DMA_INTEL_ADSP_GPDMA
depends on DMA depends on DMA
config XTENSA_CCOUNT_HZ config XTENSA_CCOUNT_HZ
default 400000000 if SOC_SERIES_INTEL_CAVS_V25 default 400000000 if SOC_INTEL_CAVS_V25
default 200000000 default 200000000
endif # INTEL_ADSP_CAVS endif # INTEL_ADSP_CAVS

View file

@ -1,19 +1,18 @@
# Copyright (c) 2020 Intel Corporation # Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_INTEL_CAVS_V15 if SOC_INTEL_CAVS_V15
config SOC_SERIES
string
default "cavs_v15"
config SOC_TOOLCHAIN_NAME config SOC_TOOLCHAIN_NAME
string string
default "intel_apl_adsp" default "intel_apl_adsp"
config SOC config SOC
string default "intel_apl_adsp"
default "intel_apl_adsp" if SOC_INTEL_CAVS_V15
# For backward compatibility, to be removed
config SOC_SERIES_INTEL_CAVS_V15
def_bool y
config HP_SRAM_RESERVE config HP_SRAM_RESERVE
default 32768 default 32768
@ -65,4 +64,4 @@ config LOG_BACKEND_ADSP
endif # LOG endif # LOG
endif # SOC_SERIES_INTEL_CAVS_V15 endif

View file

@ -1,11 +1,8 @@
# Copyright (c) 2020 Intel Corporation # Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_INTEL_CAVS_V18 if SOC_INTEL_CAVS_V18
config SOC_SERIES
string
default "cavs_v18"
config SOC_TOOLCHAIN_NAME config SOC_TOOLCHAIN_NAME
string string
@ -13,7 +10,11 @@ config SOC_TOOLCHAIN_NAME
config SOC config SOC
string string
default "intel_cavs_18" default "intel_cnl_adsp"
# For backward compatibility, to be removed
config SOC_SERIES_INTEL_CAVS_V18
def_bool y
config SMP config SMP
default y default y
@ -57,4 +58,4 @@ config LOG_BACKEND_ADSP
endif # LOG endif # LOG
endif endif # SOC_INTEL_CAVS_V18

View file

@ -1,11 +1,7 @@
# Copyright (c) 2020 Intel Corporation # Copyright (c) 2020,2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_INTEL_CAVS_V20 if SOC_INTEL_CAVS_V20
config SOC_SERIES
string
default "cavs_v20"
config SOC_TOOLCHAIN_NAME config SOC_TOOLCHAIN_NAME
string string
@ -13,7 +9,11 @@ config SOC_TOOLCHAIN_NAME
config SOC config SOC
string string
default "intel_cavs_20" default "intel_icl_adsp"
# For backward compatibility, to be removed
config SOC_SERIES_INTEL_CAVS_V20
def_bool y
config SMP config SMP
default y default y
@ -57,4 +57,4 @@ config LOG_BACKEND_ADSP
endif # LOG endif # LOG
endif # SOC_SERIES_INTEL_CAVS_V20 endif # SOC_INTEL_CAVS_V20

View file

@ -1,19 +1,18 @@
# Copyright (c) 2020 Intel Corporation # Copyright (c) 2020,2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_INTEL_CAVS_V25 if SOC_INTEL_CAVS_V25
config SOC_SERIES
string
default "cavs_v25"
config SOC_TOOLCHAIN_NAME config SOC_TOOLCHAIN_NAME
string string
default "intel_s1000" default "intel_s1000"
config SOC config SOC
string default "intel_tgl_adsp"
default "intel_cavs_25"
# For backward compatibility, to be removed
config SOC_SERIES_INTEL_CAVS_V25
def_bool y
# Hardware has four cores, limited to two pending test fixes # Hardware has four cores, limited to two pending test fixes
config MP_NUM_CPUS config MP_NUM_CPUS
@ -88,4 +87,4 @@ config KERNEL_VM_SIZE
endif endif
endif # SOC_SERIES_INTEL_CAVS_V25 endif # SOC_INTEL_CAVS_V25

View file

@ -0,0 +1,15 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_INTEL_ADSP_CAVS
config SOC_SERIES
string
default "cavs"
config INTEL_ADSP_CAVS
def_bool y
source "soc/xtensa/intel_adsp/cavs/Kconfig.defconfig.cavs*"
endif # SOC_SERIES_INTEL_ADSP_CAVS

View file

@ -1,15 +1,14 @@
# Copyright (c) 2017 Intel Corporation # Copyright (c) 2017,2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_INTEL_CAVS_V15 config SOC_SERIES_INTEL_ADSP_CAVS
bool "Intel CAVS v1.5" bool "Intel CAVS"
select SOC_FAMILY_INTEL_ADSP select SOC_FAMILY_INTEL_ADSP
select XTENSA select XTENSA
select INTEL_ADSP_CAVS
select XTENSA_HAL if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc" select XTENSA_HAL if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
select XTENSA_RESET_VECTOR select XTENSA_RESET_VECTOR
select XTENSA_USE_CORE_CRT1 select XTENSA_USE_CORE_CRT1
select ATOMIC_OPERATIONS_BUILTIN if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc" select ATOMIC_OPERATIONS_BUILTIN if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
select ARCH_HAS_COHERENCE select ARCH_HAS_COHERENCE
help help
Intel CAVS v1.5 Intel ADSP CAVS

View file

@ -0,0 +1,24 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
choice
prompt "Intel CAVS SoC Selection"
depends on SOC_SERIES_INTEL_ADSP_CAVS
config SOC_INTEL_CAVS_V15
bool "Intel Apollo Lake"
config SOC_INTEL_CAVS_V18
bool "Intel Cannon Lake"
select XTENSA_WAITI_BUG
config SOC_INTEL_CAVS_V20
bool "Intel Ice Lake"
select XTENSA_WAITI_BUG
config SOC_INTEL_CAVS_V25
bool "Intel Tiger Lake"
select XTENSA_WAITI_BUG
select SCHED_IPI_SUPPORTED
endchoice

View file

@ -1,11 +0,0 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
choice
prompt "Intel CAVS SoC Selection"
config SOC_INTEL_CAVS_V15
bool "Apollo Lake"
depends on SOC_SERIES_INTEL_CAVS_V15
endchoice

View file

@ -1,16 +0,0 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_INTEL_CAVS_V18
bool "Intel CAVS v1.8"
select SOC_FAMILY_INTEL_ADSP
select XTENSA
select INTEL_ADSP_CAVS
select XTENSA_HAL if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
select XTENSA_RESET_VECTOR
select XTENSA_USE_CORE_CRT1
select XTENSA_WAITI_BUG
select ATOMIC_OPERATIONS_BUILTIN if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
select ARCH_HAS_COHERENCE
help
Intel CAVS v1.8

View file

@ -1,11 +0,0 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
choice
prompt "Intel CAVS SoC Selection"
config SOC_INTEL_CAVS_V18
bool "CAVS v1.8 SoC"
depends on SOC_SERIES_INTEL_CAVS_V18
endchoice

View file

@ -1,4 +0,0 @@
/* Copyright (c) 2021 Intel Corporation
* SPDX-License-Identifier: Apache-2.0
*/
#include <cavs-link.ld>

View file

@ -1,16 +0,0 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_INTEL_CAVS_V20
bool "Intel CAVS v2.0"
select SOC_FAMILY_INTEL_ADSP
select XTENSA
select INTEL_ADSP_CAVS
select XTENSA_HAL if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
select XTENSA_RESET_VECTOR
select XTENSA_USE_CORE_CRT1
select XTENSA_WAITI_BUG
select ATOMIC_OPERATIONS_BUILTIN if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
select ARCH_HAS_COHERENCE
help
Intel CAVS v2.0

View file

@ -1,11 +0,0 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
choice
prompt "Intel CAVS SoC Selection"
config SOC_INTEL_CAVS_V20
bool "CAVS v2.0 SoC"
depends on SOC_SERIES_INTEL_CAVS_V20
endchoice

View file

@ -1,4 +0,0 @@
/* Copyright (c) 2021 Intel Corporation
* SPDX-License-Identifier: Apache-2.0
*/
#include <cavs-link.ld>

View file

@ -1,17 +0,0 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_INTEL_CAVS_V25
bool "Intel CAVS v2.5"
select SOC_FAMILY_INTEL_ADSP
select XTENSA
select INTEL_ADSP_CAVS
select XTENSA_HAL if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
select XTENSA_RESET_VECTOR
select XTENSA_USE_CORE_CRT1
select XTENSA_WAITI_BUG
select ATOMIC_OPERATIONS_BUILTIN if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
select ARCH_HAS_COHERENCE
select SCHED_IPI_SUPPORTED
help
Intel CAVS v2.5

View file

@ -1,11 +0,0 @@
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
choice
prompt "Intel CAVS SoC Selection"
config SOC_INTEL_CAVS_V25
bool "CAVS v2.5 SoC"
depends on SOC_SERIES_INTEL_CAVS_V25
endchoice

View file

@ -1,4 +0,0 @@
/* Copyright (c) 2021 Intel Corporation
* SPDX-License-Identifier: Apache-2.0
*/
#include <cavs-link.ld>

View file

@ -41,7 +41,7 @@
#define HOST_PAGE_SIZE 4096 #define HOST_PAGE_SIZE 4096
#define MANIFEST_SEGMENT_COUNT 3 #define MANIFEST_SEGMENT_COUNT 3
#if defined(CONFIG_SOC_SERIES_INTEL_CAVS_V15) #if defined(CONFIG_SOC_INTEL_CAVS_V15)
#define PLATFORM_DISABLE_L2CACHE_AT_BOOT #define PLATFORM_DISABLE_L2CACHE_AT_BOOT
#endif #endif

View file

@ -12,11 +12,11 @@ static struct cavs_clock_info platform_clocks[CONFIG_MP_NUM_CPUS];
static struct k_spinlock lock; static struct k_spinlock lock;
int cavs_clock_freq_enc[] = CAVS_CLOCK_FREQ_ENC; int cavs_clock_freq_enc[] = CAVS_CLOCK_FREQ_ENC;
#ifndef CONFIG_SOC_SERIES_INTEL_CAVS_V15 #ifndef CONFIG_SOC_INTEL_CAVS_V15
int cavs_clock_freq_mask[] = CAVS_CLOCK_FREQ_MASK; int cavs_clock_freq_mask[] = CAVS_CLOCK_FREQ_MASK;
#endif #endif
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V15 #ifdef CONFIG_SOC_INTEL_CAVS_V15
static void select_cpu_clock_hw(uint32_t freq) static void select_cpu_clock_hw(uint32_t freq)
{ {
uint8_t cpu_id = _current_cpu->id; uint8_t cpu_id = _current_cpu->id;
@ -78,7 +78,7 @@ void cavs_clock_init(void)
uint32_t platform_lowest_freq_idx = CAVS_CLOCK_FREQ_LOWEST; uint32_t platform_lowest_freq_idx = CAVS_CLOCK_FREQ_LOWEST;
int i; int i;
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V25 #ifdef CONFIG_SOC_INTEL_CAVS_V25
CAVS_SHIM.clkctl |= CAVS_CLKCTL_WOVCRO; CAVS_SHIM.clkctl |= CAVS_CLKCTL_WOVCRO;
if (CAVS_SHIM.clkctl & CAVS_CLKCTL_WOVCRO) if (CAVS_SHIM.clkctl & CAVS_CLKCTL_WOVCRO)
CAVS_SHIM.clkctl = CAVS_SHIM.clkctl & ~CAVS_CLKCTL_WOVCRO; CAVS_SHIM.clkctl = CAVS_SHIM.clkctl & ~CAVS_CLKCTL_WOVCRO;

View file

@ -49,7 +49,7 @@ struct cavs_clock_info *cavs_clocks_get(void);
#define CAVS_CLOCK_FREQ_LPRO CAVS_CLOCK_FREQ(lpro) #define CAVS_CLOCK_FREQ_LPRO CAVS_CLOCK_FREQ(lpro)
#define CAVS_CLOCK_FREQ_HPRO CAVS_CLOCK_FREQ(hpro) #define CAVS_CLOCK_FREQ_HPRO CAVS_CLOCK_FREQ(hpro)
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V25 #ifdef CONFIG_SOC_INTEL_CAVS_V25
#define CAVS_CLOCK_FREQ_WOVCRO CAVS_CLOCK_FREQ(wovcro) #define CAVS_CLOCK_FREQ_WOVCRO CAVS_CLOCK_FREQ(wovcro)
#endif #endif

View file

@ -60,7 +60,7 @@
* interrupt would remain active. * interrupt would remain active.
*/ */
struct cavs_ipc { struct cavs_ipc {
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V15 #ifdef CONFIG_SOC_INTEL_CAVS_V15
uint32_t tdr; uint32_t tdr;
uint32_t tdd; uint32_t tdd;
uint32_t idr; uint32_t idr;

View file

@ -16,7 +16,7 @@ static ALWAYS_INLINE void cpu_early_init(void)
{ {
uint32_t reg; uint32_t reg;
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V25 #ifdef CONFIG_SOC_INTEL_CAVS_V25
/* First, on cAVS 2.5 we need to power the cache SRAM banks /* First, on cAVS 2.5 we need to power the cache SRAM banks
* on! Write a bit for each cache way in the bottom half of * on! Write a bit for each cache way in the bottom half of
* the L1CCFG register and poll the top half for them to turn * the L1CCFG register and poll the top half for them to turn

View file

@ -51,13 +51,13 @@ void z_cavs_ipc_isr(const void *devarg)
} }
regs->tdr = CAVS_IPC_BUSY; regs->tdr = CAVS_IPC_BUSY;
if (done && !IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V15)) { if (done && !IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V15)) {
regs->tda = CAVS_IPC_DONE; regs->tda = CAVS_IPC_DONE;
} }
} }
/* Same signal, but on different bits in 1.5 */ /* Same signal, but on different bits in 1.5 */
bool done = IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V15) ? bool done = IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V15) ?
(regs->idd & CAVS_IPC_IDD15_DONE) : (regs->ida & CAVS_IPC_DONE); (regs->idd & CAVS_IPC_IDD15_DONE) : (regs->ida & CAVS_IPC_DONE);
if (done) { if (done) {
@ -65,7 +65,7 @@ void z_cavs_ipc_isr(const void *devarg)
devdata->done_notify(dev, devdata->done_arg); devdata->done_notify(dev, devdata->done_arg);
} }
k_sem_give(&devdata->sem); k_sem_give(&devdata->sem);
if (IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V15)) { if (IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V15)) {
regs->idd = CAVS_IPC_IDD15_DONE; regs->idd = CAVS_IPC_IDD15_DONE;
} else { } else {
regs->ida = CAVS_IPC_DONE; regs->ida = CAVS_IPC_DONE;
@ -86,7 +86,7 @@ int cavs_ipc_init(const struct device *dev)
* the other side!), then enable. * the other side!), then enable.
*/ */
config->regs->tdr = CAVS_IPC_BUSY; config->regs->tdr = CAVS_IPC_BUSY;
if (IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V15)) { if (IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V15)) {
config->regs->idd = CAVS_IPC_IDD15_DONE; config->regs->idd = CAVS_IPC_IDD15_DONE;
} else { } else {
config->regs->ida = CAVS_IPC_DONE; config->regs->ida = CAVS_IPC_DONE;

View file

@ -108,7 +108,7 @@ __imr void z_mp_entry(void)
* isn't using yet. Manual inspection of generated code says * isn't using yet. Manual inspection of generated code says
* we're safe, but really we need a better solution here. * we're safe, but really we need a better solution here.
*/ */
if (!IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V25)) { if (!IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V25)) {
z_xtensa_cache_flush_inv_all(); z_xtensa_cache_flush_inv_all();
} }

View file

@ -40,7 +40,7 @@ __imr void soc_mp_startup(uint32_t cpu)
* disable this; otherwise our own code in soc_idc_init() * disable this; otherwise our own code in soc_idc_init()
* already has it unmasked. * already has it unmasked.
*/ */
if (!IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V25)) { if (!IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V25)) {
CAVS_INTCTRL[cpu].l2.clear = CAVS_L2_IDC; CAVS_INTCTRL[cpu].l2.clear = CAVS_L2_IDC;
} }
} }
@ -49,7 +49,7 @@ void soc_start_core(int cpu_num)
{ {
uint32_t curr_cpu = arch_proc_id(); uint32_t curr_cpu = arch_proc_id();
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V25 #ifdef CONFIG_SOC_INTEL_CAVS_V25
/* On cAVS v2.5, MP startup works differently. The core has /* On cAVS v2.5, MP startup works differently. The core has
* no ROM, and starts running immediately upon receipt of an * no ROM, and starts running immediately upon receipt of an
* IDC interrupt at the start of LPSRAM at 0xbe800000. Note * IDC interrupt at the start of LPSRAM at 0xbe800000. Note
@ -89,7 +89,7 @@ void soc_start_core(int cpu_num)
* turn itself off when it gets to the WAITI instruction in * turn itself off when it gets to the WAITI instruction in
* the idle thread. * the idle thread.
*/ */
if (!IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V15)) { if (!IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V15)) {
CAVS_SHIM.clkctl |= CAVS_CLKCTL_TCPLCG(cpu_num); CAVS_SHIM.clkctl |= CAVS_CLKCTL_TCPLCG(cpu_num);
} }
CAVS_SHIM.pwrctl |= CAVS_PWRCTL_TCPDSPPG(cpu_num); CAVS_SHIM.pwrctl |= CAVS_PWRCTL_TCPDSPPG(cpu_num);
@ -98,7 +98,7 @@ void soc_start_core(int cpu_num)
* complete initialization and be waiting for the IDC we're * complete initialization and be waiting for the IDC we're
* about to send. * about to send.
*/ */
if (!IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V25)) { if (!IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V25)) {
k_busy_wait(CAVS15_ROM_IDC_DELAY); k_busy_wait(CAVS15_ROM_IDC_DELAY);
} }
@ -208,7 +208,7 @@ int soc_adsp_halt_cpu(int id)
* because power is controlled by the host, so synchronization * because power is controlled by the host, so synchronization
* needs to be part of the application layer. * needs to be part of the application layer.
*/ */
while (IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V25) && while (IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V25) &&
(CAVS_SHIM.pwrsts & CAVS_PWRSTS_PDSPPGS(id))) { (CAVS_SHIM.pwrsts & CAVS_PWRSTS_PDSPPGS(id))) {
} }
return 0; return 0;

View file

@ -23,7 +23,7 @@
#include <zephyr/logging/log.h> #include <zephyr/logging/log.h>
LOG_MODULE_REGISTER(soc); LOG_MODULE_REGISTER(soc);
#ifndef CONFIG_SOC_SERIES_INTEL_CAVS_V15 #ifndef CONFIG_SOC_INTEL_CAVS_V15
# define SHIM_GPDMA_BASE_OFFSET 0x6500 # define SHIM_GPDMA_BASE_OFFSET 0x6500
# define SHIM_GPDMA_BASE(x) (SHIM_GPDMA_BASE_OFFSET + (x) * 0x100) # define SHIM_GPDMA_BASE(x) (SHIM_GPDMA_BASE_OFFSET + (x) * 0x100)
# define SHIM_GPDMA_CLKCTL(x) (SHIM_GPDMA_BASE(x) + 0x4) # define SHIM_GPDMA_CLKCTL(x) (SHIM_GPDMA_BASE(x) + 0x4)
@ -42,7 +42,7 @@ extern void soc_mp_init(void);
static __imr void power_init(void) static __imr void power_init(void)
{ {
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V15 #ifdef CONFIG_SOC_INTEL_CAVS_V15
/* HP domain clocked by PLL /* HP domain clocked by PLL
* LP domain clocked by PLL * LP domain clocked by PLL
* DSP Core 0 PLL Clock Select divide by 1 * DSP Core 0 PLL Clock Select divide by 1

View file

@ -22,7 +22,7 @@
#define SRAM_BANK_SIZE (64 * 1024) #define SRAM_BANK_SIZE (64 * 1024)
#endif #endif
#define EBB_SEGMENT_SIZE 32 #define EBB_SEGMENT_SIZE 32
#if !defined(CONFIG_SOC_SERIES_INTEL_CAVS_V15) #if !defined(CONFIG_SOC_INTEL_CAVS_V15)
#define PLATFORM_INIT_HPSRAM #define PLATFORM_INIT_HPSRAM
#endif #endif

View file

@ -154,7 +154,7 @@ void halt_and_restart(int cpu)
/* On older hardware we need to get the host to turn the core /* On older hardware we need to get the host to turn the core
* off. Construct an ADSPCS with only this core disabled * off. Construct an ADSPCS with only this core disabled
*/ */
if (!IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V25)) { if (!IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V25)) {
cavs_ipc_send_message(CAVS_HOST_DEV, IPCCMD_ADSPCS, cavs_ipc_send_message(CAVS_HOST_DEV, IPCCMD_ADSPCS,
(all_cpus & ~BIT(cpu)) << 16); (all_cpus & ~BIT(cpu)) << 16);
} }
@ -166,7 +166,7 @@ void halt_and_restart(int cpu)
k_msleep(100); k_msleep(100);
zassert_false(alive_flag, "cpu didn't halt"); zassert_false(alive_flag, "cpu didn't halt");
if (!IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V25)) { if (!IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V25)) {
/* Likewise need to ask the host to turn it back on, /* Likewise need to ask the host to turn it back on,
* and give it some time to spin up before we hit it. * and give it some time to spin up before we hit it.
* We don't have a return message wired to be notified * We don't have a return message wired to be notified
@ -204,7 +204,7 @@ void test_cpu_halt(void)
arch_irq_unlock(key); arch_irq_unlock(key);
k_sleep(K_TICKS(0)); k_sleep(K_TICKS(0));
if (IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V15)) { if (IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V15)) {
ztest_test_skip(); ztest_test_skip();
} }

View file

@ -71,7 +71,7 @@ void test_host_ipc(void)
AWAIT(msg_flag); AWAIT(msg_flag);
/* Same, but we'll complete it asynchronously (1.8+ only) */ /* Same, but we'll complete it asynchronously (1.8+ only) */
if (!IS_ENABLED(CONFIG_SOC_SERIES_INTEL_CAVS_V15)) { if (!IS_ENABLED(CONFIG_SOC_INTEL_CAVS_V15)) {
printk("Return message request, async...\n"); printk("Return message request, async...\n");
done_flag = false; done_flag = false;
msg_flag = false; msg_flag = false;

View file

@ -28,7 +28,7 @@ static void test_cavs_clock_driver(void)
cavs_clock_set_freq(CAVS_CLOCK_FREQ_HPRO); cavs_clock_set_freq(CAVS_CLOCK_FREQ_HPRO);
check_clocks(clocks, CAVS_CLOCK_FREQ_HPRO); check_clocks(clocks, CAVS_CLOCK_FREQ_HPRO);
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V25 #ifdef CONFIG_SOC_INTEL_CAVS_V25
cavs_clock_set_freq(CAVS_CLOCK_FREQ_WOVCRO); cavs_clock_set_freq(CAVS_CLOCK_FREQ_WOVCRO);
check_clocks(clocks, CAVS_CLOCK_FREQ_WOVCRO); check_clocks(clocks, CAVS_CLOCK_FREQ_WOVCRO);
#endif #endif
@ -49,7 +49,7 @@ static void test_cavs_clock_control(void)
CAVS_CLOCK_FREQ_HPRO); CAVS_CLOCK_FREQ_HPRO);
check_clocks(clocks, CAVS_CLOCK_FREQ_HPRO); check_clocks(clocks, CAVS_CLOCK_FREQ_HPRO);
#ifdef CONFIG_SOC_SERIES_INTEL_CAVS_V25 #ifdef CONFIG_SOC_INTEL_CAVS_V25
clock_control_set_rate(dev, NULL, (clock_control_subsys_rate_t) clock_control_set_rate(dev, NULL, (clock_control_subsys_rate_t)
CAVS_CLOCK_FREQ_WOVCRO); CAVS_CLOCK_FREQ_WOVCRO);
check_clocks(clocks, CAVS_CLOCK_FREQ_WOVCRO); check_clocks(clocks, CAVS_CLOCK_FREQ_WOVCRO);