From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.7114.1588683823498075242 for ; Tue, 05 May 2020 06:03:43 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: aditya.angadi@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3C2C130E; Tue, 5 May 2020 06:03:43 -0700 (PDT) Received: from usa.arm.com (a073440-lin.blr.arm.com [10.162.16.34]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 13BC63F68F; Tue, 5 May 2020 06:03:40 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, vijayenthiran.subramaniam@arm.com, leif@nuviainc.com, Aditya Angadi Subject: [PATCH v5][edk2-platforms 07/17] Platform/ARM/SgiPkg: Refactor GIC related ACPI helper macros Date: Tue, 5 May 2020 18:32:04 +0530 Message-Id: <20200505130214.25592-8-aditya.angadi@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200505130214.25592-1-aditya.angadi@arm.com> References: <20200505130214.25592-1-aditya.angadi@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 --- 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)) =20 -// 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, /* ProcessorPowerEfficiencyCla= ss */ \ - { = \ - 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, RedisDiscLe= ngth) \ - { = \ - 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) =20 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)) =20 -// 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, /* ProcessorPowerEfficiencyCla= ss */ \ - { = \ - 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, RedisDiscLe= ngth) \ - { = \ - 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) =20 diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc b/Platfo= rm/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 @@ =20 #define CHIP_CNT 2 =20 -// 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, /* ProcessorPowerEfficiencyCla= ss */ \ - { = \ - 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, RedisDiscLe= ngth) \ - { = \ - 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) =20 diff --git a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h b/Platform/ARM/S= giPkg/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__ =20 +#include + // // ACPI table information used to initialize tables. // @@ -32,4 +34,70 @@ EFI_ACPI_ARM_CREATOR_REVISION /* UINT32 CreatorRevision */ \ } =20 +// 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, /* ProcessorPowerEfficiencyCla= ss */ \ + { = \ + 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, RedisDiscLe= ngth) \ + { = \ + 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__ */ --=20 2.17.1