From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57335+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57335+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868768; cv=none; d=zohomail.com; s=zohoarc; b=SPLAt33VMdV2yJtC3u+DGLjtes4ohtICfeRBbHXoqFHOADau9dtbAgE1tf3r9cPEPEM0+GZC9CTu3yCiZkkv/VPqW4eghdnH+J11Z+ZBTVMfj7VvgAZuiSczrs8CZU92o3FXbIEDjTq0BcCurbZr+uPtg7OLFpHtAA6ii+OBHf8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868768; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=blHSS4ob5P9B6evI4R64BZ+6APDhQUPrtR26Q2lC1Ns=; b=mzb4f4F18Rm2dGSUfPL/f8z/heDeca4Nz8GEoO3xekaLEazsSo7TVrL87TOfF8mfpV4/v8mrZap0OtQ9teJ4QJoFrCwzkoE9wTdMr3xajLstNf1zP9LN53rfQZOAHBHFQSru6gXV3S7Oarxjc+vmk1JS2qDjCkbM78mu7Yrsacc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57335+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586868768805895.2114276877234; Tue, 14 Apr 2020 05:52:48 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id TrtOYY1788612xWCAJYIDF6z; Tue, 14 Apr 2020 05:52:48 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.10338.1586868767731957598 for ; Tue, 14 Apr 2020 05:52:47 -0700 X-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 6B8CE30E; Tue, 14 Apr 2020 05:52:47 -0700 (PDT) X-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 411F93F73D; Tue, 14 Apr 2020 05:52:45 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Vijayenthiran Subramaniam , Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 1/9] Platform/ARM/Sgi: Create individual Platform Description File Date: Tue, 14 Apr 2020 18:22:00 +0530 Message-Id: <20200414125208.2878-2-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: IwGSGdZmrnkfnzJGA4hI7qqfx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868768; bh=YjupazB99GWtMJvZyBNR7KRqbM243g3hSSPDSfh5Vcc=; h=Cc:Date:From:Reply-To:Subject:To; b=RM36rCzuYEz+Eqw+ADSjrUcKefzVoMN6A+BT85GBN22jd5KU5MzUXYoAH47D5GpPkES Lr9OuxN3INMsNHiG5m89h3T2aUKhHmO7CN//v5nz8n8z8x6PMBu2U8RueTYO5heSuQwtg oaaUIXaeBdyqYHjiCy4UeV6AnNkFjAQ1vQ0= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Vijayenthiran Subramaniam In preparation for adding support for Reference Design (RD) platforms that have different base addresses for GIC distributor or redistributor, create individual platform description files for all SGI/RD platforms and move GIC related base addresses from the common SGI/RD platform description file to individual platform description files.The existing platform description is then included by individual platform description files. With this change, the builds for each supported platform is separate. Signed-off-by: Aditya Angadi Reviewed-by: Thomas Abraham --- Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc | 5 +- Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf | 2 +- Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf | 2 +- Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf | 2 +- Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf | 2 +- Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c | 69 +-------= ------------ Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf | 5 +- Platform/ARM/SgiPkg/Include/SgiPlatform.h | 7 +- Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf | 3 +- Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c | 8 +-- Platform/ARM/SgiPkg/RdE1Edge/RdE1Edge.dsc | 51 ++++++++= +++++++ Platform/ARM/SgiPkg/RdE1Edge/RdE1Edge.fdf.inc | 10 +++ Platform/ARM/SgiPkg/RdN1Edge/RdN1Edge.dsc | 51 ++++++++= +++++++ Platform/ARM/SgiPkg/RdN1Edge/RdN1Edge.fdf.inc | 10 +++ Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.dsc | 51 ++++++++= +++++++ Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.fdf.inc | 10 +++ Platform/ARM/SgiPkg/Sgi575/Sgi575.dsc | 51 ++++++++= +++++++ Platform/ARM/SgiPkg/Sgi575/Sgi575.fdf.inc | 10 +++ Platform/ARM/SgiPkg/SgiPlatform.dec | 10 +-- Platform/ARM/SgiPkg/{SgiPlatform.dsc =3D> SgiPlatform.dsc.inc} | 33 +-----= ---- Platform/ARM/SgiPkg/SgiPlatform.fdf | 5 +- 21 files changed, 269 insertions(+), 128 deletions(-) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc b/Platform/A= RM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc index 48e7a61478e8..58378b570b12 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc +++ b/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc @@ -14,6 +14,9 @@ #include #include =20 +#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) = \ @@ -85,7 +88,7 @@ =20 typedef struct { EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header; - EFI_ACPI_6_2_GIC_STRUCTURE GicInterfaces[32]; + EFI_ACPI_6_2_GIC_STRUCTURE GicInterfaces[CORE= _CNT]; EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; EFI_ACPI_6_2_GICR_STRUCTURE GicRedistributor; EFI_ACPI_6_2_GIC_ITS_STRUCTURE GicIts; diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf b/Platfo= rm/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf index 3a4d4e7b9502..e780698cdf57 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf @@ -10,7 +10,7 @@ [Defines] INF_VERSION =3D 0x0001001A BASE_NAME =3D RdE1EdgeAcpiTables - FILE_GUID =3D 2af40815-a84e-4de9-8c38-9140b3544073 + FILE_GUID =3D c712719a-0aaf-438c-9cdd-35ab4d60207d = # gArmSgiAcpiTablesGuid MODULE_TYPE =3D USER_DEFINED VERSION_STRING =3D 1.0 =20 diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf b/Platfo= rm/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf index 58c33ecb8ec2..871697eab19e 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf @@ -10,7 +10,7 @@ [Defines] INF_VERSION =3D 0x0001001A BASE_NAME =3D RdN1EdgeAcpiTables - FILE_GUID =3D 4b0b91d0-4a05-45c4-88a7-88e170e76694 + FILE_GUID =3D c712719a-0aaf-438c-9cdd-35ab4d60207d = # gArmSgiAcpiTablesGuid MODULE_TYPE =3D USER_DEFINED VERSION_STRING =3D 1.0 =20 diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf b/Plat= form/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf index 1b584b152455..61f17b3ee8ac 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf @@ -10,7 +10,7 @@ [Defines] INF_VERSION =3D 0x0001001A BASE_NAME =3D RdN1EdgeX2AcpiTables - FILE_GUID =3D 82a34150-0fc6-45f4-8ea0-f0a4660cf35d + FILE_GUID =3D c712719a-0aaf-438c-9cdd-35ab4d60207d = # gArmSgiAcpiTablesGuid MODULE_TYPE =3D USER_DEFINED VERSION_STRING =3D 1.0 =20 diff --git a/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf b/Platform= /ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf index 097ef854df42..466e0fb658eb 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf @@ -10,7 +10,7 @@ [Defines] INF_VERSION =3D 0x0001001A BASE_NAME =3D Sgi575AcpiTables - FILE_GUID =3D c712719a-0aaf-438c-9cdd-35ab4d60207d = # gSgi575AcpiTablesFileGuid + FILE_GUID =3D c712719a-0aaf-438c-9cdd-35ab4d60207d = # gArmSgiAcpiTablesGuid MODULE_TYPE =3D USER_DEFINED VERSION_STRING =3D 1.0 =20 diff --git a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c b/Platfo= rm/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c index 387397d74598..2f72e7152ff3 100644 --- a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c +++ b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c @@ -11,43 +11,6 @@ #include #include =20 -typedef struct { - SGI_PLATFORM_DESCRIPTOR SgiPlafromDescriptor; - CONST EFI_GUID* AcpiTableGuid; -} SGI_PLATFORM_ACPI_TABLE_GUID_LOOKUP; - -// Macro to construct the SGI_PLATFORM_ACPI_TABLE_GUID_LOOKUP structure -#define ACPI_GUID_LOOKUP(PART_NUM, CONFIG_NUM, MULTI_CHIP_MODE, GUID) = \ -{ = \ - { = \ - PART_NUM, CONFIG_NUM, MULTI_CHIP_MODE = \ - }, = \ - GUID = \ -} = \ - -STATIC SGI_PLATFORM_ACPI_TABLE_GUID_LOOKUP AcpiTableGuidLookup[] =3D { - ACPI_GUID_LOOKUP ( - SGI575_PART_NUM, - SGI575_CONF_NUM, - MULTI_CHIP_MODE_DISABLED, - &gSgi575AcpiTablesFileGuid), - ACPI_GUID_LOOKUP ( - RD_N1E1_EDGE_PART_NUM, - RD_N1_EDGE_CONF_ID, - MULTI_CHIP_MODE_DISABLED, - &gRdN1EdgeAcpiTablesFileGuid), - ACPI_GUID_LOOKUP ( - RD_N1E1_EDGE_PART_NUM, - RD_N1_EDGE_CONF_ID, - MULTI_CHIP_MODE_ENABLED, - &gRdN1EdgeX2AcpiTablesFileGuid), - ACPI_GUID_LOOKUP ( - RD_N1E1_EDGE_PART_NUM, - RD_E1_EDGE_CONF_ID, - MULTI_CHIP_MODE_DISABLED, - &gRdE1EdgeAcpiTablesFileGuid), -}; - VOID InitVirtioDevices ( VOID @@ -61,38 +24,8 @@ ArmSgiPkgEntryPoint ( ) { EFI_STATUS Status; - VOID *SystemIdHob; - SGI_PLATFORM_DESCRIPTOR *HobData; - UINTN Idx; - UINT32 ConfigId; - UINT32 PartNum; - UINT32 MultiChipMode; - - SystemIdHob =3D GetFirstGuidHob (&gArmSgiPlatformIdDescriptorGuid); - if (SystemIdHob =3D=3D NULL) { - DEBUG ((DEBUG_ERROR, "System ID HOB is NULL\n")); - return EFI_INVALID_PARAMETER; - } - - HobData =3D (SGI_PLATFORM_DESCRIPTOR *)GET_GUID_HOB_DATA (SystemIdHob); - - PartNum =3D HobData->PlatformId; - ConfigId =3D HobData->ConfigId; - MultiChipMode =3D HobData->MultiChipMode; - - Status =3D EFI_UNSUPPORTED; - - // Walk through the AcpiTableGuidLookup lookup array - for (Idx =3D 0; Idx < ARRAY_SIZE (AcpiTableGuidLookup); Idx++) { - if ((PartNum =3D=3D AcpiTableGuidLookup[Idx].SgiPlafromDescriptor.Plat= formId) && - (ConfigId =3D=3D AcpiTableGuidLookup[Idx].SgiPlafromDescriptor.Con= figId) && - (MultiChipMode =3D=3D - AcpiTableGuidLookup[Idx].SgiPlafromDescriptor.MultiChipMode)) { - Status =3D LocateAndInstallAcpiFromFv (AcpiTableGuidLookup[Idx].Acpi= TableGuid); - break; - } - } =20 + Status =3D LocateAndInstallAcpiFromFv (&gArmSgiAcpiTablesGuid); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "%a: Failed to install ACPI tables\n", __FUNCTION= __)); return Status; diff --git a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf b/Plat= form/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf index 741dcc75ed6a..9d89314a594e 100644 --- a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf +++ b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf @@ -30,10 +30,7 @@ [LibraryClasses] =20 [Guids] gArmSgiPlatformIdDescriptorGuid - gSgi575AcpiTablesFileGuid - gRdN1EdgeAcpiTablesFileGuid - gRdN1EdgeX2AcpiTablesFileGuid - gRdE1EdgeAcpiTablesFileGuid + gArmSgiAcpiTablesGuid =20 [FeaturePcd] gArmSgiTokenSpaceGuid.PcdVirtioBlkSupported diff --git a/Platform/ARM/SgiPkg/Include/SgiPlatform.h b/Platform/ARM/SgiPk= g/Include/SgiPlatform.h index e36a412155ff..d87fb2b5409f 100644 --- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h +++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.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 * @@ -45,11 +45,6 @@ #define SGI_SUBSYS_GENERIC_WDOG_BASE 0x2A440000 #define SGI_SUBSYS_GENERIC_WDOG_SZ SIZE_128KB =20 -// Sub System Peripherals - GIC -#define SGI_SUBSYS_GENERIC_GIC_BASE 0x30000000 -#define SGI_SUBSYS_GENERIC_GICR_BASE 0x300C0000 -#define SGI_SUBSYS_GENERIC_GIC_SZ SIZE_1MB - // Expansion AXI - Platform Peripherals - HDLCD1 #define SGI_EXP_PLAT_PERIPH_HDLCD1_BASE 0x7FF60000 #define SGI_EXP_PLAT_PERIPH_HDLCD1_SZ SIZE_64KB diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf b/Plat= form/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf index 3db70e900d61..a918afef5fba 100644 --- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, ARM Limited. All rights reserved. +# Copyright (c) 2018-2020, ARM Limited. All rights reserved. # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -42,6 +42,7 @@ [FixedPcd] =20 gArmSgiTokenSpaceGuid.PcdDramBlock2Base gArmSgiTokenSpaceGuid.PcdDramBlock2Size + gArmSgiTokenSpaceGuid.PcdGicSize =20 gArmTokenSpaceGuid.PcdSystemMemoryBase gArmTokenSpaceGuid.PcdSystemMemorySize diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c b/Pla= tform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c index 845aeaf4dd49..8d0ad4ec9c84 100644 --- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c @@ -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 * @@ -93,9 +93,9 @@ ArmPlatformGetVirtualMemoryMap ( VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_DEVICE; =20 // Sub System Peripherals - GIC-600 - VirtualMemoryTable[++Index].PhysicalBase =3D SGI_SUBSYS_GENERIC_GIC_BAS= E; - VirtualMemoryTable[Index].VirtualBase =3D SGI_SUBSYS_GENERIC_GIC_BAS= E; - VirtualMemoryTable[Index].Length =3D SGI_SUBSYS_GENERIC_GIC_SZ; + VirtualMemoryTable[++Index].PhysicalBase =3D FixedPcdGet64(PcdGicDistri= butorBase); + VirtualMemoryTable[Index].VirtualBase =3D FixedPcdGet64(PcdGicDistri= butorBase); + VirtualMemoryTable[Index].Length =3D FixedPcdGet64(PcdGicSize); VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_DEVICE; =20 // Expansion AXI - Platform Peripherals - HDLCD1 diff --git a/Platform/ARM/SgiPkg/RdE1Edge/RdE1Edge.dsc b/Platform/ARM/SgiPk= g/RdE1Edge/RdE1Edge.dsc new file mode 100644 index 000000000000..63b6ad230c62 --- /dev/null +++ b/Platform/ARM/SgiPkg/RdE1Edge/RdE1Edge.dsc @@ -0,0 +1,51 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +##########################################################################= ###### +# +# Defines Section - statements that will be processed to create a Makefile. +# +##########################################################################= ###### +[Defines] + PLATFORM_NAME =3D RdE1Edge + PLATFORM_GUID =3D c834de39-c5b0-458b-8ea3-882427179b8a + PLATFORM_VERSION =3D 0.1 + DSC_SPECIFICATION =3D 0x0001001B + OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES =3D AARCH64|ARM + BUILD_TARGETS =3D NOOPT|DEBUG|RELEASE + SKUID_IDENTIFIER =3D DEFAULT + FLASH_DEFINITION =3D Platform/ARM/SgiPkg/SgiPlatform.fdf + BOARD_DXE_FV_COMPONENTS =3D Platform/ARM/SgiPkg/RdE1Edge/RdE1Edge= .fdf.inc + BUILD_NUMBER =3D 1 + +# include common definitions from SgiPlatform.dsc +!include Platform/ARM/SgiPkg/SgiPlatform.dsc.inc + +##########################################################################= ###### +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +##########################################################################= ###### + +[PcdsFixedAtBuild.common] + # GIC Base Addresses + gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000 + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x300C0000 + gArmSgiTokenSpaceGuid.PcdGicSize|0x100000 + + # ARM Cores and Clusters + gArmPlatformTokenSpaceGuid.PcdCoreCount|16 + gArmPlatformTokenSpaceGuid.PcdClusterCount|2 + +##########################################################################= ###### +# +# Components Section - list of all EDK II Modules needed by this Platform +# +##########################################################################= ###### + +[Components.common] + Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf diff --git a/Platform/ARM/SgiPkg/RdE1Edge/RdE1Edge.fdf.inc b/Platform/ARM/S= giPkg/RdE1Edge/RdE1Edge.fdf.inc new file mode 100644 index 000000000000..056fc55c098a --- /dev/null +++ b/Platform/ARM/SgiPkg/RdE1Edge/RdE1Edge.fdf.inc @@ -0,0 +1,10 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +# Per-platform additional content of the DXE phase firmware volume + + # ACPI support + INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpi= Tables.inf diff --git a/Platform/ARM/SgiPkg/RdN1Edge/RdN1Edge.dsc b/Platform/ARM/SgiPk= g/RdN1Edge/RdN1Edge.dsc new file mode 100644 index 000000000000..6b5215e68105 --- /dev/null +++ b/Platform/ARM/SgiPkg/RdN1Edge/RdN1Edge.dsc @@ -0,0 +1,51 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +##########################################################################= ###### +# +# Defines Section - statements that will be processed to create a Makefile. +# +##########################################################################= ###### +[Defines] + PLATFORM_NAME =3D RdN1Edge + PLATFORM_GUID =3D c834de39-c5b0-458b-8ea3-882427179b8a + PLATFORM_VERSION =3D 0.1 + DSC_SPECIFICATION =3D 0x0001001B + OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES =3D AARCH64|ARM + BUILD_TARGETS =3D NOOPT|DEBUG|RELEASE + SKUID_IDENTIFIER =3D DEFAULT + FLASH_DEFINITION =3D Platform/ARM/SgiPkg/SgiPlatform.fdf + BOARD_DXE_FV_COMPONENTS =3D Platform/ARM/SgiPkg/RdN1Edge/RdN1Edge= .fdf.inc + BUILD_NUMBER =3D 1 + +# include common definitions from SgiPlatform.dsc +!include Platform/ARM/SgiPkg/SgiPlatform.dsc.inc + +##########################################################################= ###### +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +##########################################################################= ###### + +[PcdsFixedAtBuild.common] + # GIC Base Addresses + gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000 + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x300C0000 + gArmSgiTokenSpaceGuid.PcdGicSize|0x100000 + + # ARM Cores and Clusters + gArmPlatformTokenSpaceGuid.PcdCoreCount|4 + gArmPlatformTokenSpaceGuid.PcdClusterCount|2 + +##########################################################################= ###### +# +# Components Section - list of all EDK II Modules needed by this Platform +# +##########################################################################= ###### + +[Components.common] + Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf diff --git a/Platform/ARM/SgiPkg/RdN1Edge/RdN1Edge.fdf.inc b/Platform/ARM/S= giPkg/RdN1Edge/RdN1Edge.fdf.inc new file mode 100644 index 000000000000..4b191ca55cb9 --- /dev/null +++ b/Platform/ARM/SgiPkg/RdN1Edge/RdN1Edge.fdf.inc @@ -0,0 +1,10 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +# Per-platform additional content of the DXE phase firmware volume + + # ACPI support + INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpi= Tables.inf diff --git a/Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.dsc b/Platform/ARM/S= giPkg/RdN1EdgeX2/RdN1EdgeX2.dsc new file mode 100644 index 000000000000..ca6db012192a --- /dev/null +++ b/Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.dsc @@ -0,0 +1,51 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +##########################################################################= ###### +# +# Defines Section - statements that will be processed to create a Makefile. +# +##########################################################################= ###### +[Defines] + PLATFORM_NAME =3D RdN1EdgeX2 + PLATFORM_GUID =3D c834de39-c5b0-458b-8ea3-882427179b8a + PLATFORM_VERSION =3D 0.1 + DSC_SPECIFICATION =3D 0x0001001B + OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES =3D AARCH64|ARM + BUILD_TARGETS =3D NOOPT|DEBUG|RELEASE + SKUID_IDENTIFIER =3D DEFAULT + FLASH_DEFINITION =3D Platform/ARM/SgiPkg/SgiPlatform.fdf + BOARD_DXE_FV_COMPONENTS =3D Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1Ed= geX2.fdf.inc + BUILD_NUMBER =3D 1 + +# include common definitions from SgiPlatform.dsc +!include Platform/ARM/SgiPkg/SgiPlatform.dsc.inc + +##########################################################################= ###### +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +##########################################################################= ###### + +[PcdsFixedAtBuild.common] + # GIC Base Addresses + gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000 + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x300C0000 + gArmSgiTokenSpaceGuid.PcdGicSize|0x100000 + + # ARM Cores and Clusters + gArmPlatformTokenSpaceGuid.PcdCoreCount|4 + gArmPlatformTokenSpaceGuid.PcdClusterCount|2 + +##########################################################################= ###### +# +# Components Section - list of all EDK II Modules needed by this Platform +# +##########################################################################= ###### + +[Components.common] + Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf diff --git a/Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.fdf.inc b/Platform/A= RM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.fdf.inc new file mode 100644 index 000000000000..369264a916b4 --- /dev/null +++ b/Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.fdf.inc @@ -0,0 +1,10 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +# Per-platform additional content of the DXE phase firmware volume + + # ACPI support + INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2Ac= piTables.inf diff --git a/Platform/ARM/SgiPkg/Sgi575/Sgi575.dsc b/Platform/ARM/SgiPkg/Sg= i575/Sgi575.dsc new file mode 100644 index 000000000000..a253a5e1f15b --- /dev/null +++ b/Platform/ARM/SgiPkg/Sgi575/Sgi575.dsc @@ -0,0 +1,51 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +##########################################################################= ###### +# +# Defines Section - statements that will be processed to create a Makefile. +# +##########################################################################= ###### +[Defines] + PLATFORM_NAME =3D Sgi575 + PLATFORM_GUID =3D 3a6b2eae-0275-4b6e-a5d1-bd2ba1ce1fae + PLATFORM_VERSION =3D 0.1 + DSC_SPECIFICATION =3D 0x0001001B + OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES =3D AARCH64|ARM + BUILD_TARGETS =3D NOOPT|DEBUG|RELEASE + SKUID_IDENTIFIER =3D DEFAULT + FLASH_DEFINITION =3D Platform/ARM/SgiPkg/SgiPlatform.fdf + BOARD_DXE_FV_COMPONENTS =3D Platform/ARM/SgiPkg/Sgi575/Sgi575.fdf= .inc + BUILD_NUMBER =3D 1 + +# include common definitions from SgiPlatform.dsc +!include Platform/ARM/SgiPkg/SgiPlatform.dsc.inc + +##########################################################################= ###### +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +##########################################################################= ###### + +[PcdsFixedAtBuild.common] + # GIC Base Addresses + gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000 + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x300C0000 + gArmSgiTokenSpaceGuid.PcdGicSize|0x100000 + + # ARM Cores and Clusters + gArmPlatformTokenSpaceGuid.PcdCoreCount|4 + gArmPlatformTokenSpaceGuid.PcdClusterCount|2 + +##########################################################################= ###### +# +# Components Section - list of all EDK II Modules needed by this Platform +# +##########################################################################= ###### + +[Components.common] + Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf diff --git a/Platform/ARM/SgiPkg/Sgi575/Sgi575.fdf.inc b/Platform/ARM/SgiPk= g/Sgi575/Sgi575.fdf.inc new file mode 100644 index 000000000000..3748d86efdf4 --- /dev/null +++ b/Platform/ARM/SgiPkg/Sgi575/Sgi575.fdf.inc @@ -0,0 +1,10 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +# Per-platform additional content of the DXE phase firmware volume + + # ACPI support + INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTa= bles.inf diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dec b/Platform/ARM/SgiPkg/SgiP= latform.dec index 9d70ec677776..97c1e40349ea 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dec +++ b/Platform/ARM/SgiPkg/SgiPlatform.dec @@ -1,5 +1,5 @@ # -# Copyright (c) 2018, ARM Limited. All rights reserved. +# Copyright (c) 2018-2020, ARM Limited. All rights reserved. # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -26,10 +26,7 @@ [Guids.common] # ARM Sgi Platform ID descriptor gArmSgiPlatformIdDescriptorGuid =3D { 0xf56f152a, 0xad2a, 0x11e6, { 0xb1= , 0xa7, 0x00, 0x50, 0x56, 0x3c, 0x44, 0xcc } } gArmSgiTokenSpaceGuid =3D { 0x577d6941, 0xaea1, 0x40b4, { 0x90, 0x9= 3, 0x2a, 0x86, 0x61, 0x72, 0x5a, 0x57 } } - gSgi575AcpiTablesFileGuid =3D { 0xc712719a, 0x0aaf, 0x438c, { 0x9c, 0xd= d, 0x35, 0xab, 0x4d, 0x60, 0x20, 0x7d } } - gRdN1EdgeAcpiTablesFileGuid =3D { 0x4b0b91d0, 0x4a05, 0x45c4, { 0x88, 0x= a7, 0x88, 0xe1, 0x70, 0xe7, 0x66, 0x94 } } - gRdN1EdgeX2AcpiTablesFileGuid =3D { 0x82a34150, 0x0fc6, 0x45f4, { 0x8e, = 0xa0, 0xf0, 0xa4, 0x66, 0x0c, 0xf3, 0x5d } } - gRdE1EdgeAcpiTablesFileGuid =3D { 0x2af40815, 0xa84e, 0x4de9, { 0x8c, 0x= 38, 0x91, 0x40, 0xb3, 0x54, 0x40, 0x73 } } + gArmSgiAcpiTablesGuid =3D { 0xc712719a, 0x0aaf, 0x438c, { 0x9c, 0xdd, 0x= 35, 0xab, 0x4d, 0x60, 0x20, 0x7d } } =20 [PcdsFeatureFlag.common] gArmSgiTokenSpaceGuid.PcdVirtioBlkSupported|FALSE|BOOLEAN|0x00000001 @@ -49,5 +46,8 @@ [PcdsFixedAtBuild] gArmSgiTokenSpaceGuid.PcdVirtioNetSize|0x00000000|UINT32|0x00000008 gArmSgiTokenSpaceGuid.PcdVirtioNetInterrupt|0x00000000|UINT32|0x00000009 =20 + # GIC + gArmSgiTokenSpaceGuid.PcdGicSize|0|UINT64|0x0000000A + [Ppis] gNtFwConfigDtInfoPpiGuid =3D { 0x6f606eb3, 0x9123, 0x4e15, { 0xa8, 0= x9b, 0x0f, 0xac, 0x66, 0xef, 0xd0, 0x17 } } diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dsc b/Platform/ARM/SgiPkg/SgiP= latform.dsc.inc similarity index 87% rename from Platform/ARM/SgiPkg/SgiPlatform.dsc rename to Platform/ARM/SgiPkg/SgiPlatform.dsc.inc index 5226c5751e98..cfda5ec33618 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dsc +++ b/Platform/ARM/SgiPkg/SgiPlatform.dsc.inc @@ -1,26 +1,9 @@ # -# Copyright (c) 2018, ARM Limited. All rights reserved. +# Copyright (c) 2018-2020, ARM Limited. All rights reserved. # # SPDX-License-Identifier: BSD-2-Clause-Patent # =20 -##########################################################################= ###### -# -# Defines Section - statements that will be processed to create a Makefile. -# -##########################################################################= ###### -[Defines] - PLATFORM_NAME =3D ArmSgi - PLATFORM_GUID =3D 3a6b2eae-0275-4b6e-a5d1-bd2ba1ce1fae - PLATFORM_VERSION =3D 0.1 - DSC_SPECIFICATION =3D 0x0001001B - OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) - SUPPORTED_ARCHITECTURES =3D AARCH64|ARM - BUILD_TARGETS =3D NOOPT|DEBUG|RELEASE - SKUID_IDENTIFIER =3D DEFAULT - FLASH_DEFINITION =3D Platform/ARM/SgiPkg/SgiPlatform.fdf - BUILD_NUMBER =3D 1 - !include Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc =20 [BuildOptions] @@ -93,7 +76,7 @@ [LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common= .UEFI_APPLICATION, Libr =20 ##########################################################################= ###### # -# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# Pcd Section - list of all EDK II PCD Entries common to all SGI/RD platfo= rms # ##########################################################################= ###### =20 @@ -126,10 +109,6 @@ [PcdsFixedAtBuild.common] gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000 gArmTokenSpaceGuid.PcdSystemMemorySize|0x7F000000 =20 - # GIC Base Addresses - gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000 - gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x300C0000 - # # PCIe # @@ -177,10 +156,6 @@ [PcdsFixedAtBuild.common] gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000 gEmbeddedTokenSpaceGuid.PcdTimerPeriod|1000 =20 - # ARM Cores and Clusters - gArmPlatformTokenSpaceGuid.PcdCoreCount|4 - gArmPlatformTokenSpaceGuid.PcdClusterCount|2 - # Virtio Disk gArmSgiTokenSpaceGuid.PcdVirtioBlkBaseAddress|0x1c130000 gArmSgiTokenSpaceGuid.PcdVirtioBlkSize|0x10000 @@ -277,10 +252,6 @@ [Components.common] # ACPI Support # MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf - Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf - Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf - Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf - Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf =20 # diff --git a/Platform/ARM/SgiPkg/SgiPlatform.fdf b/Platform/ARM/SgiPkg/SgiP= latform.fdf index 3d13998015b9..9fc011a6d630 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.fdf +++ b/Platform/ARM/SgiPkg/SgiPlatform.fdf @@ -99,11 +99,8 @@ [FV.FvMain] # ACPI Support # INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf - INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTa= bles.inf - INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpi= Tables.inf - INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2Ac= piTables.inf - INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpi= Tables.inf INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf +!include $(BOARD_DXE_FV_COMPONENTS) =20 # Required by PCI INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57335): https://edk2.groups.io/g/devel/message/57335 Mute This Topic: https://groups.io/mt/73009392/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57336+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57336+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868771; cv=none; d=zohomail.com; s=zohoarc; b=m13p9clxq90wYZCSAX8f91VGgCoNn1li8PZDZ3OPR0XekTKPEGXB/piCzACZPsDH6elL4ukzCbLQg05LtBXDpTRF59VGX0NbJfktUweGIxlrIB12nL720MjjeGdU+MuuMFwGd7gvzhD7uIal7nI928pUfgG5HRZMK2kJboIfh/0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868771; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=0JrKvtnHJagXZuYgjFmCq66h1TelsmJSlVuhHiHKk5Q=; b=BpnuGTAwIzlXTh773f+g28sbBCWGl1hk0meA3trN48taTWra3bBUR/r8PFICX6ldnyKwXHJemzjT+NW2qXQJpqaY0W13/rE/SuazXzhBYMBaobClZqNLW+SydZm3yt+7zrq67vICRcgg0DhGiViplVR7BtgLa6/Y83PmElJ9jvo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57336+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586868771119317.79543025483724; Tue, 14 Apr 2020 05:52:51 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id aqdVYY1788612xd6mOjHkTAR; Tue, 14 Apr 2020 05:52:50 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.10409.1586868770221671739 for ; Tue, 14 Apr 2020 05:52:50 -0700 X-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 CD78730E; Tue, 14 Apr 2020 05:52:49 -0700 (PDT) X-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 DF1983F73D; Tue, 14 Apr 2020 05:52:47 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 2/9] Platform/ARM/Sgi: Move the GIC related ACPI helper macros Date: Tue, 14 Apr 2020 18:22:01 +0530 Message-Id: <20200414125208.2878-3-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: RTr2cmIhWx6H6hv1TsbxkoFzx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868770; bh=w+gDv3oSlLSwIW8N9SESRkl2vdiqvcykjz2LJUny+W8=; h=Cc:Date:From:Reply-To:Subject:To; b=cIvQgvUPc9nXUjkx53NkqA0uL42NPoHbt4EEB1GccMG1BRPaOw3cEp3u0qNZq85g4zz 4MZlZk7WFwdL2ZNmiYS5T3jp8/c5JuKd3tpz+WsNe7NbKeGUo7Gzgr57C8CcESSbdXIPE rWfq1Cy++B/qU41Vdi9QqYvOf4FnYR7iMFE= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: Thomas Abraham --- 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/AcpiTables/Sgi575/Madt.aslc | 130 +++++-----------= ---- Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h | 70 ++++++++++- 5 files changed, 103 insertions(+), 290 deletions(-) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Madt.aslc b/Platform/A= RM/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, /* 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, RedisDiscLeng= th) \ - { = \ - 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/A= RM/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, /* 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, RedisDiscLeng= th) \ - { = \ - 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/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 @@ =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, /* 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, RedisDiscLeng= th) \ - { = \ - 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/AcpiTables/Sgi575/Madt.aslc b/Platform/ARM= /SgiPkg/AcpiTables/Sgi575/Madt.aslc index dedabaaecdf4..f04b77929d71 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Madt.aslc +++ b/Platform/ARM/SgiPkg/AcpiTables/Sgi575/Madt.aslc @@ -17,147 +17,79 @@ #define CORES (FixedPcdGet32 (PcdClusterCount) * \ FixedPcdGet32 (PcdCoreCount)) =20 -// EFI_ACPI_6_1_GIC_STRUCTURE -#define EFI_ACPI_6_1_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, Flags, = \ - PmuIrq, GicBase, GicVBase, GicHBase, GsivId, GicRBase, Efficiency) = \ - { = \ - EFI_ACPI_6_1_GIC, /* Type */ = \ - sizeof (EFI_ACPI_6_1_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_1_GIC_DISTRIBUTOR_STRUCTURE -#define EFI_ACPI_6_1_GIC_DISTRIBUTOR_INIT(GicDistHwId, GicDistBase, = \ - GicDistVector, GicVersion) = \ - { = \ - EFI_ACPI_6_1_GICD, /* Type */ = \ - sizeof (EFI_ACPI_6_1_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_1_GICR_STRUCTURE -#define EFI_ACPI_6_1_GIC_REDISTRIBUTOR_INIT(RedisRegionAddr, RedisDiscLeng= th) \ - { = \ - EFI_ACPI_6_1_GICR, /* Type */ = \ - sizeof (EFI_ACPI_6_1_GICR_STRUCTURE), /* Length */ = \ - EFI_ACPI_RESERVED_WORD, /* Reserved */ = \ - RedisRegionAddr, /* DiscoveryRangeBaseAddress */ = \ - RedisDiscLength /* DiscoveryRangeLength */ = \ - } - -// EFI_ACPI_6_1_GIC_ITS_STRUCTURE -#define EFI_ACPI_6_1_GIC_ITS_INIT(GicItsId, GicItsBase) = \ - { = \ - EFI_ACPI_6_1_GIC_ITS, /* Type */ = \ - sizeof (EFI_ACPI_6_1_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 typedef struct { - EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header; - EFI_ACPI_6_1_GIC_STRUCTURE GicInterfaces[CORE= S]; - EFI_ACPI_6_1_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; - EFI_ACPI_6_1_GICR_STRUCTURE GicRedistributor; - EFI_ACPI_6_1_GIC_ITS_STRUCTURE GicIts; -} EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE; + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header; + EFI_ACPI_6_2_GIC_STRUCTURE GicInterfaces[CORE= S]; + EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; + EFI_ACPI_6_2_GICR_STRUCTURE GicRedistributor; + EFI_ACPI_6_2_GIC_ITS_STRUCTURE GicIts; +} EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE; =20 #pragma pack () =20 -STATIC EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE Madt =3D { +STATIC EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE Madt =3D { { ARM_ACPI_HEADER ( - EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, - EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE, - EFI_ACPI_6_1_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE, + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION ), // MADT specific fields 0, // LocalApicAddress 0, // Flags }, { - // Format: EFI_ACPI_6_1_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, = Flags, + // Format: EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, = Flags, // PmuIrq, GicBase, GicVBase, // GicHBase, GsivId, GicRBase, // Efficiency) // Note: The GIC Structure of the primary CPU must be the first entry - // (see note in 5.2.12.14 GICC Structure of ACPI v6.1). - EFI_ACPI_6_1_GICC_STRUCTURE_INIT( // A75-0 - 0, 0, GET_MPID(0x0, 0x0), EFI_ACPI_6_1_GIC_ENABLED, 23, + // (see note in 5.2.12.14 GICC Structure of ACPI v6.2). + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // A75-0 + 0, 0, GET_MPID(0x0, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), - EFI_ACPI_6_1_GICC_STRUCTURE_INIT( // A75-1 - 0, 1, GET_MPID(0x0, 0x100), EFI_ACPI_6_1_GIC_ENABLED, 23, + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // A75-1 + 0, 1, GET_MPID(0x0, 0x100), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), - EFI_ACPI_6_1_GICC_STRUCTURE_INIT( // A75-2 - 0, 2, GET_MPID(0x0, 0x200), EFI_ACPI_6_1_GIC_ENABLED, 23, + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // A75-2 + 0, 2, GET_MPID(0x0, 0x200), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), - EFI_ACPI_6_1_GICC_STRUCTURE_INIT( // A75-3 - 0, 3, GET_MPID(0x0, 0x300), EFI_ACPI_6_1_GIC_ENABLED, 23, + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // A75-3 + 0, 3, GET_MPID(0x0, 0x300), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), =20 - EFI_ACPI_6_1_GICC_STRUCTURE_INIT( // A75-4 - 0, 4, GET_MPID(0x100, 0x00), EFI_ACPI_6_1_GIC_ENABLED, 23, + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // A75-4 + 0, 4, GET_MPID(0x100, 0x00), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), - EFI_ACPI_6_1_GICC_STRUCTURE_INIT( // A75-5 - 0, 5, GET_MPID(0x100, 0x100), EFI_ACPI_6_1_GIC_ENABLED, 23, + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // A75-5 + 0, 5, GET_MPID(0x100, 0x100), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), - EFI_ACPI_6_1_GICC_STRUCTURE_INIT( // A75-6 - 0, 6, GET_MPID(0x100, 0x200), EFI_ACPI_6_1_GIC_ENABLED, 23, + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // A75-6 + 0, 6, GET_MPID(0x100, 0x200), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), - EFI_ACPI_6_1_GICC_STRUCTURE_INIT( // A75-7 - 0, 7, GET_MPID(0x100, 0x300), EFI_ACPI_6_1_GIC_ENABLED, 23, + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // A75-7 + 0, 7, GET_MPID(0x100, 0x300), EFI_ACPI_6_2_GIC_ENABLED, 23, FixedPcdGet32 (PcdGicDistributorBase), 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), }, // GIC Distributor Entry - EFI_ACPI_6_1_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 (PcdGicDistributorBas= e), + EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 (PcdGicDistributorBas= e), 0, 3), // GIC Redistributor - EFI_ACPI_6_1_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributorsB= ase), + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributorsB= ase), SIZE_1MB), // GIC ITS - EFI_ACPI_6_1_GIC_ITS_INIT(0, 0x30040000), + EFI_ACPI_6_2_GIC_ITS_INIT(0, 0x30040000), }; =20 // diff --git a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h b/Platform/ARM/Sgi= Pkg/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, /* 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, RedisDiscLeng= th) \ + { = \ + 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 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57336): https://edk2.groups.io/g/devel/message/57336 Mute This Topic: https://groups.io/mt/73009393/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57337+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57337+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868773; cv=none; d=zohomail.com; s=zohoarc; b=KURFSBQrhXWcteRIzqBOuttnWa06DcSA+7yjl41U4z2dDsjeFlGGNH3PxEfn6UfO9pe4KyoR2t3Vxi5Za4CTFbRwE8fhop5bU6ZSc+EHb6FzsfXMFdpeWcgxGSyW2ju8LPEq6Ms26uh5oLYXcvqq2CKLVl51UThdhCCngwoW65Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868773; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=qcB8de6jMB0VViQ+I1Xh6Mtv53TlxGVPytVtCKjpIfs=; b=GVfW70oLwfglKGehhmDEQvVuQoB2s9hUNc7KGioilqpYpN8/MjekFM8dkdjjV82kQkVhAxdbfWmIXno4oCWMoKn5JbhBokdq6KhyN2kbJJEwc2cl8n9NMU9/JSEnHJpzQf4KzeQU4getb20Wvk0PNRO55hpyTb9Zm60I6SWDWOk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57337+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586868773262979.9620089988709; Tue, 14 Apr 2020 05:52:53 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id kkStYY1788612xhLcfOn2B5N; Tue, 14 Apr 2020 05:52:52 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.10339.1586868772343174973 for ; Tue, 14 Apr 2020 05:52:52 -0700 X-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 021D530E; Tue, 14 Apr 2020 05:52:52 -0700 (PDT) X-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 4CBB13F73D; Tue, 14 Apr 2020 05:52:50 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 3/9] Platform/ARM/Sgi: Move common platform description to SSDT Date: Tue, 14 Apr 2020 18:22:02 +0530 Message-Id: <20200414125208.2878-4-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: GQLAlOIXKOjW4kFhhdQnfAIjx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868772; bh=ykZxez4YZf8S3/3hfZ/Y4/ghfzJY02PwG/U+AKlqgas=; h=Cc:Date:From:Reply-To:Subject:To; b=KcAu1T62o1aD2ZAiZxVthKnR6z7XYQVWJpD60PgJBa4FQP2i7enrGsXa4+pmijFsDrZ UIgfA2rXxWozwoRsGVGyTKTDRzES8Q8g73jET1ZEACL8cq+yuL7WftdkG36HayW08VQt2 D3dUEajqxpFkrqGFgjNYXp6KUeBlwXvMG/M= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Move common platform description entries in platform specific DSDT to a SSDT that can be reused on all SGI/RD platforms. Signed-off-by: Aditya Angadi Reviewed-by: Ard Biesheuvel Reviewed-by: Thomas Abraham --- Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Dsdt.asl | 70 +--= ----------------- Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf | 3 +- Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Dsdt.asl | 69 +--= ---------------- Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf | 3 +- Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf | 1 + Platform/ARM/SgiPkg/AcpiTables/{RdN1Edge/Dsdt.asl =3D> SsdtRos.asl} | 63 += ++--------------- 6 files changed, 17 insertions(+), 192 deletions(-) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Dsdt.asl b/Platform/AR= M/SgiPkg/AcpiTables/RdE1Edge/Dsdt.asl index 5583e610973b..d66c7cbf4183 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Dsdt.asl +++ b/Platform/ARM/SgiPkg/AcpiTables/RdE1Edge/Dsdt.asl @@ -1,7 +1,7 @@ /** @file * Differentiated System Description Table Fields (DSDT) * -* Copyright (c) 2018, ARM Ltd. All rights reserved. +* Copyright (c) 2018-2020, ARM Ltd. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -208,73 +208,5 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 1, "ARMLTD",= "ARMSGI", Name (_STA, 0xF) } =20 - // UART PL011 - Device (COM0) { - Name (_HID, "ARMH0011") - Name (_CID, "ARMH0011") - Name (_UID, Zero) - Name (_STA, 0xF) - Name (_CRS, ResourceTemplate() { - Memory32Fixed ( - ReadWrite, - FixedPcdGet64 (PcdSerialDbgRegisterBase), - 0x1000 - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 147 } - }) - } - - // SMSC 91C111 - Device (ETH0) { - Name (_HID, "LNRO0003") - Name (_UID, Zero) - Name (_STA, 0xF) - Name (_CRS, ResourceTemplate() { - Memory32Fixed (ReadWrite, 0x18000000, 0x1000) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 111 } - }) - Name (_DSD, Package() { - ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), - Package () { - Package (2) {"reg-io-width", 4 }, - } - }) - } - - // VIRTIO DISK - Device (VR00) { - Name (_HID, "LNRO0005") - Name (_UID, 0) - Name (_CCA, 1) // mark the device coherent - - Name (_CRS, ResourceTemplate() { - Memory32Fixed ( - ReadWrite, - FixedPcdGet32 (PcdVirtioBlkBaseAddress), - FixedPcdGet32 (PcdVirtioBlkSize) - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { - FixedPcdGet32 (PcdVirtioBlkInterrupt) - } - }) - } - - // VIRTIO NET - Device (VR01) { - Name (_HID, "LNRO0005") - Name (_UID, 1) - Name (_CCA, 1) // mark the device coherent - - Name (_CRS, ResourceTemplate() { - Memory32Fixed ( - ReadWrite, - FixedPcdGet32 (PcdVirtioNetBaseAddress), - FixedPcdGet32 (PcdVirtioNetSize) - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { - FixedPcdGet32 (PcdVirtioNetInterrupt) - } - }) - } } // Scope(_SB) } diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf b/Platfo= rm/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf index e780698cdf57..7ebd70b197a6 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf @@ -1,7 +1,7 @@ ## @file # ACPI table data and ASL sources required to boot the platform. # -# Copyright (c) 2018, ARM Ltd. All rights reserved. +# Copyright (c) 2018-2020, ARM Ltd. All rights reserved. # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -16,6 +16,7 @@ [Defines] =20 [Sources] Dbg2.aslc + SsdtRos.asl Fadt.aslc Gtdt.aslc Iort.aslc diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Dsdt.asl b/Platform/AR= M/SgiPkg/AcpiTables/RdN1Edge/Dsdt.asl index 45316d5005f4..cb05eed35878 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Dsdt.asl +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Dsdt.asl @@ -1,7 +1,7 @@ /** @file * Differentiated System Description Table Fields (DSDT) * -* Copyright (c) 2018, ARM Ltd. All rights reserved. +* Copyright (c) 2018-2020, ARM Ltd. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * @@ -62,72 +62,5 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 1, "ARMLTD", "= ARMSGI", Name (_STA, 0xF) } =20 - // UART PL011 - Device (COM0) { - Name (_HID, "ARMH0011") - Name (_CID, "ARMH0011") - Name (_UID, Zero) - Name (_STA, 0xF) - Name (_CRS, ResourceTemplate () { - Memory32Fixed ( - ReadWrite, - FixedPcdGet64 (PcdSerialDbgRegisterBase), - 0x1000 - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 147 } - }) - } - - // SMSC 91C111 - Device (ETH0) { - Name (_HID, "LNRO0003") - Name (_UID, Zero) - Name (_STA, 0xF) - Name (_CRS, ResourceTemplate () { - Memory32Fixed (ReadWrite, 0x18000000, 0x1000) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { 111 } - }) - Name (_DSD, Package() { - ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), - Package() { - Package(2) {"reg-io-width", 4 }, - } - }) - } - - // VIRTIO DISK - Device (VR00) { - Name (_HID, "LNRO0005") - Name (_UID, 0) - Name (_CCA, 1) // mark the device coherent - - Name (_CRS, ResourceTemplate() { - Memory32Fixed ( - ReadWrite, - FixedPcdGet32 (PcdVirtioBlkBaseAddress), - FixedPcdGet32 (PcdVirtioBlkSize) - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { - FixedPcdGet32 (PcdVirtioBlkInterrupt) - } - }) - } - - // VIRTIO NET - Device (VR01) { - Name (_HID, "LNRO0005") - Name (_UID, 1) - Name (_CCA, 1) // mark the device coherent - - Name (_CRS, ResourceTemplate() { - Memory32Fixed (ReadWrite, - FixedPcdGet32 (PcdVirtioNetBaseAddress), - FixedPcdGet32 (PcdVirtioNetSize) - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive) { - FixedPcdGet32 (PcdVirtioNetInterrupt) - } - }) - } } // Scope(_SB) } diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf b/Platfo= rm/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf index 871697eab19e..2d4354f33018 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf @@ -1,7 +1,7 @@ ## @file # ACPI table data and ASL sources required to boot the platform. # -# Copyright (c) 2018, ARM Ltd. All rights reserved. +# Copyright (c) 2018-2020, ARM Ltd. All rights reserved. # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -16,6 +16,7 @@ [Defines] =20 [Sources] Dbg2.aslc + SsdtRos.asl Fadt.aslc Gtdt.aslc Iort.aslc diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf b/Plat= form/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf index 61f17b3ee8ac..75f8e6dd6685 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf @@ -16,6 +16,7 @@ [Defines] =20 [Sources] Dbg2.aslc + SsdtRos.asl Fadt.aslc Gtdt.aslc Iort.aslc diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Dsdt.asl b/Platform/AR= M/SgiPkg/AcpiTables/SsdtRos.asl similarity index 58% copy from Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Dsdt.asl copy to Platform/ARM/SgiPkg/AcpiTables/SsdtRos.asl index 45316d5005f4..5b348da90b73 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1Edge/Dsdt.asl +++ b/Platform/ARM/SgiPkg/AcpiTables/SsdtRos.asl @@ -1,67 +1,24 @@ /** @file -* Differentiated System Description Table Fields (DSDT) +* Secondary System Description Table Fields (SSDT) * -* Copyright (c) 2018, ARM Ltd. All rights reserved. +* Copyright (c) 2020, ARM Ltd. All rights reserved. * -* SPDX-License-Identifier: BSD-2-Clause-Patent +* This program and the accompanying materials are licensed and made avail= able +* under the terms and conditions of the BSD License which accompanies this +* distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. * **/ =20 #include "SgiPlatform.h" #include "SgiAcpiHeader.h" =20 -DefinitionBlock ("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARMSGI", +DefinitionBlock ("SsdtRosTable.aml", "SSDT", 1, "ARMLTD", "ARMSGI", EFI_ACPI_ARM_OEM_REVISION) { Scope (_SB) { - - Device (CP00) { // Neoverse-N1: Cluster 0, Cpu 0 - Name (_HID, "ACPI0007") - Name (_UID, 0) - Name (_STA, 0xF) - } - - Device (CP01) { // Neoverse-N1: Cluster 0, Cpu 1 - Name (_HID, "ACPI0007") - Name (_UID, 1) - Name (_STA, 0xF) - } - - Device (CP02) { // Neoverse-N1: Cluster 0, Cpu 2 - Name (_HID, "ACPI0007") - Name (_UID, 2) - Name (_STA, 0xF) - } - - Device (CP03) { // Neoverse-N1: Cluster 0, Cpu 3 - Name (_HID, "ACPI0007") - Name (_UID, 3) - Name (_STA, 0xF) - } - - Device (CP04) { // Neoverse-N1: Cluster 1, Cpu 0 - Name (_HID, "ACPI0007") - Name (_UID, 4) - Name (_STA, 0xF) - } - - Device (CP05) { // Neoverse-N1: Cluster 1, Cpu 1 - Name (_HID, "ACPI0007") - Name (_UID, 5) - Name (_STA, 0xF) - } - - Device (CP06) { // Neoverse-N1: Cluster 1, Cpu 2 - Name (_HID, "ACPI0007") - Name (_UID, 6) - Name (_STA, 0xF) - } - - Device (CP07) { // Neoverse-N1: Cluster 1, Cpu 3 - Name (_HID, "ACPI0007") - Name (_UID, 7) - Name (_STA, 0xF) - } - // UART PL011 Device (COM0) { Name (_HID, "ARMH0011") --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57337): https://edk2.groups.io/g/devel/message/57337 Mute This Topic: https://groups.io/mt/73009394/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57338+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57338+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868776; cv=none; d=zohomail.com; s=zohoarc; b=XrtXc5t5sGXg49Ir6DPZtDUsxAvqJ8ET5BXHnK+pqkB2fF4o+8cwM0orrM76E5sZV8TzpMCI/wbS77WxdvWhG4P0vCnJvgV3a24FByIZgPCaoewjQSIYh15293Ncu9Zr73NbgsC+9f4I5DerSsEb56Es/7Ccmj0RpM+F62h7+00= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868776; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=aEnUyKUrs/d6HpsRep5RZVqgk81mwGtFm3JKMmE0DOk=; b=FKws9yjDWmT2Edc36r9uAnzN2foAi6WASvCAjORNHgfvxiEpNhGQbphUSzibBt/sAl+3QC9g/b4uMmD9sUngdhfZGQceLQX38GT4TepLY0UpgjbjbZ8z2420e+MBRzOIiMuM9Lf/Zv7/Q/PjuK49vdo4A7VKMTNncH06PQ2kZOE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57338+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586868776649688.2730977120552; Tue, 14 Apr 2020 05:52:56 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ityTYY1788612xXCEOgjTDI4; Tue, 14 Apr 2020 05:52:56 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.10413.1586868775535786494 for ; Tue, 14 Apr 2020 05:52:55 -0700 X-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 650BC30E; Tue, 14 Apr 2020 05:52:54 -0700 (PDT) X-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 75BB33F73D; Tue, 14 Apr 2020 05:52:52 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Vijayenthiran Subramaniam , Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 4/9] Platform/ARM/Sgi: Add support for remote numa memory nodes Date: Tue, 14 Apr 2020 18:22:03 +0530 Message-Id: <20200414125208.2878-5-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: B1CSIBxhYB6qwLY7PeNcqARfx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868776; bh=W5A5VhqC+JDGoRwCegWvqApWF+oMk0x5GLSkwOIk5TI=; h=Cc:Date:From:Reply-To:Subject:To; b=wAF0MxZBGWhr28Jp+A58wkL8szdcrMeLwUrY7mkVtb/tGwHB1geEHWOsLNfBY8P5VkP H1tXCtcckSl2yPyzpGcvC50GYL32wwO1S1f2MfHRUkuWIyhw0ZTceKHYCXmn0vALCSRrF IuqPlVLJzCDtgc1NcpC4v9AbKdiZuQjQkTQ= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Vijayenthiran Subramaniam Add new PCDs that define the base address and size of remote NUMA memory nodes on multi-chip platforms. Use these PCDs to setup system memory resource descriptor HOBs. Signed-off-by: Aditya Angadi Reviewed-by: Thomas Abraham --- Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf | 18 ++++ Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c | 87 ++++++++++++= +++++++- Platform/ARM/SgiPkg/SgiPlatform.dec | 19 +++++ 3 files changed, 123 insertions(+), 1 deletion(-) diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf b/Plat= form/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf index a918afef5fba..c3125d7e4e0f 100644 --- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLib.inf @@ -46,6 +46,24 @@ [FixedPcd] =20 gArmTokenSpaceGuid.PcdSystemMemoryBase gArmTokenSpaceGuid.PcdSystemMemorySize + + gArmSgiTokenSpaceGuid.PcdChipCount + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote1 + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote2 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote2 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote2 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote2 + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote3 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote3 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote3 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote3 + gArmTokenSpaceGuid.PcdGicDistributorBase gArmTokenSpaceGuid.PcdGicRedistributorsBase gArmTokenSpaceGuid.PcdFvBaseAddress diff --git a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c b/Pla= tform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c index 8d0ad4ec9c84..d8d9a406cf91 100644 --- a/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c +++ b/Platform/ARM/SgiPkg/Library/PlatformLib/PlatformLibMem.c @@ -16,7 +16,8 @@ #include =20 // Total number of descriptors, including the final "end-of-table" descrip= tor. -#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 13 +#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS \ + (11 + (FixedPcdGet32 (PcdChipCount) * 2)) =20 /** Returns the Virtual Memory Map of the platform. @@ -52,6 +53,48 @@ ArmPlatformGetVirtualMemoryMap ( FixedPcdGet64 (PcdDramBlock2Base), FixedPcdGet64 (PcdDramBlock2Size)); =20 +#if (FixedPcdGet32 (PcdChipCount) > 1) + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + FixedPcdGet64 (PcdDramBlock1BaseRemote1), + FixedPcdGet64 (PcdDramBlock1SizeRemote1)); + + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + FixedPcdGet64 (PcdDramBlock2BaseRemote1), + FixedPcdGet64 (PcdDramBlock2SizeRemote1)); + +#if (FixedPcdGet32 (PcdChipCount) > 2) + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + FixedPcdGet64 (PcdDramBlock1BaseRemote2), + FixedPcdGet64 (PcdDramBlock1SizeRemote2)); + + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + FixedPcdGet64 (PcdDramBlock2BaseRemote2), + FixedPcdGet64 (PcdDramBlock2SizeRemote2)); + +#if (FixedPcdGet32 (PcdChipCount) > 3) + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + FixedPcdGet64 (PcdDramBlock1BaseRemote3), + FixedPcdGet64 (PcdDramBlock1SizeRemote3)); + + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + FixedPcdGet64 (PcdDramBlock2BaseRemote3), + FixedPcdGet64 (PcdDramBlock2SizeRemote3)); +#endif +#endif +#endif + ASSERT (VirtualMemoryMap !=3D NULL); Index =3D 0; =20 @@ -122,6 +165,48 @@ ArmPlatformGetVirtualMemoryMap ( VirtualMemoryTable[Index].Length =3D PcdGet64 (PcdDramBlock2Siz= e); VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_WRITE_BACK; =20 +#if (FixedPcdGet32 (PcdChipCount) > 1) + // Chip 1 DDR Block 1 - (2GB) + VirtualMemoryTable[++Index].PhysicalBase =3D PcdGet64 (PcdDramBlock1Bas= eRemote1); + VirtualMemoryTable[Index].VirtualBase =3D PcdGet64 (PcdDramBlock1Bas= eRemote1); + VirtualMemoryTable[Index].Length =3D PcdGet64 (PcdDramBlock1Bas= eRemote1); + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_WRITE_BACK; + + // Chip 1 DDR Block 2 - (6GB) + VirtualMemoryTable[++Index].PhysicalBase =3D PcdGet64 (PcdDramBlock2Bas= eRemote1); + VirtualMemoryTable[Index].VirtualBase =3D PcdGet64 (PcdDramBlock2Bas= eRemote1); + VirtualMemoryTable[Index].Length =3D PcdGet64 (PcdDramBlock2Bas= eRemote1); + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_WRITE_BACK; + +#if (FixedPcdGet32 (PcdChipCount) > 2) + // Chip 2 DDR Block 1 - (2GB) + VirtualMemoryTable[++Index].PhysicalBase =3D PcdGet64 (PcdDramBlock1Bas= eRemote2); + VirtualMemoryTable[Index].VirtualBase =3D PcdGet64 (PcdDramBlock1Bas= eRemote2); + VirtualMemoryTable[Index].Length =3D PcdGet64 (PcdDramBlock1Bas= eRemote2); + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_WRITE_BACK; + + // Chip 2 DDR Block 2 - (6GB) + VirtualMemoryTable[++Index].PhysicalBase =3D PcdGet64 (PcdDramBlock2Bas= eRemote2); + VirtualMemoryTable[Index].VirtualBase =3D PcdGet64 (PcdDramBlock2Bas= eRemote2); + VirtualMemoryTable[Index].Length =3D PcdGet64 (PcdDramBlock2Bas= eRemote2); + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_WRITE_BACK; + +#if (FixedPcdGet32 (PcdChipCount) > 3) + // Chip 3 DDR Block 1 - (2GB) + VirtualMemoryTable[++Index].PhysicalBase =3D PcdGet64 (PcdDramBlock1Bas= eRemote3); + VirtualMemoryTable[Index].VirtualBase =3D PcdGet64 (PcdDramBlock1Bas= eRemote3); + VirtualMemoryTable[Index].Length =3D PcdGet64 (PcdDramBlock1Bas= eRemote3); + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_WRITE_BACK; + + // Chip 3 DDR Block 2 - (6GB) + VirtualMemoryTable[++Index].PhysicalBase =3D PcdGet64 (PcdDramBlock2Bas= eRemote3); + VirtualMemoryTable[Index].VirtualBase =3D PcdGet64 (PcdDramBlock2Bas= eRemote3); + VirtualMemoryTable[Index].Length =3D PcdGet64 (PcdDramBlock2Bas= eRemote3); + VirtualMemoryTable[Index].Attributes =3D ARM_MEMORY_REGION_ATTRIBUT= E_WRITE_BACK; +#endif +#endif +#endif + // PCI Configuration Space VirtualMemoryTable[++Index].PhysicalBase =3D PcdGet64 (PcdPciExpressBas= eAddress); VirtualMemoryTable[Index].VirtualBase =3D PcdGet64 (PcdPciExpressBas= eAddress); diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dec b/Platform/ARM/SgiPkg/SgiP= latform.dec index 97c1e40349ea..28d738f982dd 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dec +++ b/Platform/ARM/SgiPkg/SgiPlatform.dec @@ -46,6 +46,25 @@ [PcdsFixedAtBuild] gArmSgiTokenSpaceGuid.PcdVirtioNetSize|0x00000000|UINT32|0x00000008 gArmSgiTokenSpaceGuid.PcdVirtioNetInterrupt|0x00000000|UINT32|0x00000009 =20 + # Chip count on the platform + gArmSgiTokenSpaceGuid.PcdChipCount|1|UINT32|0x0000000C + + # Remote NUMA memory node base and size + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote1|0|UINT64|0x00000011 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote1|0|UINT64|0x00000012 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote1|0|UINT64|0x00000013 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote1|0|UINT64|0x00000014 + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote2|0|UINT64|0x00000015 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote2|0|UINT64|0x00000016 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote2|0|UINT64|0x00000017 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote2|0|UINT64|0x00000018 + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote3|0|UINT64|0x00000019 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote3|0|UINT64|0x0000001A + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote3|0|UINT64|0x0000001B + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote3|0|UINT64|0x0000001C + # GIC gArmSgiTokenSpaceGuid.PcdGicSize|0|UINT64|0x0000000A =20 --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57338): https://edk2.groups.io/g/devel/message/57338 Mute This Topic: https://groups.io/mt/73009396/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57339+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57339+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868777; cv=none; d=zohomail.com; s=zohoarc; b=dBuq6ew+CVB/SKKf3P/tbaVng7c0a83wMI9TOE9VYzUQ3qeb6rMZMGJ9ZFWq+e46Z0mSEo/qn7xCO5qCAXX979IXr46/Uq/Z0mlX+hwMACzMCFtZyTH8lihBkoyeyDt+WTXfznAHGv7ezN0Na0XakydaeS0D3l2loXBjY1WjHDE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868777; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=a+htCZGD9Gt8n+4Mp44lY67WBYRhYfbTs+tSmABgu+4=; b=bU2/+ILJGdjkfsb0NcOiEwgnxLyhOK1d0QMiO/XfVawTpmKR3rIBeSRwhuHrmknE/RWK22FzGinqkyimIQghSLpYm3boBnDRU+czOBjFV4eEy0apT8oeDzMWQ6KW+uVILBN/jfHWNsobYOOLFYjUBSE1usxkW1UA70jehYbRO4o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57339+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586868777803288.47449381612046; Tue, 14 Apr 2020 05:52:57 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id M73DYY1788612xzaaqNLHkbd; Tue, 14 Apr 2020 05:52:57 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.10414.1586868776903639987 for ; Tue, 14 Apr 2020 05:52:57 -0700 X-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 8BBCA30E; Tue, 14 Apr 2020 05:52:56 -0700 (PDT) X-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 D77A93F73D; Tue, 14 Apr 2020 05:52:54 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 5/9] Platform/ARM/Sgi: Add ACPI tables for Rd-Daniel Config-M Date: Tue, 14 Apr 2020 18:22:04 +0530 Message-Id: <20200414125208.2878-6-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: VZFhu92G9wEnbKBhd1fpBYLcx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868777; bh=5nwL2yF90UEDmMITsyDnK+3ZsDcfOAL58pPLipPG97U=; h=Cc:Date:From:Reply-To:Subject:To; b=Jn0r9jNhCUkMlI1eKSfFHNUqB20JjCOQjPVxHf5K2owsfp7EfL51RgYL4E44ATc8r1A ZSE6lzoCRsRPGRwpQWATSfv/NmjSIvwO0u2YmjZG20bSXELZIgYa8ukGWsT2cvzgt+rQJ jiggrtGZvRK6Wsv6ptYeKzv4VWzrhMHJJt4= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Add Madt and Dsdt ACPI tables that are specific for RD-Daniel Config-M platform. Reuse the rest of the shared ACPI tables in SgiPkg. Signed-off-by: Aditya Angadi Reviewed-by: Ard Biesheuvel Reviewed-by: Thomas Abraham --- Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgM/Dsdt.asl | 118 ++++++++++= ++++++ Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgM/Madt.aslc | 141 ++++++++++= ++++++++++ Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf | 63 +++++++++ 3 files changed, 322 insertions(+) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgM/Dsdt.asl b/Platfor= m/ARM/SgiPkg/AcpiTables/RdDanielCfgM/Dsdt.asl new file mode 100644 index 000000000000..57873ef5cfa2 --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgM/Dsdt.asl @@ -0,0 +1,118 @@ +/** @file +* Differentiated System Description Table Fields (DSDT) +* +* Copyright (c) 2020, ARM Ltd. All rights reserved. +* +* This program and the accompanying materials are licensed and made avail= able +* under the terms and conditions of the BSD License which accompanies this +* distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. +* +**/ + +#include "SgiPlatform.h" +#include "SgiAcpiHeader.h" + +DefinitionBlock ("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARMSGI", + EFI_ACPI_ARM_OEM_REVISION) { + Scope (_SB) { + Device (CP00) { // Zeus core 0 + Name (_HID, "ACPI0007") + Name (_UID, 0) + Name (_STA, 0xF) + } + + Device (CP01) { // Zeus core 1 + Name (_HID, "ACPI0007") + Name (_UID, 1) + Name (_STA, 0xF) + } + + Device (CP02) { // Zeus core 2 + Name (_HID, "ACPI0007") + Name (_UID, 2) + Name (_STA, 0xF) + } + + Device (CP03) { // Zeus core 3 + Name (_HID, "ACPI0007") + Name (_UID, 3) + Name (_STA, 0xF) + } + + Device (CP04) { // Zeus core 4 + Name (_HID, "ACPI0007") + Name (_UID, 4) + Name (_STA, 0xF) + } + + Device (CP05) { // Zeus core 5 + Name (_HID, "ACPI0007") + Name (_UID, 5) + Name (_STA, 0xF) + } + + Device (CP06) { // Zeus core 6 + Name (_HID, "ACPI0007") + Name (_UID, 6) + Name (_STA, 0xF) + } + + Device (CP07) { // Zeus core 7 + Name (_HID, "ACPI0007") + Name (_UID, 7) + Name (_STA, 0xF) + } + + Device (CP08) { // Zeus core 8 + Name (_HID, "ACPI0007") + Name (_UID, 8) + Name (_STA, 0xF) + } + + Device (CP09) { // Zeus core 9 + Name (_HID, "ACPI0007") + Name (_UID, 9) + Name (_STA, 0xF) + } + + Device (CP10) { // Zeus core 10 + Name (_HID, "ACPI0007") + Name (_UID, 10) + Name (_STA, 0xF) + } + + Device (CP11) { // Zeus core 11 + Name (_HID, "ACPI0007") + Name (_UID, 11) + Name (_STA, 0xF) + } + + Device (CP12) { // Zeus core 12 + Name (_HID, "ACPI0007") + Name (_UID, 12) + Name (_STA, 0xF) + } + + Device (CP13) { // Zeus core 13 + Name (_HID, "ACPI0007") + Name (_UID, 13) + Name (_STA, 0xF) + } + + Device (CP14) { // Zeus core 14 + Name (_HID, "ACPI0007") + Name (_UID, 14) + Name (_STA, 0xF) + } + + Device (CP15) { // Zeus core 15 + Name (_HID, "ACPI0007") + Name (_UID, 15) + Name (_STA, 0xF) + } + } // Scope(_SB) +} diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgM/Madt.aslc b/Platfo= rm/ARM/SgiPkg/AcpiTables/RdDanielCfgM/Madt.aslc new file mode 100644 index 000000000000..421f6b96e951 --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgM/Madt.aslc @@ -0,0 +1,141 @@ +/** @file +* Multiple APIC Description Table (MADT) +* +* Copyright (c) 2020, ARM Limited. All rights reserved. +* +* This program and the accompanying materials are licensed and made avail= able +* under the terms and conditions of the BSD License which accompanies this +* distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. +* +**/ + +#include "SgiPlatform.h" +#include "SgiAcpiHeader.h" +#include +#include +#include +#include + +#define CORES (FixedPcdGet32 (PcdClusterCount) * \ + FixedPcdGet32 (PcdCoreCount)) + +// Multiple APIC Description Table +#pragma pack (1) + +typedef struct { + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header; + EFI_ACPI_6_2_GIC_STRUCTURE GicInterfaces[CORE= S]; + EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; + EFI_ACPI_6_2_GICR_STRUCTURE GicRedistributor; + EFI_ACPI_6_2_GIC_ITS_STRUCTURE GicIts[4]; +} EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE; + +#pragma pack () + +STATIC EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE Madt =3D { + { + ARM_ACPI_HEADER ( + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE, + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION + ), + // MADT specific fields + 0, // LocalApicAddress + 0 // Flags + }, + { + // Format: EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, = Flags, + // PmuIrq, GicBase, GicVBase, + // GicHBase, GsivId, GicRBase, + // Efficiency) + // Note: The GIC Structure of the primary CPU must be the first entry + // (see note in 5.2.12.14 GICC Structure of ACPI v6.2). + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core0 + 0, 0, GET_MPID(0x0, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core1 + 0, 1, GET_MPID(0x100, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core2 + 0, 2, GET_MPID(0x200, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core3 + 0, 3, GET_MPID(0x300, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core4 + 0, 4, GET_MPID(0x400, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core5 + 0, 5, GET_MPID(0x500, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core6 + 0, 6, GET_MPID(0x600, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core7 + 0, 7, GET_MPID(0x700, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core8 + 0, 8, GET_MPID(0x800, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core9 + 0, 9, GET_MPID(0x900, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core10 + 0, 10, GET_MPID(0xa00, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core11 + 0, 11, GET_MPID(0xb00, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core12 + 0, 12, GET_MPID(0xc00, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core13 + 0, 13, GET_MPID(0xd00, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core14 + 0, 14, GET_MPID(0xe00, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core15 + 0, 15, GET_MPID(0xf00, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + }, + // GIC Distributor Entry + EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 (PcdGicDistributorBas= e), + 0, 3), + // GIC Redistributor + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributorsB= ase), + SIZE_16MB), + // GIC ITS + { + EFI_ACPI_6_2_GIC_ITS_INIT(0, 0x30040000), + EFI_ACPI_6_2_GIC_ITS_INIT(1, 0x30080000), + EFI_ACPI_6_2_GIC_ITS_INIT(2, 0x300C0000), + EFI_ACPI_6_2_GIC_ITS_INIT(3, 0x30100000), + }, +}; + +// +// Reference the table being generated to prevent the optimizer from remov= ing +// the data structure from the executable +// +VOID* CONST ReferenceAcpiTable =3D &Madt; diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf b/Pl= atform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf new file mode 100644 index 000000000000..783b915107ec --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf @@ -0,0 +1,63 @@ +## @file +# ACPI table data and ASL sources required to boot the platform. +# +# Copyright (c) 2020, ARM Ltd. All rights reserved. +# +# This program and the accompanying materials are licensed and made avail= able +# under the terms and conditions of the BSD License which accompanies this +# distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. +# +## + +[Defines] + INF_VERSION =3D 0x0001001A + BASE_NAME =3D RdDanielCfgMAcpiTables + FILE_GUID =3D c712719a-0aaf-438c-9cdd-35ab4d60207d = # gArmSgiAcpiTablesGuid + MODULE_TYPE =3D USER_DEFINED + VERSION_STRING =3D 1.0 + +[Sources] + Dbg2.aslc + SsdtRos.asl + Fadt.aslc + Gtdt.aslc + Iort.aslc + Mcfg.aslc + RdDanielCfgM/Dsdt.asl + RdDanielCfgM/Madt.aslc + Spcr.aslc + +[Packages] + ArmPkg/ArmPkg.dec + ArmPlatformPkg/ArmPlatformPkg.dec + EmbeddedPkg/EmbeddedPkg.dec + MdePkg/MdePkg.dec + Platform/ARM/SgiPkg/SgiPlatform.dec + +[FixedPcd] + gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase + gArmPlatformTokenSpaceGuid.PL011UartInterrupt + + gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum + gArmTokenSpaceGuid.PcdGicDistributorBase + gArmTokenSpaceGuid.PcdGicRedistributorsBase + gArmTokenSpaceGuid.PcdGenericWatchdogControlBase + gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase + gArmTokenSpaceGuid.PcdPciBusMin + gArmTokenSpaceGuid.PcdPciBusMax + + gArmSgiTokenSpaceGuid.PcdVirtioBlkBaseAddress + gArmSgiTokenSpaceGuid.PcdVirtioBlkSize + gArmSgiTokenSpaceGuid.PcdVirtioBlkInterrupt + gArmSgiTokenSpaceGuid.PcdVirtioNetBaseAddress + gArmSgiTokenSpaceGuid.PcdVirtioNetSize + gArmSgiTokenSpaceGuid.PcdVirtioNetInterrupt + + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57339): https://edk2.groups.io/g/devel/message/57339 Mute This Topic: https://groups.io/mt/73009398/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57340+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57340+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868779; cv=none; d=zohomail.com; s=zohoarc; b=FO1mkdPqL7mpNnF4yvOpvxqbVqytM2oYG9a5WKkCtO+ySlQ2RavtOSTTF+RltZzltwH3g0VULRW2vod7hERUKfBy8KvOUL6ar8ohRP1S6ckJbJEtnzM00tMBG0nfUiXTa8EiGo40qABIiluMRC/kaqsA4lw/twuw8TlVf0o7hWY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868779; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=kRM2+dADz1k3iNVbPpHO//79dUh83I82faICMRruVH4=; b=WixgRPEE3CxtjL1gd1Fh31kWjD0jfJi5JVxtcc2JlemQcuPGE1gqwBFF6j95IDDwqKi+UNT0ljGz4WaC+Noa/eCd5AA27tn3ROE8qJecroAdM2z0nwa/KxMj4TkMFqMur9RiQisOUMVwQNqnTEVh1PXC4J4iFpwlfEjPH/R6jfs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57340+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586868779921330.0424224516572; Tue, 14 Apr 2020 05:52:59 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id x42tYY1788612xoH0DlbdJhm; Tue, 14 Apr 2020 05:52:59 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.10415.1586868779061201710 for ; Tue, 14 Apr 2020 05:52:59 -0700 X-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 B284931B; Tue, 14 Apr 2020 05:52:58 -0700 (PDT) X-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 0AE053F73D; Tue, 14 Apr 2020 05:52:56 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 6/9] Platform/ARM/Sgi: Add initial support for RD-Daniel Config-M platform Date: Tue, 14 Apr 2020 18:22:05 +0530 Message-Id: <20200414125208.2878-7-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: v6naJ01w0rCLDIJDnIywiXVYx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868779; bh=I3Wb1jDgX/5l1AI4K8pggFX6BWtSQKUU+0p4T1E58mA=; h=Cc:Date:From:Reply-To:Subject:To; b=s6az7HcTfc0U9M8BytcXxwdQAaabM5vkafGLyZPynXMCfPrVrNhyHYPbq6aewrRqQEo rnOeAKyjRVE7GrmEwCwznzLtBdCJo1xTHmB5eu4tDbrhuedWFWxwIZ97EiOxKGDvqqEF/ yIYZnY1kM4lSP+A7/WC+umw0dXGTi3K5Yvs= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Arm's RD-Daniel Config-M platform is built using 16 Neoverse cores and connected to 8GB of RAM. Add initial platform support for this platform. Signed-off-by: Aditya Angadi Reviewed-by: Thomas Abraham --- Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf | 2 + Platform/ARM/SgiPkg/Include/SgiPlatform.h | 4 ++ Platform/ARM/SgiPkg/RdDanielCfgM/RdDanielCfgM.dsc | 51 +++++++++++= +++++++++ Platform/ARM/SgiPkg/RdDanielCfgM/RdDanielCfgM.fdf.inc | 10 ++++ 4 files changed, 67 insertions(+) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf b/Pl= atform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf index 783b915107ec..4ae0a796fb0c 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf @@ -41,6 +41,8 @@ [Packages] [FixedPcd] gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase gArmPlatformTokenSpaceGuid.PL011UartInterrupt + gArmPlatformTokenSpaceGuid.PcdCoreCount + gArmPlatformTokenSpaceGuid.PcdClusterCount =20 gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum gArmTokenSpaceGuid.PcdArmArchTimerIntrNum diff --git a/Platform/ARM/SgiPkg/Include/SgiPlatform.h b/Platform/ARM/SgiPk= g/Include/SgiPlatform.h index d87fb2b5409f..a9d8d70f8667 100644 --- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h +++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.h @@ -70,6 +70,10 @@ #define RD_N1_EDGE_CONF_ID 0x1 #define RD_E1_EDGE_CONF_ID 0x2 =20 +// RD-Daniel Platform Identification values +#define RD_DANIEL_PART_NUM 0x78A +#define RD_DANIEL_CFGM_CONF_ID 0x1 + #define SGI_CONFIG_MASK 0x0F #define SGI_CONFIG_SHIFT 0x1C #define SGI_PART_NUM_MASK 0xFFF diff --git a/Platform/ARM/SgiPkg/RdDanielCfgM/RdDanielCfgM.dsc b/Platform/A= RM/SgiPkg/RdDanielCfgM/RdDanielCfgM.dsc new file mode 100644 index 000000000000..a76a9ad715ad --- /dev/null +++ b/Platform/ARM/SgiPkg/RdDanielCfgM/RdDanielCfgM.dsc @@ -0,0 +1,51 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +##########################################################################= ###### +# +# Defines Section - statements that will be processed to create a Makefile. +# +##########################################################################= ###### +[Defines] + PLATFORM_NAME =3D RdDanielCfgM + PLATFORM_GUID =3D d301ac4e-0828-4cef-b754-34ca9b6781b5 + PLATFORM_VERSION =3D 0.1 + DSC_SPECIFICATION =3D 0x0001001B + OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES =3D AARCH64|ARM + BUILD_TARGETS =3D NOOPT|DEBUG|RELEASE + SKUID_IDENTIFIER =3D DEFAULT + FLASH_DEFINITION =3D Platform/ARM/SgiPkg/SgiPlatform.fdf + BOARD_DXE_FV_COMPONENTS =3D Platform/ARM/SgiPkg/RdDanielCfgM/RdDa= nielCfgM.fdf.inc + BUILD_NUMBER =3D 1 + +# include common definitions from SgiPlatform.dsc +!include Platform/ARM/SgiPkg/SgiPlatform.dsc.inc + +##########################################################################= ###### +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +##########################################################################= ###### + +[PcdsFixedAtBuild.common] + # GIC Base Addresses + gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000 + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x30140000 + gArmSgiTokenSpaceGuid.PcdGicSize|0x200000 + + # ARM Cores and Clusters + gArmPlatformTokenSpaceGuid.PcdCoreCount|1 + gArmPlatformTokenSpaceGuid.PcdClusterCount|16 + +##########################################################################= ###### +# +# Components Section - list of all EDK II Modules needed by this Platform +# +##########################################################################= ###### + +[Components.common] + Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgMAcpiTables.inf diff --git a/Platform/ARM/SgiPkg/RdDanielCfgM/RdDanielCfgM.fdf.inc b/Platfo= rm/ARM/SgiPkg/RdDanielCfgM/RdDanielCfgM.fdf.inc new file mode 100644 index 000000000000..6a99bdbbbed1 --- /dev/null +++ b/Platform/ARM/SgiPkg/RdDanielCfgM/RdDanielCfgM.fdf.inc @@ -0,0 +1,10 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +# Per-platform additional content of the DXE phase firmware volume + + # ACPI support + INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgM= AcpiTables.inf --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57340): https://edk2.groups.io/g/devel/message/57340 Mute This Topic: https://groups.io/mt/73009400/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57341+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57341+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868782; cv=none; d=zohomail.com; s=zohoarc; b=hEJaMF8mwy1f6xXlnKIIN2X2UPDvpVWfQFb+515i8EIuN+RbmdYQH+4f4Cch4Ni6l9U+GN48RfvLBdzX/JpkuPAZgl4ohOZQX364kSyRYPy1MYXTwB6Fbfp8aYbX9YdLwwvgYLnUGbgAq2nwBGXlkv8K8nCd7EWmEeprCy25wu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868782; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=G516Ph+QWaTgR9znLpv4ZQQRJHx1OeczmTwZTd8dpww=; b=Iz2pHK2z+d/VNW+l1VkqEyaAtLxkPeCfJBIiRWKFublqROCTa3zbuMJ2nI9lWZ4dKfxadMALbhwRuK4lU2PqK2p4R2tjjv9Ap98lzFeak9uzS05PeEvQs9S7z4pQSWsqDA5DdLnyofcCx/So964GH3Wr9mett0LAL7Nrd0ThtD8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57341+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586868782075934.4771991745856; Tue, 14 Apr 2020 05:53:02 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id fmmZYY1788612xVXZcvOVITz; Tue, 14 Apr 2020 05:53:01 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.10177.1586868781184250480 for ; Tue, 14 Apr 2020 05:53:01 -0700 X-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 D9D5430E; Tue, 14 Apr 2020 05:53:00 -0700 (PDT) X-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 31CBD3F73D; Tue, 14 Apr 2020 05:52:58 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 7/9] Platform/ARM/Sgi: Add ACPI tables for RD-Daniel Config-XLR Date: Tue, 14 Apr 2020 18:22:06 +0530 Message-Id: <20200414125208.2878-8-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: p98D3Gu7O2AT24VJmiwvrDJXx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868781; bh=RdlVXZ/6x1fhRFcgpE2NTUnxlZdag0wO5rs9zmQFBwM=; h=Cc:Date:From:Reply-To:Subject:To; b=PHvwl27kwUwfaZkN2528VQ31ZOlHno+SkheXk6Y+OkOkq2xv41JQUHyCf+u9e5NKjHm ccGhRFI4eSywm05rr/ItrcTa8FqN0B3bK1qFcqVSj64ru8f6M7tgKKQpgHzRzL91DbalH mr5SfrJ+nUvVIKLSOZV0/lDihBBzkB7RHFs= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Add Madt, Dsdt and Srat ACPI tables that are specific for RD-Daniel Config-XLR platform. Reuse the rest of the shared ACPI tables in SgiPkg. Signed-off-by: Aditya Angadi Reviewed-by: Thomas Abraham --- Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Dsdt.asl | 125 ++++++++= ++++++++ Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Madt.aslc | 158 ++++++++= ++++++++++++ Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Srat.aslc | 102 ++++++++= +++++ Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf | 84 ++++++++= +++ Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h | 19 +++ 5 files changed, 488 insertions(+) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Dsdt.asl b/Platf= orm/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Dsdt.asl new file mode 100644 index 000000000000..23ada55ec4a1 --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Dsdt.asl @@ -0,0 +1,125 @@ +/** @file +* Differentiated System Description Table Fields (DSDT) +* +* Copyright (c) 2020, ARM Limited. All rights reserved. +* +* This program and the accompanying materials are licensed and made avail= able +* under the terms and conditions of the BSD License which accompanies this +* distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. +* +**/ + +#include "SgiPlatform.h" +#include "SgiAcpiHeader.h" + +DefinitionBlock ("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARMSGI", + EFI_ACPI_ARM_OEM_REVISION) { + Scope (_SB) { + + Device (CP00) { // Zeus core 0 + Name (_HID, "ACPI0007") + Name (_UID, 0) + Name (_STA, 0xF) + } + + Device (CP01) { // Zeus core 1 + Name (_HID, "ACPI0007") + Name (_UID, 1) + Name (_STA, 0xF) + } + + Device (CP02) { // Zeus core 2 + Name (_HID, "ACPI0007") + Name (_UID, 2) + Name (_STA, 0xF) + } + + Device (CP03) { // Zeus core 3 + Name (_HID, "ACPI0007") + Name (_UID, 3) + Name (_STA, 0xF) + } + + Device (CP04) { // Zeus core 4 + Name (_HID, "ACPI0007") + Name (_UID, 4) + Name (_STA, 0xF) + } + + Device (CP05) { // Zeus core 5 + Name (_HID, "ACPI0007") + Name (_UID, 5) + Name (_STA, 0xF) + } + + Device (CP06) { // Zeus core 6 + Name (_HID, "ACPI0007") + Name (_UID, 6) + Name (_STA, 0xF) + } + + Device (CP07) { // Zeus core 7 + Name (_HID, "ACPI0007") + Name (_UID, 7) + Name (_STA, 0xF) + } + + Device (CP08) { // Zeus core 8 + Name (_HID, "ACPI0007") + Name (_UID, 8) + Name (_STA, 0xF) + } + + Device (CP09) { // Zeus core 9 + Name (_HID, "ACPI0007") + Name (_UID, 9) + Name (_STA, 0xF) + } + + Device (CP10) { // Zeus core 10 + Name (_HID, "ACPI0007") + Name (_UID, 10) + Name (_STA, 0xF) + } + + Device (CP11) { // Zeus core 11 + Name (_HID, "ACPI0007") + Name (_UID, 11) + Name (_STA, 0xF) + } + + Device (CP12) { // Zeus core 12 + Name (_HID, "ACPI0007") + Name (_UID, 12) + Name (_STA, 0xF) + } + + Device (CP13) { // Zeus core 13 + Name (_HID, "ACPI0007") + Name (_UID, 13) + Name (_STA, 0xF) + } + + Device (CP14) { // Zeus core 14 + Name (_HID, "ACPI0007") + Name (_UID, 14) + Name (_STA, 0xF) + } + + Device (CP15) { // Zeus core 15 + Name (_HID, "ACPI0007") + Name (_UID, 15) + Name (_STA, 0xF) + } + + Device (CP16) { // Zeus core 16 + Name (_HID, "ACPI0007") + Name (_UID, 16) + Name (_STA, 0xF) + } + } // Scope(_SB) +} diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Madt.aslc b/Plat= form/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Madt.aslc new file mode 100644 index 000000000000..986ba2791e12 --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Madt.aslc @@ -0,0 +1,158 @@ +/** @file +* Multiple APIC Description Table (MADT) +* +* Copyright (c) 2020, ARM Limited. All rights reserved. +* +* This program and the accompanying materials are licensed and made avail= able +* under the terms and conditions of the BSD License which accompanies this +* distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. +* +**/ + +#include "SgiPlatform.h" +#include "SgiAcpiHeader.h" +#include +#include +#include +#include + +#define CHIPS FixedPcdGet32(PcdChipCount) +#define CORES (FixedPcdGet32 (PcdClusterCount) * \ + FixedPcdGet32 (PcdCoreCount)) + + +// Multiple APIC Description Table +#pragma pack (1) + +typedef struct { + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header; + EFI_ACPI_6_2_GIC_STRUCTURE GicInterfaces[CORES= * CHIPS]; + EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; + EFI_ACPI_6_2_GICR_STRUCTURE GicRedistributor[CH= IPS]; + EFI_ACPI_6_2_GIC_ITS_STRUCTURE GicIts[4]; +} EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE; + +#pragma pack () + +STATIC EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE Madt =3D { + { + ARM_ACPI_HEADER ( + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE, + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION + ), + // MADT specific fields + 0, // LocalApicAddress + 0 // Flags + }, + { + // Format: EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, = Flags, + // PmuIrq, GicBase, GicVBase, + // GicHBase, GsivId, GicRBase, + // Efficiency) + // Note: The GIC Structure of the primary CPU must be the first entry + // (see note in 5.2.12.14 GICC Structure of ACPI v6.2). + //Chip 0 + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core0 + 0, 0, GET_MPID(0x0, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core1 + 0, 1, GET_MPID(0x100, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core2 + 0, 2, GET_MPID(0x200, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core3 + 0, 3, GET_MPID(0x300, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + + // Chip 1 + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core0 + 0, 0, GET_MPID(0x01000000ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core1 + 0, 1, GET_MPID(0x01000100ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core2 + 0, 2, GET_MPID(0x01000200ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core3 + 0, 3, GET_MPID(0x01000300ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + + // Chip 2 + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core0 + 0, 0, GET_MPID(0x02000000ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core1 + 0, 1, GET_MPID(0x02000100ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core2 + 0, 2, GET_MPID(0x02000200ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core3 + 0, 3, GET_MPID(0x02000300ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + + // Chip 3 + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core0 + 0, 0, GET_MPID(0x03000000ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core1 + 0, 1, GET_MPID(0x03000100ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core2 + 0, 2, GET_MPID(0x03000200ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Zeus core3 + 0, 3, GET_MPID(0x03000300ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + }, + // GIC Distributor Entry + EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 (PcdGicDistributorBas= e), + 0, 3), + { + // GIC Redistributor + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributor= sBase) + SGI_REMOTE_CHIP_MEM_OFFSET(0), + SIZE_16MB), + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributor= sBase) + SGI_REMOTE_CHIP_MEM_OFFSET(1), + SIZE_16MB), + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributor= sBase) + SGI_REMOTE_CHIP_MEM_OFFSET(2), + SIZE_16MB), + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributor= sBase) + SGI_REMOTE_CHIP_MEM_OFFSET(3), + SIZE_16MB) + }, + // GIC ITS + { + EFI_ACPI_6_2_GIC_ITS_INIT(0, 0x30040000), + EFI_ACPI_6_2_GIC_ITS_INIT(1, 0x30080000), + EFI_ACPI_6_2_GIC_ITS_INIT(2, 0x300C0000), + EFI_ACPI_6_2_GIC_ITS_INIT(3, 0x30100000), + }, +}; + +// +// Reference the table being generated to prevent the optimizer from remov= ing +// the data structure from the executable +// +VOID* CONST ReferenceAcpiTable =3D &Madt; diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Srat.aslc b/Plat= form/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Srat.aslc new file mode 100644 index 000000000000..fd5eb7ba170e --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlr/Srat.aslc @@ -0,0 +1,102 @@ +/** @file +* Static Resource Affinity Table (SRAT) +* +* Copyright (c) 2020, ARM Limited. All rights reserved. +* +* SPDX-License-Identifier: BSD-2-Clause-Patent +* +**/ + +#include "SgiAcpiHeader.h" +#include +#include +#include + +// +// Static Resource Affinity Table +// +#pragma pack (1) + +typedef struct { + EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER Header; + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE Memory[8]; + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE Gicc[16]; +} EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE; + +#pragma pack () + +EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE Srat =3D { + // Header + { + ARM_ACPI_HEADER ( + EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE, + EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE, + EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION + ), + 0x00000001, + EFI_ACPI_RESERVED_QWORD + }, + // Memory Affinity + { + // Chip 0 (2GB and 6GB) + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x0, PcdSystemMemoryBase, PcdSystemMemorySize, 0x00000001), + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x0, PcdDramBlock2Base, PcdDramBlock2Size, 0x00000001), + + // Chip 1 (2GB and 6GB) + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x1, PcdDramBlock1BaseRemote1, PcdDramBlock1SizeRemote1, 0x00000001), + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x1, PcdDramBlock2BaseRemote1, PcdDramBlock2SizeRemote1, 0x00000001), + + // Chip 2 (2GB and 6GB) + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x2, PcdDramBlock1BaseRemote2, PcdDramBlock1SizeRemote2, 0x00000001), + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x2, PcdDramBlock2BaseRemote2, PcdDramBlock2SizeRemote2, 0x00000001), + + // Chip 3 (2GB and 6GB) + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT( + 0x3, PcdDramBlock1BaseRemote3, PcdDramBlock1SizeRemote3, 0x00000001), + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT( + 0x3, PcdDramBlock2BaseRemote3, PcdDramBlock2SizeRemote3, 0x00000001), + }, + // Processor Affinity + { + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000000, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000001, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000002, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000003, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x00000004, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x00000005, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x00000006, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x00000007, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x2, 0x00000008, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x2, 0x00000009, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x2, 0x0000000A, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x2, 0x0000000B, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x3, 0x0000000C, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x3, 0x0000000D, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x3, 0x0000000E, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x3, 0x0000000F, 0x00000001, 0x00000000), + }, +}; + +VOID* CONST ReferenceAcpiTable =3D &Srat; diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf b/= Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf new file mode 100644 index 000000000000..d05f025b108c --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf @@ -0,0 +1,84 @@ +## @file +# ACPI table data and ASL sources required to boot the platform. +# +# Copyright (c) 2020, ARM Ltd. All rights reserved. +# +# This program and the accompanying materials are licensed and made avail= able +# under the terms and conditions of the BSD License which accompanies this +# distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. +# +## + +[Defines] + INF_VERSION =3D 0x0001001A + BASE_NAME =3D RdDanielCfgXlrAcpiTables + FILE_GUID =3D c712719a-0aaf-438c-9cdd-35ab4d60207d = # gArmSgiAcpiTablesGuid + MODULE_TYPE =3D USER_DEFINED + VERSION_STRING =3D 1.0 + +[Sources] + Dbg2.aslc + SsdtRos.asl + Fadt.aslc + Gtdt.aslc + Iort.aslc + Mcfg.aslc + RdDanielCfgXlr/Dsdt.asl + RdDanielCfgXlr/Madt.aslc + RdDanielCfgXlr/Srat.aslc + Spcr.aslc + +[Packages] + ArmPkg/ArmPkg.dec + ArmPlatformPkg/ArmPlatformPkg.dec + EmbeddedPkg/EmbeddedPkg.dec + MdePkg/MdePkg.dec + Platform/ARM/SgiPkg/SgiPlatform.dec + +[FixedPcd] + gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase + gArmPlatformTokenSpaceGuid.PL011UartInterrupt + + gArmTokenSpaceGuid.PcdSystemMemoryBase + gArmTokenSpaceGuid.PcdSystemMemorySize + gArmSgiTokenSpaceGuid.PcdDramBlock2Base + gArmSgiTokenSpaceGuid.PcdDramBlock2Size + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote1 + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote2 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote2 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote2 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote2 + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote3 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote3 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote3 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote3 + + gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum + gArmTokenSpaceGuid.PcdGicDistributorBase + gArmTokenSpaceGuid.PcdGicRedistributorsBase + gArmTokenSpaceGuid.PcdGenericWatchdogControlBase + gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase + gArmTokenSpaceGuid.PcdPciBusMin + gArmTokenSpaceGuid.PcdPciBusMax + + gArmSgiTokenSpaceGuid.PcdVirtioBlkBaseAddress + gArmSgiTokenSpaceGuid.PcdVirtioBlkSize + gArmSgiTokenSpaceGuid.PcdVirtioBlkInterrupt + gArmSgiTokenSpaceGuid.PcdVirtioNetBaseAddress + gArmSgiTokenSpaceGuid.PcdVirtioNetSize + gArmSgiTokenSpaceGuid.PcdVirtioNetInterrupt + + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress diff --git a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h b/Platform/ARM/Sgi= Pkg/Include/SgiAcpiHeader.h index ecb0d4eccf24..16077a62f4db 100644 --- a/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h +++ b/Platform/ARM/SgiPkg/Include/SgiAcpiHeader.h @@ -100,4 +100,23 @@ EFI_ACPI_RESERVED_DWORD /* DiscoveryRangeLength */ = \ } =20 +// EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE +#define EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT( = \ + ProximityDomain, Base, Length, Flags) = \ + { = \ + 1, sizeof (EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE), ProximityDomain, = \ + EFI_ACPI_RESERVED_WORD, FixedPcdGet64 (Base) & 0xffffffff, = \ + FixedPcdGet64 (Base) >> 32, FixedPcdGet64 (Length) & 0xffffffff, = \ + FixedPcdGet64 (Length) >> 32, EFI_ACPI_RESERVED_DWORD, Flags, = \ + EFI_ACPI_RESERVED_QWORD = \ + } + +// EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE +#define EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT( = \ + ProximityDomain, ACPIProcessorUID, Flags, ClockDomain) = \ + { = \ + 3, sizeof (EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE), ProximityDomain, = \ + ACPIProcessorUID, Flags, ClockDomain = \ + } + #endif /* __SGI_ACPI_HEADER__ */ --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57341): https://edk2.groups.io/g/devel/message/57341 Mute This Topic: https://groups.io/mt/73009401/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57342+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57342+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868784; cv=none; d=zohomail.com; s=zohoarc; b=icM6e0w9ihPTTNbiNCZ5WhJRZJlwhomuVCxRnXNhvGW5VHMi0+sxy8MMRKjd8Ldr1XVODAm0n5IYiLiEZrVHSVxKkZVFIhTz9cOAscLRh/2Vlf7p9Z6oL7wRbJEB7hBWcXz38RzeV+j5Mlf/l3Jc6Tx7EuqRBmrrpgnCRDxvcNc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868784; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=XtGzaPhB/w9iFnFs2gMdk1lFUsC+niEgc73JkhYSWoE=; b=NCljTcOV5Hmu23mm82UB3VyqfeCawBxTmPJVBnNA/i44PEFpQ3EmqTzvuxGn3r3RINw8dC+pQ5OYIsji72uZ24QzjjmymsxEmC2UeUvJQtA3HEzME+oQslYHVZUv1cJsSnGOxrj2m38lDXV3+loiAWpFCq+NkMvQn1V3nnqOGI8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57342+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 158686878424865.30824891180043; Tue, 14 Apr 2020 05:53:04 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id S5liYY1788612xcOhLac6ZYH; Tue, 14 Apr 2020 05:53:03 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.10417.1586868783382664448 for ; Tue, 14 Apr 2020 05:53:03 -0700 X-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 0CB2A30E; Tue, 14 Apr 2020 05:53:03 -0700 (PDT) X-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 58F883F73D; Tue, 14 Apr 2020 05:53:01 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 8/9] Platform/ARM/Sgi: Add initial support for RD-Daniel Config-XLR platform Date: Tue, 14 Apr 2020 18:22:07 +0530 Message-Id: <20200414125208.2878-9-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: Z0niSOqQdzpu3qqJfJ3darUox1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868783; bh=iBYfVz1gMPGFdDH+HozEmr7i4U3jlp6vPIphITSEF7E=; h=Cc:Date:From:Reply-To:Subject:To; b=rLLNUmCVZlcaWzHLIAaOaTs51ryu4spzq64PCSubB0c/uGPGUA0NGaf/4v89ctTkhYe redbphVzWxdixcL1gOWiXhxBLlJvp2Mp2gqv5PJtB89DlDDDFD1FUZb2tnuQwrcNYOk1D NCFPWOoOXi8+xeFMWSUX7p+I0d718l061ug= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Arm's RD-Daniel Config-XLR platform is a quad chip platform with each chip having four Neoverse cores and 8GB of RAM attached to it. These chips are coherently connected over CCIX interface. Add initial support for this platform. Signed-off-by: Aditya Angadi Reviewed-by: Thomas Abraham --- Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf | 3 + Platform/ARM/SgiPkg/Include/SgiPlatform.h | 1 + Platform/ARM/SgiPkg/RdDanielCfgXlr/RdDanielCfgXlr.dsc | 70 +++++++++= +++++++++++ Platform/ARM/SgiPkg/RdDanielCfgXlr/RdDanielCfgXlr.fdf.inc | 10 +++ 4 files changed, 84 insertions(+) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf b/= Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf index d05f025b108c..e6bd2039dd55 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf @@ -42,12 +42,15 @@ [Packages] [FixedPcd] gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase gArmPlatformTokenSpaceGuid.PL011UartInterrupt + gArmPlatformTokenSpaceGuid.PcdCoreCount + gArmPlatformTokenSpaceGuid.PcdClusterCount =20 gArmTokenSpaceGuid.PcdSystemMemoryBase gArmTokenSpaceGuid.PcdSystemMemorySize gArmSgiTokenSpaceGuid.PcdDramBlock2Base gArmSgiTokenSpaceGuid.PcdDramBlock2Size =20 + gArmSgiTokenSpaceGuid.PcdChipCount gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote1 gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote1 gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote1 diff --git a/Platform/ARM/SgiPkg/Include/SgiPlatform.h b/Platform/ARM/SgiPk= g/Include/SgiPlatform.h index a9d8d70f8667..f371450023b3 100644 --- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h +++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.h @@ -73,6 +73,7 @@ // RD-Daniel Platform Identification values #define RD_DANIEL_PART_NUM 0x78A #define RD_DANIEL_CFGM_CONF_ID 0x1 +#define RD_DANIEL_CFGXLR_CONF_ID 0x2 =20 #define SGI_CONFIG_MASK 0x0F #define SGI_CONFIG_SHIFT 0x1C diff --git a/Platform/ARM/SgiPkg/RdDanielCfgXlr/RdDanielCfgXlr.dsc b/Platfo= rm/ARM/SgiPkg/RdDanielCfgXlr/RdDanielCfgXlr.dsc new file mode 100644 index 000000000000..e949fe46447e --- /dev/null +++ b/Platform/ARM/SgiPkg/RdDanielCfgXlr/RdDanielCfgXlr.dsc @@ -0,0 +1,70 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +##########################################################################= ###### +# +# Defines Section - statements that will be processed to create a Makefile. +# +##########################################################################= ###### +[Defines] + PLATFORM_NAME =3D RdDanielCfgXlr + PLATFORM_GUID =3D 082f1695-b92a-4761-a7e3-f577938cc9eb + PLATFORM_VERSION =3D 0.1 + DSC_SPECIFICATION =3D 0x0001001B + OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES =3D AARCH64|ARM + BUILD_TARGETS =3D NOOPT|DEBUG|RELEASE + SKUID_IDENTIFIER =3D DEFAULT + FLASH_DEFINITION =3D Platform/ARM/SgiPkg/SgiPlatform.fdf + BOARD_DXE_FV_COMPONENTS =3D Platform/ARM/SgiPkg/RdDanielCfgXlr/Rd= DanielCfgXlr.fdf.inc + BUILD_NUMBER =3D 1 + +# include common definitions from SgiPlatform.dsc +!include Platform/ARM/SgiPkg/SgiPlatform.dsc.inc + +##########################################################################= ###### +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +##########################################################################= ###### + +[PcdsFixedAtBuild.common] + # GIC Base Addresses + gArmTokenSpaceGuid.PcdGicDistributorBase|0x30000000 + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x30140000 + gArmSgiTokenSpaceGuid.PcdGicSize|0x200000 + + # ARM Cores and Clusters + gArmPlatformTokenSpaceGuid.PcdCoreCount|1 + gArmPlatformTokenSpaceGuid.PcdClusterCount|4 + + # Number of chips on the platform + gArmSgiTokenSpaceGuid.PcdChipCount|4 + + # Remote chip memory base and size + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote1|0x40080000000 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote1|0x80000000 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote1|0x48080000000 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote1|0x180000000 + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote2|0x80080000000 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote2|0x80000000 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote2|0x88080000000 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote2|0x180000000 + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote3|0xC0080000000 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote3|0x80000000 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote3|0xC8080000000 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote3|0x180000000 + +##########################################################################= ###### +# +# Components Section - list of all EDK II Modules needed by this Platform +# +##########################################################################= ###### + +[Components.common] + Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgXlrAcpiTables.inf diff --git a/Platform/ARM/SgiPkg/RdDanielCfgXlr/RdDanielCfgXlr.fdf.inc b/Pl= atform/ARM/SgiPkg/RdDanielCfgXlr/RdDanielCfgXlr.fdf.inc new file mode 100644 index 000000000000..0c50caf63860 --- /dev/null +++ b/Platform/ARM/SgiPkg/RdDanielCfgXlr/RdDanielCfgXlr.fdf.inc @@ -0,0 +1,10 @@ +# +# Copyright (c) 2020, ARM Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +# Per-platform additional content of the DXE phase firmware volume + + # ACPI support + INF RuleOverride=3DACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdDanielCfgX= lrAcpiTables.inf --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57342): https://edk2.groups.io/g/devel/message/57342 Mute This Topic: https://groups.io/mt/73009402/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun May 19 02:06:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+57343+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57343+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1586868786; cv=none; d=zohomail.com; s=zohoarc; b=V5/Y2RE9M3H6Bql6KPsMOBlsiJpevOGFa+c5CgEHUdi4VPQIEcYh0Mjxqm+4mD0kDEfpt85bYEedNFuAbWOyCVMtXpK8W2xoWPuFfyxvsHx6vqn4lhAPbuV2v4uyJZnsY1Wcu0dtOyeB15SQpAcPr1WA9ioZF1rbXNUi2t7+0vg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586868786; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=qrP7+6LSfKPjH3ecC4B6aVlga1zP79XtVkiEDHlhS68=; b=FkbmZYFtXKy4h9YQUL4TL/YGZSlPTYMwYsRmy/G+/AJtQ7Ynh/ntBbdb8/gZw6qvEWan7wWWbDjzf8CCEpYSbRRe3lrKJalWhXo50bC9crQXN/O9bQuRbDnMmr+oT1JtowjomRUXeoypuJFrjHsZpkfRP/U0d/+EpKW5x89rfng= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+57343+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1586868786734968.5148661872034; Tue, 14 Apr 2020 05:53:06 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 7dNSYY1788612xbPWZKsjJ8d; Tue, 14 Apr 2020 05:53:06 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.10179.1586868785896233399 for ; Tue, 14 Apr 2020 05:53:06 -0700 X-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 6EE8030E; Tue, 14 Apr 2020 05:53:05 -0700 (PDT) X-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 8033E3F73D; Tue, 14 Apr 2020 05:53:03 -0700 (PDT) From: "Aditya Angadi" To: devel@edk2.groups.io Cc: thomas.abraham@arm.com, ard.biesheuvel@arm.com, leif@nuviainc.com, Vijayenthiran Subramaniam , Aditya Angadi Subject: [edk2-devel] [edk2-platforms][PATCH v4 9/9] Platform/ARM/Sgi: Add SRAT table for RdN1Edge dual-chip platform Date: Tue, 14 Apr 2020 18:22:08 +0530 Message-Id: <20200414125208.2878-10-aditya.angadi@arm.com> In-Reply-To: <20200414125208.2878-1-aditya.angadi@arm.com> References: <20200414125208.2878-1-aditya.angadi@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,aditya.angadi@arm.com X-Gm-Message-State: L0ne1dP5sK1jqWrqj5UXnXxex1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1586868786; bh=YCf2GhZj2aB/TQfpxIv4rZ5fxriw0sJ+bd8VLGiKOwA=; h=Cc:Date:From:Reply-To:Subject:To; b=NZcVJPfXIYjLhJ/jAScud6S5AMsqV8vOWz8SF4Ewo/8pSoGEN+4r+gc+VU9eMKP6XxJ HXxQnwl1VMKLOSOgmvwtaE5ObsZ3fAR4Km6a+wCjVi/zC6186zluhZvfMrtzn4ePVRPes Im2i05GDTwHahx0U/XUeAHdvmsBWFVqRQN8= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Vijayenthiran Subramaniam The RD-N1-Edge dual chip platform has an additional 8GB of memory connected to the second chip. Add the SRAT ACPI table to describe the proximity domain, base address and size of this memory. Signed-off-by: Aditya Angadi Reviewed-by: Thomas Abraham --- Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Srat.aslc | 90 +++++++++++++= +++++++ Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf | 11 +++ Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.dsc | 9 ++ 3 files changed, 110 insertions(+) diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Srat.aslc b/Platform= /ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Srat.aslc new file mode 100644 index 000000000000..1229a67d2574 --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Srat.aslc @@ -0,0 +1,90 @@ +/** @file +* Static Resource Affinity Table (SRAT) +* +* Copyright (c) 2020, ARM Limited. All rights reserved. +* +* SPDX-License-Identifier: BSD-2-Clause-Patent +* +**/ + +#include "SgiAcpiHeader.h" +#include +#include +#include + +// +// Static Resource Affinity Table +// +#pragma pack (1) + +typedef struct { + EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER Header; + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE Memory[4]; + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE Gicc[16]; +} EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE; + +#pragma pack () + +EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE Srat =3D { + // Header + { + ARM_ACPI_HEADER ( + EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE, + EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE, + EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION + ), + 0x00000001, + EFI_ACPI_RESERVED_QWORD + }, + // Memory Affinity + { + // Chip 0 (2GB and 6GB) + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x0, PcdSystemMemoryBase, PcdSystemMemorySize, 0x00000001), + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x0, PcdDramBlock2Base, PcdDramBlock2Size, 0x00000001), + + // Chip 1 (2GB and 6GB) + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x1, PcdDramBlock1BaseRemote1, PcdDramBlock1SizeRemote1, 0x00000001), + EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT ( + 0x1, PcdDramBlock2BaseRemote1, PcdDramBlock2SizeRemote1, 0x00000001), + }, + // Processor Affinity + { + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000000, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000001, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000002, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000003, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000004, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000005, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000006, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x0, 0x00000007, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x00000008, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x00000009, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x0000000A, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x0000000B, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x0000000C, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x0000000D, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x0000000E, 0x00000001, 0x00000000), + EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT ( + 0x1, 0x0000000F, 0x00000001, 0x00000000), + }, +}; + +VOID* CONST ReferenceAcpiTable =3D &Srat; diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf b/Plat= form/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf index 75f8e6dd6685..474a72d7d378 100644 --- a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf @@ -23,6 +23,7 @@ [Sources] Mcfg.aslc RdN1Edge/Dsdt.asl RdN1EdgeX2/Madt.aslc + RdN1EdgeX2/Srat.aslc Spcr.aslc Ssdt.asl =20 @@ -39,6 +40,16 @@ [FixedPcd] gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase gArmPlatformTokenSpaceGuid.PL011UartInterrupt =20 + gArmTokenSpaceGuid.PcdSystemMemoryBase + gArmTokenSpaceGuid.PcdSystemMemorySize + gArmSgiTokenSpaceGuid.PcdDramBlock2Base + gArmSgiTokenSpaceGuid.PcdDramBlock2Size + + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote1 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote1 + gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum gArmTokenSpaceGuid.PcdArmArchTimerIntrNum gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum diff --git a/Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.dsc b/Platform/ARM/S= giPkg/RdN1EdgeX2/RdN1EdgeX2.dsc index ca6db012192a..386cba7d1fdd 100644 --- a/Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.dsc +++ b/Platform/ARM/SgiPkg/RdN1EdgeX2/RdN1EdgeX2.dsc @@ -41,6 +41,15 @@ [PcdsFixedAtBuild.common] gArmPlatformTokenSpaceGuid.PcdCoreCount|4 gArmPlatformTokenSpaceGuid.PcdClusterCount|2 =20 + # Number of chips on the platform + gArmSgiTokenSpaceGuid.PcdChipCount|2 + + # Remote chip memory base and size + gArmSgiTokenSpaceGuid.PcdDramBlock1BaseRemote1|0x40080000000 + gArmSgiTokenSpaceGuid.PcdDramBlock1SizeRemote1|0x80000000 + gArmSgiTokenSpaceGuid.PcdDramBlock2BaseRemote1|0x48080000000 + gArmSgiTokenSpaceGuid.PcdDramBlock2SizeRemote1|0x180000000 + ##########################################################################= ###### # # Components Section - list of all EDK II Modules needed by this Platform --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57343): https://edk2.groups.io/g/devel/message/57343 Mute This Topic: https://groups.io/mt/73009403/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-