From 33ed33f187df97ea37854c2e3f6f385c12169a19 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Tue, 15 Dec 2015 13:08:48 +0000 Subject: 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 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel Reviewed-by: Leif Lindholm git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19274 6f19259b-4bc3-4df7-8a09-765794883524 --- ArmPkg/Drivers/ArmGic/ArmGicNonSecLib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ArmPkg/Drivers/ArmGic') diff --git a/ArmPkg/Drivers/ArmGic/ArmGicNonSecLib.c b/ArmPkg/Drivers/ArmGic/ArmGicNonSecLib.c index 31572438d9..f90391b716 100644 --- a/ArmPkg/Drivers/ArmGic/ArmGicNonSecLib.c +++ b/ArmPkg/Drivers/ArmGic/ArmGicNonSecLib.c @@ -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); } } } -- cgit v1.2.3