On Fri, Dec 21, 2018 at 04:08:48PM +0100, Ard Biesheuvel wrote:
> Use the correct value for ARM_GICD_IROUTER as per the GIC spec,
> and fix the code that relies on the value being skewed by 32 x 8
> bytes.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ard Biesheuvel <[email protected]>
> ---
> ArmPkg/Include/Library/ArmGicLib.h | 2 +-
> ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/ArmPkg/Include/Library/ArmGicLib.h
> b/ArmPkg/Include/Library/ArmGicLib.h
> index 5775905ca91b..b52b77628ae1 100644
> --- a/ArmPkg/Include/Library/ArmGicLib.h
> +++ b/ArmPkg/Include/Library/ArmGicLib.h
> @@ -43,7 +43,7 @@
> #define ARM_GIC_ICDSGIR 0xF00 // Software Generated Interrupt
> Register
>
> // GICv3 specific registers
> -#define ARM_GICD_IROUTER 0x6100 // Interrupt Routing Registers
> +#define ARM_GICD_IROUTER 0x6000 // Interrupt Routing Registers
Actually, whilst I agree the above would be more consistent, both
revisions C and D of ARM IHI 0069 list the address offset of
ARM_GICD_IROUTER as 0x6100 (and the preceding register space as
"Reserved").
/
Leif
>
> // GICD_CTLR bits
> #define ARM_GIC_ICDDCR_ARE (1 << 4) // Affinity Routing Enable (ARE)
> diff --git a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
> b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
> index 1558db31713a..7d891873ba82 100644
> --- a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
> +++ b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
> @@ -466,7 +466,7 @@ GicV3DxeInitialize (
> }
>
> // Route the SPIs to the primary CPU. SPIs start at the INTID 32
> - for (Index = 0; Index < (mGicNumInterrupts - 32); Index++) {
> + for (Index = 32; Index < mGicNumInterrupts; Index++) {
> MmioWrite32 (
> mGicDistributorBase + ARM_GICD_IROUTER + (Index * 8),
> CpuTarget
> --
> 2.19.2
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel