# Copyright (c) 2020,2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

if SOC_INTEL_CAVS_V25

config SOC_TOOLCHAIN_NAME
	string
	default "intel_s1000"

config SOC
	default "intel_tgl_adsp"

# 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
config MP_NUM_CPUS
	default 2

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 400000000 if XTENSA_TIMER
	default 38400000 if INTEL_ADSP_TIMER

config CAVS_ICTL_0_OFFSET
	default 6
config CAVS_ICTL_1_OFFSET
	default 10
config CAVS_ICTL_2_OFFSET
	default 13
config CAVS_ICTL_3_OFFSET
	default 16

config 2ND_LVL_INTR_00_OFFSET
	default CAVS_ICTL_0_OFFSET
config 2ND_LVL_INTR_01_OFFSET
	default CAVS_ICTL_1_OFFSET
config 2ND_LVL_INTR_02_OFFSET
	default CAVS_ICTL_2_OFFSET
config 2ND_LVL_INTR_03_OFFSET
	default CAVS_ICTL_3_OFFSET

config MAX_IRQ_PER_AGGREGATOR
	default 32
config NUM_2ND_LEVEL_AGGREGATORS
	default 4
config 2ND_LVL_ISR_TBL_OFFSET
	default 21

config CAVS_ISR_TBL_OFFSET
	default 2ND_LVL_ISR_TBL_OFFSET

if KERNEL_VM_SUPPORT

config KERNEL_VM_SIZE
	default 0x800000

endif

config ADSP_NEED_POWER_ON_CACHE
	default y

endif # SOC_INTEL_CAVS_V25
