From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR03-DB5-obe.outbound.protection.outlook.com (EUR03-DB5-obe.outbound.protection.outlook.com [40.107.4.58]) by mx.groups.io with SMTP id smtpd.web09.2975.1638910332159172719 for ; Tue, 07 Dec 2021 12:52:13 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=CdEX4beb; spf=pass (domain: arm.com, ip: 40.107.4.58, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r1bMEnkK/8cF40iZX+0k/HTALoOA0QR5jxocWkA4Rlg=; b=CdEX4bebBHED8xHgRzgs0YQglQPGxeCRdQGTZRiX4x5mL8Ppbp3+E52ADkFcoTrDzdalDzGgcZKhSDsqYbeITNtt8CZGUxyYRENnlgFcuocUUOrnYurTvngc2IJ6HDEuyNsxRq0p4mKcWG/cnrqbgUP19D5s6mNvdbEvvhk4v9k= Received: from AS9PR06CA0280.eurprd06.prod.outlook.com (2603:10a6:20b:45a::17) by AM6PR08MB4833.eurprd08.prod.outlook.com (2603:10a6:20b:ce::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.19; Tue, 7 Dec 2021 20:52:04 +0000 Received: from AM5EUR03FT010.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45a:cafe::33) by AS9PR06CA0280.outlook.office365.com (2603:10a6:20b:45a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11 via Frontend Transport; Tue, 7 Dec 2021 20:52:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT010.mail.protection.outlook.com (10.152.16.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.13 via Frontend Transport; Tue, 7 Dec 2021 20:52:04 +0000 Received: ("Tessian outbound 9a8c656e7c94:v110"); Tue, 07 Dec 2021 20:52:04 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: cc4d5be850bb9502 X-CR-MTA-TID: 64aa7808 Received: from 3b7332463fa0.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 96AEF67B-3D11-44EE-B659-A426A14AA252.1; Tue, 07 Dec 2021 20:51:44 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3b7332463fa0.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 07 Dec 2021 20:51:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m0lmyEvg+x1y2SzeU2ErngQ8J8rYtW4iJcarOJLL5zVx/6ik3XljTsQwNxC8sMLsAY69uayDXzE9paCpzk1yNDL4GtRUF1/D+DiVBy39JWEO85b8gWgCci08gXTEeqXX7ifYPfTjikPOgUTjgWkLNbeWxR6HL+Rh3Tu1X46VjBm034CWpmoo8vBifZRohw2YoQJ48GeINQ6L0NtPsrQiUJQ4UzZ6uL3upkoLLZm4gRP5Hs4DmRKpJci/llr2cEAUkfK+uU+KCAYCHph1MGP0OlJe19xotgKVBoYw9dp21OVxT4vbHzuox8onGugXqB+dUYTvCF/jM1ltT+KXsUv/Ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=r1bMEnkK/8cF40iZX+0k/HTALoOA0QR5jxocWkA4Rlg=; b=bwyYsjQ5xxBvyrOBbCfEl3+3b6wmNq4JFvS/+p45MC7TC3wdlRVK8X/WAPYw3kQa/SbTJahgcOn4K98relbDD6Mn9gu8tcTvTsDuohxtEpZtnCFLZorguILLOXlrfN7Ny651hc/EE8PQb+E7LNxxMh9W9ydXdzTvZUFxc4QfgpoGpLbmL8fTE0SKU1PTB9cesXi3FHZzJVDdUEg84HxLYgj+E9F4gGB5z90WEWktMmxQpKpahzRLiXciiZrymczP6KbvxeSVtj7Lpm6ujVAqEZ2q7mPFz61QPt5MvflhTFs3KXZhzVQU0cUmLtEwhrFgfdJU4gjwL4B+E0htC0Q4OQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r1bMEnkK/8cF40iZX+0k/HTALoOA0QR5jxocWkA4Rlg=; b=CdEX4bebBHED8xHgRzgs0YQglQPGxeCRdQGTZRiX4x5mL8Ppbp3+E52ADkFcoTrDzdalDzGgcZKhSDsqYbeITNtt8CZGUxyYRENnlgFcuocUUOrnYurTvngc2IJ6HDEuyNsxRq0p4mKcWG/cnrqbgUP19D5s6mNvdbEvvhk4v9k= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) by AM5PR0802MB2529.eurprd08.prod.outlook.com (2603:10a6:203:9e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16; Tue, 7 Dec 2021 20:51:41 +0000 Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::bdcf:cfa6:b2bb:38ac]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::bdcf:cfa6:b2bb:38ac%6]) with mapi id 15.20.4755.021; Tue, 7 Dec 2021 20:51:41 +0000 Subject: Re: [edk2-platforms][PATCH V1 04/11] Platform/ARM/Morello: Add ConfigurationManager for Morello SoC To: Chandni Cherukuri , devel@edk2.groups.io Cc: Ard Biesheuvel , Leif Lindholm , nd References: <20211204123042.32140-1-chandni.cherukuri@arm.com> <20211204123042.32140-5-chandni.cherukuri@arm.com> From: "Sami Mujawar" Message-ID: <21f8cb2b-d86a-077f-27a9-49f74c60839e@arm.com> Date: Tue, 7 Dec 2021 20:51:47 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.0.1 In-Reply-To: <20211204123042.32140-5-chandni.cherukuri@arm.com> X-ClientProxiedBy: LO4P123CA0149.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:188::10) To AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) MIME-Version: 1.0 Received: from [10.1.196.43] (217.140.106.50) by LO4P123CA0149.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:188::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.24 via Frontend Transport; Tue, 7 Dec 2021 20:51:41 +0000 X-MS-Office365-Filtering-Correlation-Id: 2c001fa0-6175-4421-a2de-08d9b9c36cf8 X-MS-TrafficTypeDiagnostic: AM5PR0802MB2529:EE_|AM5EUR03FT010:EE_|AM6PR08MB4833:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:7691;OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: RA8C5h26LMwO/aiSJOIaubQdmLPFlsCe8oEs3WTsoUgYFouoFiP09ZUVjIPwq62l8RNuggImSpyy7rhu6JUpOdeJXl7IOO85MiNGLfu1WkD2DdjM8xRCmwOJqs42lq4LVfgAHGtje7Al4lBRvoStuqUmrdPLB2pQmAvmXY7yizIBxM4icRrzd94PkO5m1UDMP8MaLwyzgyqnleD0dSckKZ80MRedopUNsE4HnY9Gg2lbLRqVUzSfZDi4EbYPL5oESHMksk1exi8tkKYv2QHQNzpxWlB9InikELk6Sp7lKb7dQ4GLYCMiqwrZB/ngyb0R7Wp9LYTi8sINDakg+ZaEz5wnh4IRROh1jVH7cmd+HWG1W2lyqnhD2ZAHaE7EbAq1c2v8iiCTgqUPusR1Nli0uwfAkxTiEL03wy0P0sDo8JDhGN1HdXrXm3CUu8gKzhR0+NAn8HeoyXVAyLxB7+K1xF1BQV5nndLOBOxNSmgUJNn6MFNC8avlh2FJFLFjSlnR6Km2bZEVi4TjXZA23Ppfgx3pyVgEZrpMyv/dfCDqgHljqAPESreeSBhE4+T/FThPSrmx+GcrNTKx5sau1qEQCYY3fgjkY/Gu3tRB6+sL0wB8+mgbnYMx7IzOvuUbrXo6t9TUDmxhpN8XkLzZL04XEENUiPgBpI95zlMKU0T42ryjUloVZ0Kzxwk57W2ltaD+h3tlHTgBAl79fTEtSVJDcT+/Krt9OerHYhusFhlKsdmR+ldDWJQbyEZFTdD7S5qekya+EuFmNu2X8gMvfVidlg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6806.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(38350700002)(6486002)(31696002)(5660300002)(44832011)(38100700002)(8936002)(956004)(2906002)(16576012)(316002)(2616005)(8676002)(36756003)(508600001)(53546011)(26005)(30864003)(186003)(66476007)(66556008)(31686004)(54906003)(83380400001)(66946007)(86362001)(4326008)(19627235002)(52116002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2529 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 830fc752-49c2-4d91-29f3-08d9b9c35f26 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7XLBymXbfrYcvfcr6rrWO+AxGC+lD5/9EsB/li4Y6jrJmh5sL9KiORKFh4ZiEVMbQoqydRF3PLzI5zTeKzzOKyBBOTeUs4n2vCmwqocisJ20Y30LSeQO5lnGfIV25A4NDN12hg6k3hqeY5vsasN1MN+8p6BNDHDlmjo5ooH327JHeekozhgcCiJjg8DMM4Chmh3WGMzXv6XsoYBY/oHcT3vVYczGscEtteSuGhoWn+XQolw/4rgX/7BvPF+AzOJeOr0GoJrxHw2MeRVbP2OFSF+aBZLyiPR3PtibN+WF6L0eaFXHbtnD5lVRsiJenjEZs8DSU7uvYeXbMUOMcAjuN6ocFYOrsNbFQkXFelNV6JfgPv/JEGUHER8Yg3XQ6PCymOTdOaE2BazF055C0969SZwtVzA5fXKfQCv4gCiTr5lYBXHh3eXO6fk/07qMJ8LZOyAT/17HSHYq4YRlJDBmW4oSRXd0l6GPEbyUoYlp5SI4PZJtvo6VLaGq+TP3sAjD7FB4lwPd++vaLWb9DPbwVj2oqZMcUxtuQwokguJviqyzIgb9yUjr0NxAIpxu7aLpdd9CrWPPoCLtRckpfSzHPiXU04pz6CZHenuUeTbHvraSdybgeG4KccSsuTx51pSr0h7uJnPgOP7M+oqKb+ywfs8DpwXs8VZ9RhtKg/AXRdODeHwL3DCrQIspSiEcd44oO8T3MLEv9dw8itGjNIYEoGIezw1mUwGp046Q5o1YGiI= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(36756003)(5660300002)(47076005)(30864003)(316002)(336012)(31686004)(186003)(8936002)(19627235002)(53546011)(70206006)(508600001)(8676002)(2906002)(54906003)(26005)(956004)(36860700001)(83380400001)(44832011)(356005)(31696002)(86362001)(2616005)(6486002)(16576012)(70586007)(82310400004)(4326008)(81166007)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2021 20:52:04.6849 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2c001fa0-6175-4421-a2de-08d9b9c36cf8 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4833 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Hi Chandni, Since you have the CPU information in MADT.GICC and the PPTT table, it should be possible to use the SSDT CPU generator to create the AML description for the CPUs. This patch series can go ahead. However, you may want to consider using the SSDT Cpu Generator in the furture. Otherwise, these changes look good to me. Reviewed-by: Sami Mujawar Regards, Sami Mujawar On 04/12/2021 12:30 PM, Chandni Cherukuri wrote: > This patch implements the configuration manager for Morello > SoC platform. It enables support for generating the following > ACPI tables for Morello SoC Platform: > 1. FADT > 2. DSDT > 3. GTDT > 4. MADT > 5. SPCR > 6. DBG2 > 7. PPTT > > Signed-off-by: Chandni Cherukuri > --- > Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerSoc.dsc.inc | 16 ++ > Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxeSoc.inf | 72 +++++++++ > Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerSoc.h | 97 ++++++++++++ > Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerSoc.c | 161 ++++++++++++++++++++ > Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/AslTables/DsdtSoc.asl | 41 +++++ > 5 files changed, 387 insertions(+) > > diff --git a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerSoc.dsc.inc b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerSoc.dsc.inc > new file mode 100644 > index 000000000000..f7e58185696e > --- /dev/null > +++ b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerSoc.dsc.inc > @@ -0,0 +1,16 @@ > +## @file > +# dsc include file for Configuration Manager > +# > +# Copyright (c) 2021, ARM Limited. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > + > +[BuildOptions] > + > +[Components.common] > + # Configuration Manager > + Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxeSoc.inf > diff --git a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxeSoc.inf b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxeSoc.inf > new file mode 100644 > index 000000000000..6f9199a6fda2 > --- /dev/null > +++ b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxeSoc.inf > @@ -0,0 +1,72 @@ > +## @file > +# Configuration Manager Dxe > +# > +# Copyright (c) 2021, ARM Limited. All rights reserved.
> +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +## > + > +[Defines] > + INF_VERSION = 0x0001001B > + BASE_NAME = ConfigurationManagerDxe > + FILE_GUID = BF8FBCEE-AD95-466B-9185-50A1BB651DDA > + MODULE_TYPE = DXE_DRIVER > + VERSION_STRING = 1.0 > + ENTRY_POINT = ConfigurationManagerDxeInitialize > + > +# > +# The following information is for reference only and not required by the build tools. > +# > +# VALID_ARCHITECTURES = AARCH64 > +# > + > +[Sources] > + AslTables/DsdtSoc.asl > + ConfigurationManager.c > + ConfigurationManager.h > + ConfigurationManagerSoc.c > + ConfigurationManagerSoc.h > + Platform.h > + > +[Packages] > + ArmPkg/ArmPkg.dec > + ArmPlatformPkg/ArmPlatformPkg.dec > + DynamicTablesPkg/DynamicTablesPkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MdePkg/MdePkg.dec > + Platform/ARM/Morello/MorelloPlatform.dec > + > +[LibraryClasses] > + UefiDriverEntryPoint > + > +[Protocols] > + gEdkiiConfigurationManagerProtocolGuid > + > +[FixedPcd] > + ## PL011 Serial Debug UART > + gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase > + gArmPlatformTokenSpaceGuid.PcdSerialDbgUartBaudRate > + gArmPlatformTokenSpaceGuid.PcdSerialDbgUartClkInHz > + > + gArmPlatformTokenSpaceGuid.PL011UartClkInHz > + gArmPlatformTokenSpaceGuid.PL011UartInterrupt > + > + gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum > + gArmTokenSpaceGuid.PcdArmArchTimerIntrNum > + gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum > + gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum > + > + # SBSA Generic Watchdog > + gArmTokenSpaceGuid.PcdGenericWatchdogControlBase > + gArmTokenSpaceGuid.PcdGenericWatchdogEl2IntrNum > + gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase > + > + gArmTokenSpaceGuid.PcdGicDistributorBase > + gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase > + gArmTokenSpaceGuid.PcdGicRedistributorsBase > + > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase > + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate > + > +[Depex] > + TRUE > diff --git a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerSoc.h b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerSoc.h > new file mode 100644 > index 000000000000..8a521b83c8dc > --- /dev/null > +++ b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerSoc.h > @@ -0,0 +1,97 @@ > +/** @file > + > + Copyright (c) 2021, ARM Limited. All rights reserved.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > + @par Glossary: > + - Cm or CM - Configuration Manager > + - Obj or OBJ - Object > +**/ > + > +#ifndef SOC_CONFIGURATION_MANAGER_H_ > +#define SOC_CONFIGURATION_MANAGER_H_ > + > +#include "ConfigurationManager.h" > + > +/** The number of ACPI tables to install > +*/ > +#define PLAT_ACPI_TABLE_COUNT 7 > + > +/** A helper macro for mapping a reference token > +*/ > +#define REFERENCE_TOKEN_SOC(Field) \ > + (CM_OBJECT_TOKEN)((UINT8*)&MorelloSocRepositoryInfo + \ > + OFFSET_OF (EDKII_SOC_PLATFORM_REPOSITORY_INFO, Field)) > + > +/** C array containing the compiled AML template. > + These symbols are defined in the auto generated C file > + containing the AML bytecode array. > +*/ > +extern CHAR8 dsdtsoc_aml_code[]; > + > +/** A structure describing the SoC Platform specific information > +*/ > +typedef struct SocPlatformRepositoryInfo { > + /// List of ACPI tables > + CM_STD_OBJ_ACPI_TABLE_INFO CmAcpiTableList[PLAT_ACPI_TABLE_COUNT]; > +} EDKII_SOC_PLATFORM_REPOSITORY_INFO; > + > +/** A structure describing the platform configuration > + manager repository information > +*/ > +typedef struct PlatformRepositoryInfo { > + /// Common information > + EDKII_COMMON_PLATFORM_REPOSITORY_INFO *CommonPlatRepoInfo; > + > + /// SoC Platform specific information > + EDKII_SOC_PLATFORM_REPOSITORY_INFO *SocPlatRepoInfo; > +} EDKII_PLATFORM_REPOSITORY_INFO; > + > +extern EDKII_COMMON_PLATFORM_REPOSITORY_INFO CommonPlatformInfo; > + > +/** Return platform specific ARM namespace object. > + > + @param [in] This Pointer to the Configuration Manager Protocol. > + @param [in] CmObjectId The Configuration Manager Object ID. > + @param [in] Token An optional token identifying the object. If > + unused this must be CM_NULL_TOKEN. > + @param [in, out] CmObject Pointer to the Configuration Manager Object > + descriptor describing the requested Object. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER A parameter is invalid. > + @retval EFI_NOT_FOUND The required object information is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetArmNameSpaceObjectPlat ( > + IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST This, > + IN CONST CM_OBJECT_ID CmObjectId, > + IN CONST CM_OBJECT_TOKEN Token OPTIONAL, > + IN OUT CM_OBJ_DESCRIPTOR *CONST CmObject > + ); > + > +/** Return platform specific standard namespace object. > + > + @param [in] This Pointer to the Configuration Manager Protocol. > + @param [in] CmObjectId The Configuration Manager Object ID. > + @param [in] Token An optional token identifying the object. If > + unused this must be CM_NULL_TOKEN. > + @param [in, out] CmObject Pointer to the Configuration Manager Object > + descriptor describing the requested Object. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER A parameter is invalid. > + @retval EFI_NOT_FOUND The required object information is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetStandardNameSpaceObjectPlat ( > + IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST This, > + IN CONST CM_OBJECT_ID CmObjectId, > + IN CONST CM_OBJECT_TOKEN Token OPTIONAL, > + IN OUT CM_OBJ_DESCRIPTOR *CONST CmObject > + ); > + > +#endif // SOC_CONFIGURATION_MANAGER_H_ > diff --git a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerSoc.c b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerSoc.c > new file mode 100644 > index 000000000000..7ca8ae212a61 > --- /dev/null > +++ b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerSoc.c > @@ -0,0 +1,161 @@ > +/** @file > + Configuration Manager Dxe > + > + Copyright (c) 2021, ARM Limited. All rights reserved.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > + @par Glossary: > + - Cm or CM - Configuration Manager > + - Obj or OBJ - Object > +**/ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include "ConfigurationManagerSoc.h" > +#include "Platform.h" > + > +EDKII_SOC_PLATFORM_REPOSITORY_INFO MorelloSocRepositoryInfo = { > + // ACPI Table List > + { > + // FADT Table > + { > + EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, > + EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_REVISION, > + CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdFadt), > + NULL > + }, > + // GTDT Table > + { > + EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, > + EFI_ACPI_6_3_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION, > + CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdGtdt), > + NULL > + }, > + // MADT Table > + { > + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, > + EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION, > + CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdMadt), > + NULL > + }, > + // SPCR Table > + { > + EFI_ACPI_6_3_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE, > + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION, > + CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdSpcr), > + NULL > + }, > + // DSDT Table > + { > + EFI_ACPI_6_3_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE, > + 0, // Unused > + CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdDsdt), > + (EFI_ACPI_DESCRIPTION_HEADER *)dsdtsoc_aml_code > + }, > + // DBG2 Table > + { > + EFI_ACPI_6_3_DEBUG_PORT_2_TABLE_SIGNATURE, > + EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION, > + CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdDbg2), > + NULL > + }, > + // PPTT Table > + { > + EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE, > + EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_REVISION, > + CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdPptt), > + NULL > + }, > + }, > +}; > + > +EDKII_PLATFORM_REPOSITORY_INFO MorelloRepositoryInfo = { > + &CommonPlatformInfo, > + &MorelloSocRepositoryInfo > +}; > + > +/** Return platform specific ARM namespace object. > + > + @param [in] This Pointer to the Configuration Manager Protocol. > + @param [in] CmObjectId The Configuration Manager Object ID. > + @param [in] Token An optional token identifying the object. If > + unused this must be CM_NULL_TOKEN. > + @param [in, out] CmObject Pointer to the Configuration Manager Object > + descriptor describing the requested Object. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER A parameter is invalid. > + @retval EFI_NOT_FOUND The required object information is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetArmNameSpaceObjectPlat ( > + IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST This, > + IN CONST CM_OBJECT_ID CmObjectId, > + IN CONST CM_OBJECT_TOKEN Token OPTIONAL, > + IN OUT CM_OBJ_DESCRIPTOR *CONST CmObject > + ) > +{ > + return EFI_NOT_FOUND; > +} > + > +/** Return platform specific standard namespace object. > + > + @param [in] This Pointer to the Configuration Manager Protocol. > + @param [in] CmObjectId The Configuration Manager Object ID. > + @param [in] Token An optional token identifying the object. If > + unused this must be CM_NULL_TOKEN. > + @param [in, out] CmObject Pointer to the Configuration Manager Object > + descriptor describing the requested Object. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER A parameter is invalid. > + @retval EFI_NOT_FOUND The required object information is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetStandardNameSpaceObjectPlat ( > + IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST This, > + IN CONST CM_OBJECT_ID CmObjectId, > + IN CONST CM_OBJECT_TOKEN Token OPTIONAL, > + IN OUT CM_OBJ_DESCRIPTOR *CONST CmObject > + ) > +{ > + EFI_STATUS Status; > + EDKII_SOC_PLATFORM_REPOSITORY_INFO *PlatformRepo; > + > + if ((This == NULL) || (CmObject == NULL)) { > + ASSERT (This != NULL); > + ASSERT (CmObject != NULL); > + return EFI_INVALID_PARAMETER; > + } > + > + Status = EFI_NOT_FOUND; > + PlatformRepo = This->PlatRepoInfo->SocPlatRepoInfo; > + > + switch (GET_CM_OBJECT_ID (CmObjectId)) { > + case EStdObjAcpiTableList: > + Status = HandleCmObject ( > + CmObjectId, > + PlatformRepo->CmAcpiTableList, > + sizeof (PlatformRepo->CmAcpiTableList), > + ARRAY_SIZE (PlatformRepo->CmAcpiTableList), > + CmObject > + ); > + break; > + > + default: > + { > + break; > + } > + } > + > + return Status; > +} > diff --git a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/AslTables/DsdtSoc.asl b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/AslTables/DsdtSoc.asl > new file mode 100644 > index 000000000000..806e170515b7 > --- /dev/null > +++ b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/AslTables/DsdtSoc.asl > @@ -0,0 +1,41 @@ > +/** @file > + Differentiated System Description Table Fields (DSDT) > + > + Copyright (c) 2021, ARM Ltd. All rights reserved.
> + > + SPDX-License-Identifier: BSD-2-Clause-Patent > + > + @par Reference(s): > + - ACPI for Arm Components 1.0, Platform Design Document > + > +**/ > + > +#include "ConfigurationManager.h" > + > +DefinitionBlock("Dsdt.aml", "DSDT", 1, "ARMLTD", "MORELLO", CFG_MGR_OEM_REVISION) { > + Scope(_SB) { > + Device(CP00) { // Cluster 0, Cpu 0 > + Name(_HID, "ACPI0007") > + Name(_UID, 0) > + Name(_STA, 0xF) > + } > + > + Device(CP01) { // Cluster 0, Cpu 1 > + Name(_HID, "ACPI0007") > + Name(_UID, 1) > + Name(_STA, 0xF) > + } > + > + Device(CP02) { // Cluster 1, Cpu 0 > + Name(_HID, "ACPI0007") > + Name(_UID, 2) > + Name(_STA, 0xF) > + } > + > + Device(CP03) { // Cluster 1, Cpu 1 > + Name(_HID, "ACPI0007") > + Name(_UID, 3) > + Name(_STA, 0xF) > + } > + } // Scope(_SB) > +}