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

if SOC_SERIES_FVP_AEMV8A

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 100000000

config NUM_IRQS
	default 16384 if GIC_V3_ITS
	default 128 if !GIC_V3_ITS

if SOC_FVP_BASE_REVC_2XAEMV8A

# 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_FVP_BASE_REVC_2XAEMV8A

endif # SOC_SERIES_FVP_AEMV8A
