Add ARM GICv3 driver without support for legacy operation
authorAchin Gupta <achin.gupta@arm.com>
Thu, 3 Sep 2015 13:18:02 +0000 (14:18 +0100)
committerSoby Mathew <soby.mathew@arm.com>
Thu, 26 Nov 2015 12:29:48 +0000 (12:29 +0000)
commitdf37373765f8a3f4e9b6216065f991f0db28e2b5
tree6185ee2f5ac813a246c507ff3b04d5110fa6be5c
parent5b33041c89c89c39e854a3c4dd4ee015992f8c26
Add ARM GICv3 driver without support for legacy operation

This patch adds a driver for ARM GICv3 systems that need to run software
stacks where affinity routing is enabled across all privileged exception
levels for both security states. This driver is a partial implementation
of the ARM Generic Interrupt Controller Architecture Specification, GIC
architecture version 3.0 and version 4.0 (ARM IHI 0069A). The driver does
not cater for legacy support of interrupts and asymmetric configurations.

The existing GIC driver has been preserved unchanged. The common code for
GICv2 and GICv3 systems has been refactored into a new file,
`drivers/arm/gic/common/gic_common.c`. The corresponding header is in
`include/drivers/arm/gic_common.h`.

The driver interface is implemented in `drivers/arm/gic/v3/gicv3_main.c`.
The corresponding header is in `include/drivers/arm/gicv3.h`. Helper
functions are implemented in `drivers/arm/gic/v3/arm_gicv3_helpers.c`
and are accessible through the `drivers/arm/gic/v3/gicv3_private.h`
header.

Change-Id: I8c3c834a1d049d05b776b4dcb76b18ccb927444a
drivers/arm/gic/common/gic_common.c [new file with mode: 0644]
drivers/arm/gic/v3/gicv3_helpers.c [new file with mode: 0644]
drivers/arm/gic/v3/gicv3_main.c [new file with mode: 0644]
drivers/arm/gic/v3/gicv3_private.h [new file with mode: 0644]
include/drivers/arm/gic_common.h [new file with mode: 0644]
include/drivers/arm/gicv3.h [new file with mode: 0644]
include/lib/aarch64/arch.h
include/lib/aarch64/arch_helpers.h