Remove the duplication of the ACPI helper macros related to GIC distributor, redistributor and ITS from each platform's MADT ACPI table. Let these macros be defined in the common SgiAcpiHeader.h file.
Signed-off-by: Aditya Angadi <aditya.ang...@arm.com> --- Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc | 68 +------------------ Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Madt.aslc | 68 +------------------ Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc | 57 +--------------- Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h | 70 +++++++++++++++++++- 4 files changed, 72 insertions(+), 191 deletions(-) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc b/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc index 58378b570b12..cb70394bfe91 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc +++ b/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc @@ -1,7 +1,7 @@ /** @file * Multiple APIC Description Table (MADT) * -* Copyright (c) 2018, ARM Limited. All rights reserved. +* Copyright (c) 2018-2020, ARM Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -17,72 +17,6 @@ #define CORE_CNT (FixedPcdGet32 (PcdClusterCount) * \ FixedPcdGet32 (PcdCoreCount)) -// EFI_ACPI_6_2_GIC_STRUCTURE -#define EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, Flags, \ - PmuIrq, GicBase, GicVBase, GicHBase, GsivId, GicRBase, Efficiency) \ - { \ - EFI_ACPI_6_2_GIC, /* Type */ \ - sizeof (EFI_ACPI_6_2_GIC_STRUCTURE), /* Length */ \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ \ - GicId, /* CPUInterfaceNumber */ \ - AcpiCpuUid, /* AcpiProcessorUid */ \ - Flags, /* Flags */ \ - 0, /* ParkingProtocolVersion */ \ - PmuIrq, /* PerformanceInterruptGsiv */ \ - 0, /* ParkedAddress */ \ - GicBase, /* PhysicalBaseAddress */ \ - GicVBase, /* GICV */ \ - GicHBase, /* GICH */ \ - GsivId, /* VGICMaintenanceInterrupt */ \ - GicRBase, /* GICRBaseAddress */ \ - Mpidr, /* MPIDR */ \ - Efficiency, /* ProcessorPowerEfficiencyClass */ \ - { \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ - EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ - } \ - } - -// EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE -#define EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(GicDistHwId, GicDistBase, \ - GicDistVector, GicVersion) \ - { \ - EFI_ACPI_6_2_GICD, /* Type */ \ - sizeof (EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE), \ - EFI_ACPI_RESERVED_WORD, /* Reserved1 */ \ - GicDistHwId, /* GicId */ \ - GicDistBase, /* PhysicalBaseAddress */ \ - GicDistVector, /* SystemVectorBase */ \ - GicVersion, /* GicVersion */ \ - { \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ - EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ - } \ - } - -// EFI_ACPI_6_2_GICR_STRUCTURE -#define EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(RedisRegionAddr, RedisDiscLength) \ - { \ - EFI_ACPI_6_2_GICR, /* Type */ \ - sizeof (EFI_ACPI_6_2_GICR_STRUCTURE), /* Length */ \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ \ - RedisRegionAddr, /* DiscoveryRangeBaseAddress */ \ - RedisDiscLength /* DiscoveryRangeLength */ \ - } - -// EFI_ACPI_6_2_GIC_ITS_STRUCTURE -#define EFI_ACPI_6_2_GIC_ITS_INIT(GicItsId, GicItsBase) \ - { \ - EFI_ACPI_6_2_GIC_ITS, /* Type */ \ - sizeof (EFI_ACPI_6_2_GIC_ITS_STRUCTURE), \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ \ - GicItsId, /* GicItsId */ \ - GicItsBase, /* PhysicalBaseAddress */ \ - EFI_ACPI_RESERVED_DWORD /* DiscoveryRangeLength */ \ - } - // Multiple APIC Description Table #pragma pack (1) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Madt.aslc b/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Madt.aslc index 6312743a479c..05eb78c5616a 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Madt.aslc +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Madt.aslc @@ -1,7 +1,7 @@ /** @file * Multiple APIC Description Table (MADT) * -* Copyright (c) 2018, ARM Limited. All rights reserved. +* Copyright (c) 2018-2020, ARM Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -17,72 +17,6 @@ #define CORE_CNT (FixedPcdGet32 (PcdClusterCount) * \ FixedPcdGet32 (PcdCoreCount)) -// EFI_ACPI_6_2_GIC_STRUCTURE -#define EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, Flags, \ - PmuIrq, GicBase, GicVBase, GicHBase, GsivId, GicRBase, Efficiency) \ - { \ - EFI_ACPI_6_2_GIC, /* Type */ \ - sizeof (EFI_ACPI_6_2_GIC_STRUCTURE), /* Length */ \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ \ - GicId, /* CPUInterfaceNumber */ \ - AcpiCpuUid, /* AcpiProcessorUid */ \ - Flags, /* Flags */ \ - 0, /* ParkingProtocolVersion */ \ - PmuIrq, /* PerformanceInterruptGsiv */ \ - 0, /* ParkedAddress */ \ - GicBase, /* PhysicalBaseAddress */ \ - GicVBase, /* GICV */ \ - GicHBase, /* GICH */ \ - GsivId, /* VGICMaintenanceInterrupt */ \ - GicRBase, /* GICRBaseAddress */ \ - Mpidr, /* MPIDR */ \ - Efficiency, /* ProcessorPowerEfficiencyClass */ \ - { \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ - EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ - } \ - } - -// EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE -#define EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(GicDistHwId, GicDistBase, \ - GicDistVector, GicVersion) \ - { \ - EFI_ACPI_6_2_GICD, /* Type */ \ - sizeof (EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE), \ - EFI_ACPI_RESERVED_WORD, /* Reserved1 */ \ - GicDistHwId, /* GicId */ \ - GicDistBase, /* PhysicalBaseAddress */ \ - GicDistVector, /* SystemVectorBase */ \ - GicVersion, /* GicVersion */ \ - { \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ - EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ - } \ - } - -// EFI_ACPI_6_2_GICR_STRUCTURE -#define EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(RedisRegionAddr, RedisDiscLength) \ - { \ - EFI_ACPI_6_2_GICR, /* Type */ \ - sizeof (EFI_ACPI_6_2_GICR_STRUCTURE), /* Length */ \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ \ - RedisRegionAddr, /* DiscoveryRangeBaseAddress */ \ - RedisDiscLength /* DiscoveryRangeLength */ \ - } - -// EFI_ACPI_6_2_GIC_ITS_STRUCTURE -#define EFI_ACPI_6_2_GIC_ITS_INIT(GicItsId, GicItsBase) \ - { \ - EFI_ACPI_6_2_GIC_ITS, /* Type */ \ - sizeof (EFI_ACPI_6_2_GIC_ITS_STRUCTURE), \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ \ - GicItsId, /* GicItsId */ \ - GicItsBase, /* PhysicalBaseAddress */ \ - EFI_ACPI_RESERVED_DWORD /* DiscoveryRangeLength */ \ - } - // Multiple APIC Description Table #pragma pack (1) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc index d4538233d760..47368931e367 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc @@ -1,7 +1,7 @@ /** @file * Multiple APIC Description Table (MADT) * -* Copyright (c) 2019, ARM Limited. All rights reserved. +* Copyright (c) 2019-2020, ARM Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -19,61 +19,6 @@ #define CHIP_CNT 2 -// EFI_ACPI_6_2_GIC_STRUCTURE -#define EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, Flags, \ - PmuIrq, GicBase, GicVBase, GicHBase, GsivId, GicRBase, Efficiency) \ - { \ - EFI_ACPI_6_2_GIC, /* Type */ \ - sizeof (EFI_ACPI_6_2_GIC_STRUCTURE), /* Length */ \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ \ - GicId, /* CPUInterfaceNumber */ \ - AcpiCpuUid, /* AcpiProcessorUid */ \ - Flags, /* Flags */ \ - 0, /* ParkingProtocolVersion */ \ - PmuIrq, /* PerformanceInterruptGsiv */ \ - 0, /* ParkedAddress */ \ - GicBase, /* PhysicalBaseAddress */ \ - GicVBase, /* GICV */ \ - GicHBase, /* GICH */ \ - GsivId, /* VGICMaintenanceInterrupt */ \ - GicRBase, /* GICRBaseAddress */ \ - Mpidr, /* MPIDR */ \ - Efficiency, /* ProcessorPowerEfficiencyClass */ \ - { \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ - EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ - } \ - } - -// EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE -#define EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(GicDistHwId, GicDistBase, \ - GicDistVector, GicVersion) \ - { \ - EFI_ACPI_6_2_GICD, /* Type */ \ - sizeof (EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE), \ - EFI_ACPI_RESERVED_WORD, /* Reserved1 */ \ - GicDistHwId, /* GicId */ \ - GicDistBase, /* PhysicalBaseAddress */ \ - GicDistVector, /* SystemVectorBase */ \ - GicVersion, /* GicVersion */ \ - { \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ - EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ - EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ - } \ - } - -// EFI_ACPI_6_2_GICR_STRUCTURE -#define EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(RedisRegionAddr, RedisDiscLength) \ - { \ - EFI_ACPI_6_2_GICR, /* Type */ \ - sizeof (EFI_ACPI_6_2_GICR_STRUCTURE), /* Length */ \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ \ - RedisRegionAddr, /* DiscoveryRangeBaseAddress */ \ - RedisDiscLength /* DiscoveryRangeLength */ \ - } - // Multiple APIC Description Table #pragma pack (1) diff --git a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h b/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h index 5083dde15dd5..ecb0d4eccf24 100644 --- a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h +++ b/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h @@ -1,6 +1,6 @@ /** @file * -* Copyright (c) 2018, ARM Limited. All rights reserved. +* Copyright (c) 2018-2020, ARM Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -9,6 +9,8 @@ #ifndef __SGI_ACPI_HEADER__ #define __SGI_ACPI_HEADER__ +#include <IndustryStandard/Acpi.h> + // // ACPI table information used to initialize tables. // @@ -32,4 +34,70 @@ EFI_ACPI_ARM_CREATOR_REVISION /* UINT32 CreatorRevision */ \ } +// EFI_ACPI_6_2_GIC_STRUCTURE +#define EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, Flags, \ + PmuIrq, GicBase, GicVBase, GicHBase, GsivId, GicRBase, Efficiency) \ + { \ + EFI_ACPI_6_2_GIC, /* Type */ \ + sizeof (EFI_ACPI_6_2_GIC_STRUCTURE), /* Length */ \ + EFI_ACPI_RESERVED_WORD, /* Reserved */ \ + GicId, /* CPUInterfaceNumber */ \ + AcpiCpuUid, /* AcpiProcessorUid */ \ + Flags, /* Flags */ \ + 0, /* ParkingProtocolVersion */ \ + PmuIrq, /* PerformanceInterruptGsiv */ \ + 0, /* ParkedAddress */ \ + GicBase, /* PhysicalBaseAddress */ \ + GicVBase, /* GICV */ \ + GicHBase, /* GICH */ \ + GsivId, /* VGICMaintenanceInterrupt */ \ + GicRBase, /* GICRBaseAddress */ \ + Mpidr, /* MPIDR */ \ + Efficiency, /* ProcessorPowerEfficiencyClass */ \ + { \ + EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ + EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ + EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ + } \ + } + +// EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE +#define EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(GicDistHwId, GicDistBase, \ + GicDistVector, GicVersion) \ + { \ + EFI_ACPI_6_2_GICD, /* Type */ \ + sizeof (EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE), \ + EFI_ACPI_RESERVED_WORD, /* Reserved1 */ \ + GicDistHwId, /* GicId */ \ + GicDistBase, /* PhysicalBaseAddress */ \ + GicDistVector, /* SystemVectorBase */ \ + GicVersion, /* GicVersion */ \ + { \ + EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ + EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ + EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ + } \ + } + +// EFI_ACPI_6_2_GICR_STRUCTURE +#define EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(RedisRegionAddr, RedisDiscLength) \ + { \ + EFI_ACPI_6_2_GICR, /* Type */ \ + sizeof (EFI_ACPI_6_2_GICR_STRUCTURE), /* Length */ \ + EFI_ACPI_RESERVED_WORD, /* Reserved */ \ + RedisRegionAddr, /* DiscoveryRangeBaseAddress */ \ + RedisDiscLength /* DiscoveryRangeLength */ \ + } + +// EFI_ACPI_6_2_GIC_ITS_STRUCTURE +#define EFI_ACPI_6_2_GIC_ITS_INIT(GicItsId, GicItsBase) \ + { \ + EFI_ACPI_6_2_GIC_ITS, /* Type */ \ + sizeof (EFI_ACPI_6_2_GIC_ITS_STRUCTURE), \ + EFI_ACPI_RESERVED_WORD, /* Reserved */ \ + GicItsId, /* GicItsId */ \ + GicItsBase, /* PhysicalBaseAddress */ \ + EFI_ACPI_RESERVED_DWORD /* DiscoveryRangeLength */ \ + } + #endif /* __SGI_ACPI_HEADER__ */ -- 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58616): https://edk2.groups.io/g/devel/message/58616 Mute This Topic: https://groups.io/mt/73997068/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-