GIC: Ensure SGIs and PPIs are Group0 before setup
authorSoby Mathew <soby.mathew@arm.com>
Tue, 7 Jun 2016 16:06:27 +0000 (17:06 +0100)
committerSoby Mathew <soby.mathew@arm.com>
Thu, 7 Jul 2016 10:59:33 +0000 (11:59 +0100)
commit47c6876a49595b8b162332d56670b4451b36afb4
treee6606ca97683e4ca0c14c62d5712fb0cc9cab9f9
parent6f511c4782f079c75928a4dae3a4e3e4f6754831
GIC: Ensure SGIs and PPIs are Group0 before setup

The legacy GIC driver assumes that the SGIs and PPIs are Group0 during
initialization. This is true if the driver is the first one to initialize
the GIC hardware after reset. But in some cases, earlier BL stages could
have already initialized the GIC hardware which means that SGI and PPI
configuration are not the expected reset values causing assertion failure
in `gicd_set_ipriorityr()`. This patch explicitly resets the SGI and PPI
to Group0 prior to their initialization in the driver. The same patch is
not done in the GICv2-only driver because unlike in the legacy driver,
`gicd_set_ipriorityr()` of GICv2 driver doesn't enforce this policy and
the appropriate group is set irrespective of the initial value.

Fixes ARM-software/tf-issues#396

Change-Id: I521d35caa37470ce542c796c2ba99716e4763105
drivers/arm/gic/arm_gic.c