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

if SOC_SERIES_FVP_AEMV8R_AARCH32

config SOC_SERIES
	default "fvp_aemv8r_aarch32"

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 100000000

config NUM_IRQS
	default 128

if SOC_FVP_AEMV8R_AARCH32

config SOC
	default "fvp_aemv8r_aarch32"

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

config MAX_DOMAIN_PARTITIONS
	default 24 if USERSPACE

endif # SOC_FVP_AEMV8R_AARCH32

endif # SOC_SERIES_FVP_AEMV8R_AARCH32
