# Copyright (c) 2022 Synopsys, Inc. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

if SOC_NSIM_EM11D

config CPU_EM6
	default y

config NUM_IRQ_PRIO_LEVELS
	# This processor supports 4 priority levels:
	# 0 for Fast Interrupts (FIRQs) and 1-3 for Regular Interrupts (IRQs).
	default 4

config NUM_IRQS
	# must be > the highest interrupt number used
	default 30

config ARC_MPU_VER
	default 2

config RGF_NUM_BANKS
	default 1

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 5000000

config HARVARD
	default y

config ARC_FIRQ
	default n

config CACHE_MANAGEMENT
	default y

config FP_FPU_DA
	default y

if (ARC_MPU_VER = 2)

config MAIN_STACK_SIZE
	default 2048

config IDLE_STACK_SIZE
	default 2048

config ZTEST_STACK_SIZE
	default 2048
	depends on ZTEST

endif # ARC_MPU_VER

config ARC_HAS_ACCL_REGS
	default y

config ARC_XY_ENABLE
	default y

config ARC_AGU_LARGE
	default y

endif # SOC_NSIM_EM11D
