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

if SOC_ARC_HSDK

config SOC
	default "snps_arc_hsdk"

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

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

config RGF_NUM_BANKS
	default 2

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 500000000

config ARC_FIRQ
	default y

config CODE_DENSITY
	default y

config ARCV2_TIMER_IRQ_PRIORITY
	default 1

config ARC_CONNECT
	default y

config MP_NUM_CPUS
	default 4

# When SMP is enabled, use gfrc as wall clock, so sloppy
# idle should be y
config SYSTEM_CLOCK_SLOPPY_IDLE
	default y
	depends on SMP

config UART_NS16550
	default y
	depends on SERIAL

if UART_CONSOLE

config UART_NS16550_PORT_0
	default y

config UART_NS16550_ACCESS_WORD_ONLY
	default y

endif # UART_CONSOLE

endif # ARC_HSDK
