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.10564.1584023755096867634 for ; Thu, 12 Mar 2020 07:35:55 -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 ADCBD30E; Thu, 12 Mar 2020 07:35:54 -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 BF0773F534; Thu, 12 Mar 2020 07:35:52 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: leif@nuviainc.com, michael.d.kinney@intel.com, vijayenthiran.subramaniam@arm.com, thomas.abraham@arm.com Subject: [edk2-platforms][PATCH 2/8] Platform/ARM/SgiPkg: move the GIC related ACPI helper macros Date: Thu, 12 Mar 2020 20:05:14 +0530 Message-Id: <20200312143520.16918-3-aditya.angadi@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200312143520.16918-1-aditya.angadi@arm.com> References: <20200312143520.16918-1-aditya.angadi@arm.com> Move the ACPI helper macros defines related to GIC structure, distributor, redistributor and ITS to SgiAcpiHeader.h as these are common across ARM SGI/RD platforms. Signed-off-by: Aditya Angadi --- .../ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc | 68 +----------------- .../ARM/SgiPkg/AcpiTables/RdN1Edge/Madt.aslc | 68 +----------------- .../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 48e7a61478..9872549285 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 * @@ -14,72 +14,6 @@ #include #include -// 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 6312743a47..05eb78c561 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 d4538233d7..47368931e3 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 5083dde15d..ecb0d4eccf 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 + // // 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