Subject: [PATCH V3 03/10] irqchip,GICv3,ACPI: Add redistributor support via GICC structures.

From: [email-masked] (Marc Zyngier)
Date: Wed, 10 Feb 2016 10:16:31 +0000

On 19/01/16 13:11, Tomasz Nowicki wrote:
> Following ACPI spec:
> On systems supporting GICv3 and above, GICR Base Address in MADT GICC
> structure holds the 64-bit physical address of the associated Redistributor.
> If all of the GIC Redistributors are in the always-on power domain,
> GICR structures should be used to describe the Redistributors instead,
> and this field must be set to 0.
> 
> It means that we have two ways to initialize registirbutors map.
> 1. via GICD structure which can accommodate many redistributors as a region
> 2. via GICC which is able to describe single redistributor
> 
> This patch is going to add support for second option.
> Considering redistributors, GICD and GICC subtables have be mutually
> exclusive. While discovering and mapping redistributor, we need to know
> its size in advance. For the GICC case, redistributor can be in
> a power-domain that is off, thus we cannot relay on GICR TYPER register.
> Therefore, we get GIC version from distributor register and map 2xSZ_64K
> for GICv3 and 4xSZ_64K for GICv4.
> 
> Signed-off-by: Hanjun Guo <[email-masked]>
> Signed-off-by: Tomasz Nowicki <[email-masked]>

This is incredibly convoluted, but I'm not sure there is a better way
given the current ACPI API. Still, it hurts.

Acked-by: Marc Zyngier <[email-masked]>

	M.
-- 
Jazz is not dead. It just smells funny...