# Copyright (c) 2019 Carlo Caione <ccaione@baylibre.com>
# SPDX-License-Identifier: Apache-2.0

if SOC_QEMU_CORTEX_A53

config SOC
	default "qemu_cortex_a53"

config NUM_IRQS
	# must be >= the highest interrupt number used
	# - include the UART interrupts
	default 220

config 2ND_LVL_ISR_TBL_OFFSET
	default 1

config MAX_IRQ_PER_AGGREGATOR
	default 219

config NUM_2ND_LEVEL_AGGREGATORS
	default 1

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 62500000

# Workaround for not being able to have commas in macro arguments
DT_CHOSEN_Z_FLASH := zephyr,flash

config FLASH_SIZE
	default $(dt_chosen_reg_size_int,$(DT_CHOSEN_Z_FLASH),0,K)

config FLASH_BASE_ADDRESS
	default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_FLASH))

endif # SOC_QEMU_CORTEX_A53
