# Copyright (c) 2022 Huawei France Technologies SAS
# SPDX-License-Identifier: Apache-2.0

if SOC_QEMU_VIRT_ARM64

config SOC
	default "qemu_virt_arm64"

config NUM_IRQS
	# must be >= the highest interrupt number used
	# - include the UART interrupts
	# - LPIs (starting at 8192) if GIC_V3_ITS is used
	default 16384 if GIC_V3_ITS
	default 220 if !GIC_V3_ITS

# Dummy value, read at runtime
config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 1

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