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

config SOC_SERIES_INTEL_ADSP_CAVS
	select XTENSA
	select XTENSA_HAL if ("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc" && ("$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xt-clang"))
	select XTENSA_RESET_VECTOR
	select XTENSA_USE_CORE_CRT1
	select ATOMIC_OPERATIONS_BUILTIN if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "xcc"
	select ATOMIC_OPERATIONS_ARCH if "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "xcc"
	select ARCH_HAS_COHERENCE
	select HAS_PM

config SOC_INTEL_CAVS_V25
	select XTENSA_WAITI_BUG
	select SCHED_IPI_SUPPORTED
