From 24534823b2819661a863f4d6ee18d50b5cd8be33 Mon Sep 17 00:00:00 2001 From: Sami Mujawar Date: Tue, 19 Feb 2019 11:22:17 +0000 Subject: [PATCH] DynamicTablesPkg: Remove GIC Distributor Id field 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 Cc: Alexei Fedorov Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar Reviewed-by: Alexei Fedorov --- DynamicTablesPkg/Include/ArmNameSpaceObjects.h | 5 +---- .../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 2adaa78808..73139eb327 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 1ee0b9e006..6b89c3f65d 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 -- 2.39.2