ARM: gic: use a private mapping for CPU target interfaces
authorNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 11 Apr 2012 22:55:48 +0000 (18:55 -0400)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 19 Nov 2012 15:44:34 +0000 (15:44 +0000)
commit384a290283fde63ba8dc671fca5420111cdac19a
treeb6c7eef5bc66988a4979edfd2a6440341747a4e5
parent7f124aaf01439d2fa54283f3c375ce3b9fc776d4
ARM: gic: use a private mapping for CPU target interfaces

The GIC interface numbering does not necessarily follow the logical
CPU numbering, especially for complex topologies such as multi-cluster
systems.

Fortunately we can easily probe the GIC to create a mapping as the
Interrupt Processor Targets Registers for the first 32 interrupts are
read-only, and each field returns a value that always corresponds to
the processor reading the register.

Initially all mappings target all CPUs in case an IPI is required to
boot secondary CPUs.  It is refined as those CPUs discover what their
actual mapping is.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Acked-by: Will Deacon <will.deacon@arm.com>
arch/arm/common/gic.c