GICv3: Enable multi socket GIC redistributor frame discovery
authorMadhukar Pappireddy <madhukar.pappireddy@arm.com>
Wed, 15 May 2019 23:25:41 +0000 (18:25 -0500)
committerMadhukar Pappireddy <madhukar.pappireddy@arm.com>
Thu, 26 Sep 2019 03:01:28 +0000 (22:01 -0500)
commitec834925f3cb5cb3934010bbc8077293e610d2ac
tree30bca110fff7c07459cc63c1a710ca3a8708b4aa
parent6a7cbfd56837409b85c26df0206177e59fc95a79
GICv3: Enable multi socket GIC redistributor frame discovery

This patch provides declaration and definition of new GICv3 driver
API: gicv3_rdistif_probe().This function delegates the responsibility
of discovering the corresponding Redistributor base frame to each CPU
itself. It is a modified version of gicv3_rdistif_base_addrs_probe()
and is executed by each CPU in the platform unlike the previous
approach in which only the Primary CPU did the discovery of all the
Redistributor frames for every CPU.

The flush operations as part of gicv3_driver_init() function are
made necessary even for platforms with WARMBOOT_ENABLE_DCACHE_EARLY
because the GICv3 driver data structure contents are accessed by CPU
with D-Cache turned off during power down operations.

Change-Id: I1833e81d3974b32a3e4a3df4766a33d070982268
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
drivers/arm/gic/v3/gicv3_main.c
include/drivers/arm/gicv3.h