soc: intel_adsp: Add ACE soc series
ACE15_MTPM is one SOC from the ACE series. Organize it following cavs pattern. Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
This commit is contained in:
parent
c56b45c3e8
commit
45465708f0
26 changed files with 41 additions and 31 deletions
|
@ -5,4 +5,4 @@
|
||||||
|
|
||||||
config BOARD_INTEL_ADSP_ACE15_MTPM
|
config BOARD_INTEL_ADSP_ACE15_MTPM
|
||||||
bool "Intel ADSP ACE 1.5 Meteor PCH M"
|
bool "Intel ADSP ACE 1.5 Meteor PCH M"
|
||||||
depends on SOC_SERIES_INTEL_ACE1X
|
depends on SOC_SERIES_INTEL_ACE
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
CONFIG_MAIN_STACK_SIZE=2048
|
CONFIG_MAIN_STACK_SIZE=2048
|
||||||
|
|
||||||
CONFIG_SOC_SERIES_INTEL_ACE1X=y
|
CONFIG_SOC_SERIES_INTEL_ACE=y
|
||||||
|
CONFIG_SOC_INTEL_ACE15_MTPM=y
|
||||||
CONFIG_BOARD_INTEL_ADSP_ACE15_MTPM=y
|
CONFIG_BOARD_INTEL_ADSP_ACE15_MTPM=y
|
||||||
|
|
||||||
CONFIG_GEN_ISR_TABLES=y
|
CONFIG_GEN_ISR_TABLES=y
|
||||||
|
|
|
@ -21,7 +21,7 @@ config DMA_INTEL_ADSP_GPDMA_NEED_CONTROLLER_OWNERSHIP
|
||||||
|
|
||||||
config DMA_INTEL_ADSP_GPDMA_HAS_LLP
|
config DMA_INTEL_ADSP_GPDMA_HAS_LLP
|
||||||
bool "Intel ADSP GPDMA Linear Link Position Feature"
|
bool "Intel ADSP GPDMA Linear Link Position Feature"
|
||||||
default y if SOC_SERIES_INTEL_ACE1X
|
default y if SOC_SERIES_INTEL_ACE
|
||||||
help
|
help
|
||||||
Intel ADSP GPDMA may optionally have a linear link position
|
Intel ADSP GPDMA may optionally have a linear link position
|
||||||
feature.
|
feature.
|
||||||
|
|
|
@ -188,7 +188,7 @@ static void intel_adsp_gpdma_clock_enable(const struct device *dev)
|
||||||
uint32_t reg = dev_cfg->shim + GPDMA_CTL_OFFSET;
|
uint32_t reg = dev_cfg->shim + GPDMA_CTL_OFFSET;
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_SOC_SERIES_INTEL_ACE1X)) {
|
if (IS_ENABLED(CONFIG_SOC_SERIES_INTEL_ACE)) {
|
||||||
val = sys_read32(reg) | GPDMA_CTL_DGCD;
|
val = sys_read32(reg) | GPDMA_CTL_DGCD;
|
||||||
} else {
|
} else {
|
||||||
val = GPDMA_CTL_FDCGB;
|
val = GPDMA_CTL_FDCGB;
|
||||||
|
@ -197,7 +197,7 @@ static void intel_adsp_gpdma_clock_enable(const struct device *dev)
|
||||||
sys_write32(val, reg);
|
sys_write32(val, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_SERIES_INTEL_ACE1X
|
#ifdef CONFIG_SOC_SERIES_INTEL_ACE
|
||||||
static void intel_adsp_gpdma_select_owner(const struct device *dev)
|
static void intel_adsp_gpdma_select_owner(const struct device *dev)
|
||||||
{
|
{
|
||||||
const struct intel_adsp_gpdma_cfg *const dev_cfg = dev->config;
|
const struct intel_adsp_gpdma_cfg *const dev_cfg = dev->config;
|
||||||
|
@ -228,7 +228,7 @@ int intel_adsp_gpdma_init(const struct device *dev)
|
||||||
const struct intel_adsp_gpdma_cfg *const dev_cfg = dev->config;
|
const struct intel_adsp_gpdma_cfg *const dev_cfg = dev->config;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_SERIES_INTEL_ACE1X
|
#ifdef CONFIG_SOC_SERIES_INTEL_ACE
|
||||||
/* Power up */
|
/* Power up */
|
||||||
ret = intel_adsp_gpdma_enable(dev);
|
ret = intel_adsp_gpdma_enable(dev);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
@ -246,7 +246,7 @@ int intel_adsp_gpdma_init(const struct device *dev)
|
||||||
/* Disable dynamic clock gating appropriately before initializing */
|
/* Disable dynamic clock gating appropriately before initializing */
|
||||||
intel_adsp_gpdma_clock_enable(dev);
|
intel_adsp_gpdma_clock_enable(dev);
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_SERIES_INTEL_ACE1X
|
#ifdef CONFIG_SOC_SERIES_INTEL_ACE
|
||||||
/* DW DMA Owner Select to DSP */
|
/* DW DMA Owner Select to DSP */
|
||||||
intel_adsp_gpdma_select_owner(dev);
|
intel_adsp_gpdma_select_owner(dev);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -144,7 +144,7 @@ static uint32_t get_hpsram_bank_idx(uintptr_t pa)
|
||||||
*/
|
*/
|
||||||
static uint16_t flags_to_tlb_perms(uint32_t flags)
|
static uint16_t flags_to_tlb_perms(uint32_t flags)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_SOC_SERIES_INTEL_ACE1X)
|
#if defined(CONFIG_SOC_SERIES_INTEL_ACE)
|
||||||
uint16_t perms = 0;
|
uint16_t perms = 0;
|
||||||
|
|
||||||
if ((flags & SYS_MM_MEM_PERM_RW) == SYS_MM_MEM_PERM_RW) {
|
if ((flags & SYS_MM_MEM_PERM_RW) == SYS_MM_MEM_PERM_RW) {
|
||||||
|
@ -161,7 +161,7 @@ static uint16_t flags_to_tlb_perms(uint32_t flags)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_SOC_SERIES_INTEL_ACE1X)
|
#if defined(CONFIG_SOC_SERIES_INTEL_ACE)
|
||||||
/**
|
/**
|
||||||
* Convert TLB entry permission bits to the SYS_MM_MEM_PERM_* flags.
|
* Convert TLB entry permission bits to the SYS_MM_MEM_PERM_* flags.
|
||||||
*
|
*
|
||||||
|
@ -186,7 +186,7 @@ static uint16_t tlb_perms_to_flags(uint16_t perms)
|
||||||
|
|
||||||
static int sys_mm_drv_hpsram_pwr(uint32_t bank_idx, bool enable, bool non_blocking)
|
static int sys_mm_drv_hpsram_pwr(uint32_t bank_idx, bool enable, bool non_blocking)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_SOC_SERIES_INTEL_ACE1X)
|
#if defined(CONFIG_SOC_SERIES_INTEL_ACE)
|
||||||
if (bank_idx > mtl_hpsram_get_bank_count()) {
|
if (bank_idx > mtl_hpsram_get_bank_count()) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -467,7 +467,7 @@ int sys_mm_drv_page_flag_get(void *virt, uint32_t *flags)
|
||||||
ARG_UNUSED(virt);
|
ARG_UNUSED(virt);
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
#if defined(CONFIG_SOC_SERIES_INTEL_ACE1X)
|
#if defined(CONFIG_SOC_SERIES_INTEL_ACE)
|
||||||
uint16_t *tlb_entries = UINT_TO_POINTER(TLB_BASE);
|
uint16_t *tlb_entries = UINT_TO_POINTER(TLB_BASE);
|
||||||
uint16_t ent;
|
uint16_t ent;
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include <cavs-idc.h>
|
#include <cavs-idc.h>
|
||||||
#include <adsp_shim.h>
|
#include <adsp_shim.h>
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_SERIES_INTEL_ACE1X
|
#ifdef CONFIG_SOC_SERIES_INTEL_ACE
|
||||||
#include <ace_v1x-regs.h>
|
#include <ace_v1x-regs.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#define COMPARATOR_IDX 0 /* 0 or 1 */
|
#define COMPARATOR_IDX 0 /* 0 or 1 */
|
||||||
|
|
||||||
#ifdef CONFIG_SOC_SERIES_INTEL_ACE1X
|
#ifdef CONFIG_SOC_SERIES_INTEL_ACE
|
||||||
#define TIMER_IRQ MTL_IRQ_TO_ZEPHYR(MTL_INTL_TTS)
|
#define TIMER_IRQ MTL_IRQ_TO_ZEPHYR(MTL_INTL_TTS)
|
||||||
#else
|
#else
|
||||||
#define TIMER_IRQ DSP_WCT_IRQ(COMPARATOR_IDX)
|
#define TIMER_IRQ DSP_WCT_IRQ(COMPARATOR_IDX)
|
||||||
|
@ -189,7 +189,7 @@ static void irq_init(void)
|
||||||
* (for per-core control) above the interrupt controller.
|
* (for per-core control) above the interrupt controller.
|
||||||
* Drivers need to do that part.
|
* Drivers need to do that part.
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_SOC_SERIES_INTEL_ACE1X
|
#ifdef CONFIG_SOC_SERIES_INTEL_ACE
|
||||||
MTL_DINT[cpu].ie[MTL_INTL_TTS] |= BIT(COMPARATOR_IDX + 1);
|
MTL_DINT[cpu].ie[MTL_INTL_TTS] |= BIT(COMPARATOR_IDX + 1);
|
||||||
*WCTCS |= ADSP_SHIM_DSPWCTCS_TTIE(COMPARATOR_IDX);
|
*WCTCS |= ADSP_SHIM_DSPWCTCS_TTIE(COMPARATOR_IDX);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
add_subdirectory(common)
|
add_subdirectory(common)
|
||||||
if(CONFIG_SOC_SERIES_INTEL_ACE1X)
|
if(CONFIG_SOC_SERIES_INTEL_ACE)
|
||||||
add_subdirectory(ace_v1x)
|
add_subdirectory(ace)
|
||||||
endif()
|
endif()
|
||||||
if(CONFIG_INTEL_ADSP_CAVS)
|
if(CONFIG_INTEL_ADSP_CAVS)
|
||||||
add_subdirectory(cavs)
|
add_subdirectory(cavs)
|
||||||
|
|
14
soc/xtensa/intel_adsp/ace/Kconfig.defconfig.ace15_mtpm
Normal file
14
soc/xtensa/intel_adsp/ace/Kconfig.defconfig.ace15_mtpm
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Copyright (c) 2022 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
|
||||||
|
if SOC_INTEL_ACE15_MTPM
|
||||||
|
|
||||||
|
config SOC
|
||||||
|
string
|
||||||
|
default "intel_ace15_mtpm"
|
||||||
|
|
||||||
|
config MP_NUM_CPUS
|
||||||
|
default 3
|
||||||
|
|
||||||
|
endif
|
|
@ -1,23 +1,16 @@
|
||||||
# Copyright (c) 2022 Intel Corporation
|
# Copyright (c) 2022 Intel Corporation
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
if SOC_SERIES_INTEL_ACE1X
|
if SOC_SERIES_INTEL_ACE
|
||||||
|
|
||||||
config SOC_SERIES
|
config SOC_SERIES
|
||||||
string
|
string
|
||||||
default "ace_v1x"
|
default "ace"
|
||||||
|
|
||||||
config SOC_TOOLCHAIN_NAME
|
config SOC_TOOLCHAIN_NAME
|
||||||
string
|
string
|
||||||
default "intel_s1000"
|
default "intel_s1000"
|
||||||
|
|
||||||
config SOC
|
|
||||||
string
|
|
||||||
default "intel_ace15_mtpm"
|
|
||||||
|
|
||||||
config MP_NUM_CPUS
|
|
||||||
default 3
|
|
||||||
|
|
||||||
config SMP
|
config SMP
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
@ -72,4 +65,6 @@ config LOG_BACKEND_ADSP
|
||||||
|
|
||||||
endif # LOG
|
endif # LOG
|
||||||
|
|
||||||
endif # SOC_SERIES_INTEL_ACE1X
|
source "soc/xtensa/intel_adsp/ace/Kconfig.defconfig.ace*"
|
||||||
|
|
||||||
|
endif # SOC_SERIES_INTEL_ACE
|
|
@ -1,8 +1,8 @@
|
||||||
# Copyright (c) 2022 Intel Corporation
|
# Copyright (c) 2022 Intel Corporation
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
config SOC_SERIES_INTEL_ACE1X
|
config SOC_SERIES_INTEL_ACE
|
||||||
bool "Intel ACE 1.x"
|
bool "Intel ACE"
|
||||||
select SOC_FAMILY_INTEL_ADSP
|
select SOC_FAMILY_INTEL_ADSP
|
||||||
select XTENSA
|
select XTENSA
|
||||||
select XTENSA_HAL if (("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc") && ("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc-clang"))
|
select XTENSA_HAL if (("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc") && ("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc-clang"))
|
||||||
|
@ -11,4 +11,4 @@ config SOC_SERIES_INTEL_ACE1X
|
||||||
select SCHED_IPI_SUPPORTED
|
select SCHED_IPI_SUPPORTED
|
||||||
select DW_ICTL_ACE_V1X
|
select DW_ICTL_ACE_V1X
|
||||||
help
|
help
|
||||||
Intel ACE 1.x
|
Intel ADSP ACE
|
|
@ -6,6 +6,6 @@ choice
|
||||||
|
|
||||||
config SOC_INTEL_ACE15_MTPM
|
config SOC_INTEL_ACE15_MTPM
|
||||||
bool "ACE 1.5 Meteor PCH M"
|
bool "ACE 1.5 Meteor PCH M"
|
||||||
depends on SOC_SERIES_INTEL_ACE1X
|
depends on SOC_SERIES_INTEL_ACE
|
||||||
|
|
||||||
endchoice
|
endchoice
|
|
@ -42,7 +42,7 @@
|
||||||
#define MANIFEST_SEGMENT_COUNT 3
|
#define MANIFEST_SEGMENT_COUNT 3
|
||||||
|
|
||||||
/* FIXME: Use Kconfig or some other means */
|
/* FIXME: Use Kconfig or some other means */
|
||||||
#if !defined(CONFIG_SOC_SERIES_INTEL_ACE1X)
|
#if !defined(CONFIG_SOC_SERIES_INTEL_ACE)
|
||||||
#define RESET_MEMORY_HOLE
|
#define RESET_MEMORY_HOLE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue