15d893410SBoyan Karatotev# 25d893410SBoyan Karatotev# Copyright (c) 2025, Arm Limited and Contributors. All rights reserved. 35d893410SBoyan Karatotev# 45d893410SBoyan Karatotev# SPDX-License-Identifier: BSD-3-Clause 55d893410SBoyan Karatotev# 65d893410SBoyan Karatotev 7*8cef63d6SBoyan KaratotevGIC_REVISIONS_ := 1 2 3 5 85d893410SBoyan Karatotevifeq ($(filter $(USE_GIC_DRIVER),$(GIC_REVISIONS_)),) 95d893410SBoyan Karatotev$(error USE_GIC_DRIVER can only be one of $(GIC_REVISIONS_)) 105d893410SBoyan Karatotevendif 115d893410SBoyan Karatotev 125d893410SBoyan Karatotevifeq (${USE_GIC_DRIVER},2) 135d893410SBoyan Karatotevinclude drivers/arm/gic/v2/gicv2.mk 145d893410SBoyan KaratotevGIC_SOURCES := ${GICV2_SOURCES} \ 155d893410SBoyan Karatotev drivers/arm/gic/v2/gicv2_base.c \ 165d893410SBoyan Karatotev plat/common/plat_gicv2.c 175d893410SBoyan Karatotevelse ifeq (${USE_GIC_DRIVER},3) 185d893410SBoyan Karatotevinclude drivers/arm/gic/v3/gicv3.mk 195d893410SBoyan KaratotevGIC_SOURCES := ${GICV3_SOURCES} \ 205d893410SBoyan Karatotev drivers/arm/gic/v3/gicv3_base.c \ 215d893410SBoyan Karatotev plat/common/plat_gicv3.c 22*8cef63d6SBoyan Karatotevelse ifeq (${USE_GIC_DRIVER},5) 23*8cef63d6SBoyan Karatotevifneq (${ENABLE_FEAT_GCIE},1) 24*8cef63d6SBoyan Karatotev$(error USE_GIC_DRIVER=5 requires ENABLE_FEAT_GCIE=1) 25*8cef63d6SBoyan Karatotevendif 26*8cef63d6SBoyan Karatotev$(warning GICv5 support is experimental!) 27*8cef63d6SBoyan KaratotevGIC_SOURCES := drivers/arm/gicv5/gicv5_iri.c \ 28*8cef63d6SBoyan Karatotev plat/common/plat_gicv5.c 29*8cef63d6SBoyan Karatotevendif 30*8cef63d6SBoyan Karatotev 31*8cef63d6SBoyan Karatotevifneq (${ENABLE_FEAT_GCIE},0) 32*8cef63d6SBoyan KaratotevGIC_SOURCES += drivers/arm/gicv5/gicv5_cpuif.c \ 33*8cef63d6SBoyan Karatotev drivers/arm/gicv5/gicv5_main.c 345d893410SBoyan Karatotevendif 355d893410SBoyan Karatotev 365d893410SBoyan Karatotevifeq ($(ARCH),aarch64) 375d893410SBoyan KaratotevBL31_SOURCES += ${GIC_SOURCES} 385d893410SBoyan Karatotevelse 395d893410SBoyan KaratotevBL32_SOURCES += ${GIC_SOURCES} 405d893410SBoyan Karatotevendif 415d893410SBoyan Karatotev 425d893410SBoyan Karatotev$(eval $(call add_defines,\ 435d893410SBoyan Karatotev USE_GIC_DRIVER \ 445d893410SBoyan Karatotev)) 45