# Copyright (c) 2021 Arm Limited (or its affiliates). All rights reserved.
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_FVP_AEMV8R

config SOC_SERIES
	default "fvp_aemv8r"

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 100000000

config NUM_IRQS
	default 128

if SOC_FVP_AEMV8R_AARCH64

config SOC
	default "fvp_aemv8r_aarch64"

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

endif # SOC_SERIES_FVP_AEMV8R
