This patch was originally merged in edk2 master at d3a15f435f9716aa2f2ea5e9b35fcda04f267ab4. However, this was later reverted at 82c4426a176c271d24915b403b267a431bdc52f5 as it was merged during the Soft Feature Freeze for edk2-stable201903.
Resubmitting this patch as the edk2 merge window is now open. According to ACPI 6.2 Specification - Errata A, 'One, and only one, GIC distributor structure must be present in the MADT for an ARM based system'. Therefore, the GIC Distributor ID field in the ACPI MADT GICD substructure can be set to zero and there is no need for the Configuration Manager to provide this information. Update the CM_ARM_GICD_INFO structure to remove the GicId field. Similarly update the MADT Generator to set the GicId field in the GICD substructure to zero. Cc: Laszlo Ersek <ler...@redhat.com> Cc: Alexei Fedorov <alexei.fedo...@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.muja...@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedo...@arm.com> --- DynamicTablesPkg/Include/ArmNameSpaceObjects.h | 5 +---- DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c | 4 +++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h index 2adaa788083e4e15d049f5f6b6312f77f3c02488..73139eb3273e89205ef9e6bee67b1b842f7f516b 100644 --- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h @@ -1,6 +1,6 @@ /** @file - Copyright (c) 2017 - 2018, ARM Limited. All rights reserved. + Copyright (c) 2017 - 2019, ARM Limited. All rights reserved. This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -166,9 +166,6 @@ typedef struct CmArmGicCInfo { GIC Distributor information for the Platform. */ typedef struct CmArmGicDInfo { - /// The GIC Distributor ID. - UINT32 GicId; - /// The Physical Base address for the GIC Distributor. UINT64 PhysicalBaseAddress; diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c index 1ee0b9e006bfa00ea5bbf6aa64209dac244c90a0..6b89c3f65d36ff35fcfc81cdffdeae8e4306c976 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c @@ -192,7 +192,9 @@ AddGICD ( // UINT16 Reserved Gicd->Reserved1 = EFI_ACPI_RESERVED_WORD; // UINT32 Identifier - Gicd->GicId = GicDInfo->GicId; + // One, and only one, GIC distributor structure must be present + // in the MADT for an ARM based system + Gicd->GicId = 0; // UINT64 PhysicalBaseAddress Gicd->PhysicalBaseAddress = GicDInfo->PhysicalBaseAddress; // UINT32 VectorBase -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel