ArmPkg/ArmGic: fix bug in GICv3 distributor configuration

In the function ArmGicEnableDistributor (), the Affinity Routing Enable
(ARE) bit, which essentially defines whether the GIC runs in v2 or v3
mode, is inadvertently cleared when enabling the GIC distributor if it
is running in v3 mode. So fix that.

Reported-by: Supreeth Venkatesh <Supreeth.Venkatesh@arm.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19274 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ard Biesheuvel 2015-12-15 13:08:48 +00:00 committed by abiesheuvel
parent d9ac8a4576
commit 33ed33f187
1 changed files with 2 additions and 2 deletions

View File

@ -33,9 +33,9 @@ ArmGicEnableDistributor (
MmioWrite32 (GicDistributorBase + ARM_GIC_ICDDCR, 0x1);
} else {
if (MmioRead32 (GicDistributorBase + ARM_GIC_ICDDCR) & ARM_GIC_ICDDCR_ARE) {
MmioWrite32 (GicDistributorBase + ARM_GIC_ICDDCR, 0x2);
MmioOr32 (GicDistributorBase + ARM_GIC_ICDDCR, 0x2);
} else {
MmioWrite32 (GicDistributorBase + ARM_GIC_ICDDCR, 0x1);
MmioOr32 (GicDistributorBase + ARM_GIC_ICDDCR, 0x1);
}
}
}