From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 56F09D80281 for ; Thu, 21 Mar 2024 16:00:55 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=PffIM2Nib1BZ+vOLQbfTeO5GHqSnhePi4TWrLCUPFFI=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20240206; t=1711036854; v=1; b=DJzFCOEG1ROmAnh2Vv0RKIuDU6sebuUOtSHgCnV8ttNJ3WmYsupttHfbcxa9y6+OHdZMee9q h78GEYKAvcfT3ANz1kclv6VdzZp/Q/FSw4AfXhSkpd/2WrZSKE2BqIrn1D4cEYXawO0bPM+y+kN OFMhnJOo4OwSH0qhPbbdDdyzDBbycg4DaXmVyqOtanactPW7ebdDH3lI9Gk9XDeY7YsmAZfz9au ORgUT6ZCevtyBIpdiQmzYjKlOfLDoCKuVuFlc3eFsBrVXZoWrRkmEzXvGKGMS4cmsKVsnTnMWFp mg/PcfyxaX1bUHkJjJ4PhiQaNveMBCRgnsiPQ+c4r4hfg== X-Received: by 127.0.0.2 with SMTP id QDQ2YY7687511xNXCRhiH00N; Thu, 21 Mar 2024 09:00:54 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.596.1711036853297505263 for ; Thu, 21 Mar 2024 09:00:53 -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 51A161007; Thu, 21 Mar 2024 09:01:27 -0700 (PDT) X-Received: from e126645.nice.arm.com (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 3974B3F67D; Thu, 21 Mar 2024 09:00:50 -0700 (PDT) From: "PierreGondois" To: devel@edk2.groups.io Cc: Pierre Gondois , Sami Mujawar , Pierre Gondois , Yeo Reum Yun , Sunil V L , AbdulLateef Attar , Jeshua Smith , Jeff Brasen , Girish Mahadevan , Leif Lindholm , Meenakshi Aggarwal Subject: [edk2-devel] [PATCH 12/19] DynamicTablesPkg: Move Continuous perf control info to Arch Common Date: Thu, 21 Mar 2024 16:59:17 +0100 Message-Id: <20240321155924.707272-13-pierre.gondois@arm.com> In-Reply-To: <20240321155924.707272-1-pierre.gondois@arm.com> References: <20240321155924.707272-1-pierre.gondois@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Thu, 21 Mar 2024 09:00:53 -0700 Reply-To: devel@edk2.groups.io,pierre.gondois@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: WFItnJxnVNLCe4bEDjBW3xWNx7686176AA= Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=DJzFCOEG; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=arm.com (policy=none) From: Sami Mujawar Move the Continuous perfformance control info object from Arm Namespace to the Arch Common namespace. Correspondingly also update the following modules to reflect the changes introduced by the move: - SSDT CPU topology generator - ConfigurationManagerObjectParser - Dynamic Plat Repo TokenFixer map. Cc: Pierre Gondois Cc: Yeo Reum Yun Cc: AbdulLateef Attar Cc: Jeshua Smith Cc: Jeff Brasen Cc: Girish Mahadevan Cc: Leif Lindholm Cc: Meenakshi Aggarwal Signed-off-by: Sami Mujawar Signed-off-by: Pierre Gondois --- .../Include/ArchCommonNameSpaceObjects.h | 19 ++++++ .../Include/ArmNameSpaceObjects.h | 37 +++--------- .../SsdtCpuTopologyGenerator.c | 12 ++-- .../DynamicPlatRepoLib/CmObjectTokenFixer.c | 15 +++-- .../ConfigurationManagerObjectParser.c | 6 +- DynamicTablesPkg/Readme.md | 60 +++++++++---------- 6 files changed, 74 insertions(+), 75 deletions(-) diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/Dynami= cTablesPkg/Include/ArchCommonNameSpaceObjects.h index 17cd552a3f74..63b24de2f2f1 100644 --- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h @@ -38,6 +38,7 @@ typedef enum ArchCommonObjectID { EArchCommonObjLpiInfo, ///< 15 - Lpi Info=0D EArchCommonObjProcHierarchyInfo, ///< 16 - Processor Hierar= chy Info=0D EArchCommonObjCacheInfo, ///< 17 - Cache Info=0D + EArchCommonObjCpcInfo, ///< 18 - Continuous Perfo= rmance Control Info=0D EArchCommonObjMax=0D } EARCH_COMMON_OBJECT_ID;=0D =0D @@ -432,6 +433,24 @@ typedef struct CmArchCommonCacheInfo { UINT32 CacheId;=0D } CM_ARCH_COMMON_CACHE_INFO;=0D =0D +/** A structure that describes the Cpc information.=0D +=0D + Continuous Performance Control is described in DSDT/SSDT and associated= =0D + to cpus/clusters in the cpu topology.=0D +=0D + Unsupported Optional registers should be encoded with NULL resource=0D + Register {(SystemMemory, 0, 0, 0, 0)}=0D +=0D + For values that support Integer or Buffer, integer will be used=0D + if buffer is NULL resource.=0D + If resource is not NULL then Integer must be 0=0D +=0D + Cf. ACPI 6.4, s8.4.7.1 _CPC (Continuous Performance Control)=0D +=0D + ID: EArchCommonObjCpcInfo=0D +*/=0D +typedef AML_CPC_INFO CM_ARCH_COMMON_CPC_INFO;=0D +=0D #pragma pack()=0D =0D #endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_=0D diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTables= Pkg/Include/ArmNameSpaceObjects.h index eade2afcd028..b9d1202be365 100644 --- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h @@ -51,15 +51,14 @@ typedef enum ArmObjectID { EArmObjCmn600Info, ///< 20 - C= MN-600 Info=0D EArmObjRmr, ///< 21 - R= eserved Memory Range Node=0D EArmObjMemoryRangeDescriptor, ///< 22 - M= emory Range Descriptor=0D - EArmObjCpcInfo, ///< 23 - C= ontinuous Performance Control Info=0D - EArmObjPccSubspaceType0Info, ///< 24 - P= cc Subspace Type 0 Info=0D - EArmObjPccSubspaceType1Info, ///< 25 - P= cc Subspace Type 2 Info=0D - EArmObjPccSubspaceType2Info, ///< 26 - P= cc Subspace Type 2 Info=0D - EArmObjPccSubspaceType3Info, ///< 27 - P= cc Subspace Type 3 Info=0D - EArmObjPccSubspaceType4Info, ///< 28 - P= cc Subspace Type 4 Info=0D - EArmObjPccSubspaceType5Info, ///< 29 - P= cc Subspace Type 5 Info=0D - EArmObjEtInfo, ///< 30 - E= mbedded Trace Extension/Module Info=0D - EArmObjPsdInfo, ///< 31 - P= -State Dependency (PSD) Info=0D + EArmObjPccSubspaceType0Info, ///< 23 - P= cc Subspace Type 0 Info=0D + EArmObjPccSubspaceType1Info, ///< 24 - P= cc Subspace Type 2 Info=0D + EArmObjPccSubspaceType2Info, ///< 25 - P= cc Subspace Type 2 Info=0D + EArmObjPccSubspaceType3Info, ///< 26 - P= cc Subspace Type 3 Info=0D + EArmObjPccSubspaceType4Info, ///< 27 - P= cc Subspace Type 4 Info=0D + EArmObjPccSubspaceType5Info, ///< 28 - P= cc Subspace Type 5 Info=0D + EArmObjEtInfo, ///< 29 - E= mbedded Trace Extension/Module Info=0D + EArmObjPsdInfo, ///< 30 - P= -State Dependency (PSD) Info=0D EArmObjMax=0D } EARM_OBJECT_ID;=0D =0D @@ -177,7 +176,7 @@ typedef struct CmArmGicCInfo { UINT32 AffinityFlags;=0D =0D /** Optional field: Reference Token for the Cpc info of this processor.= =0D - i.e. a token referencing a CM_ARM_CPC_INFO object.=0D + i.e. a token referencing a CM_ARCH_COMMON_CPC_INFO object.=0D */=0D CM_OBJECT_TOKEN CpcToken;=0D =0D @@ -715,24 +714,6 @@ typedef struct CmArmRmrDescriptor { UINT64 Length;=0D } CM_ARM_MEMORY_RANGE_DESCRIPTOR;=0D =0D -/** A structure that describes the Cpc information.=0D -=0D - Continuous Performance Control is described in DSDT/SSDT and associated= =0D - to cpus/clusters in the cpu topology.=0D -=0D - Unsupported Optional registers should be encoded with NULL resource=0D - Register {(SystemMemory, 0, 0, 0, 0)}=0D -=0D - For values that support Integer or Buffer, integer will be used=0D - if buffer is NULL resource.=0D - If resource is not NULL then Integer must be 0=0D -=0D - Cf. ACPI 6.4, s8.4.7.1 _CPC (Continuous Performance Control)=0D -=0D - ID: EArmObjCpcInfo=0D -*/=0D -typedef AML_CPC_INFO CM_ARM_CPC_INFO;=0D -=0D /** A structure that describes a=0D PCC Mailbox Register.=0D */=0D diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/Ss= dtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTop= ologyLibArm/SsdtCpuTopologyGenerator.c index 1bb90e114b16..21233a404a05 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTo= pologyGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTo= pologyGenerator.c @@ -89,9 +89,9 @@ GET_OBJECT_LIST ( information from the Configuration Manager.=0D */=0D GET_OBJECT_LIST (=0D - EObjNameSpaceArm,=0D - EArmObjCpcInfo,=0D - CM_ARM_CPC_INFO=0D + EObjNameSpaceArchCommon,=0D + EArchCommonObjCpcInfo,=0D + CM_ARCH_COMMON_CPC_INFO=0D );=0D =0D /**=0D @@ -400,10 +400,10 @@ CreateAmlCpcNode ( IN AML_OBJECT_NODE_HANDLE *Node=0D )=0D {=0D - EFI_STATUS Status;=0D - CM_ARM_CPC_INFO *CpcInfo;=0D + EFI_STATUS Status;=0D + CM_ARCH_COMMON_CPC_INFO *CpcInfo;=0D =0D - Status =3D GetEArmObjCpcInfo (=0D + Status =3D GetEArchCommonObjCpcInfo (=0D CfgMgrProtocol,=0D GicCInfo->CpcToken,=0D &CpcInfo,=0D diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTok= enFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectToke= nFixer.c index a162d614f9f0..68db478c5789 100644 --- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer= .c +++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer= .c @@ -166,15 +166,14 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] =3D { NULL, ///< 20 - CMN-600 Info=0D NULL, ///< 21 - Reserved Memory Range Node=0D NULL, ///< 22 - Memory Range Descriptor=0D - NULL, ///< 23 - Continuous Performance Contr= ol Info=0D - NULL, ///< 24 - Pcc Subspace Type 0 Info=0D + NULL, ///< 23 - Pcc Subspace Type 0 Info=0D + NULL, ///< 24 - Pcc Subspace Type 2 Info=0D NULL, ///< 25 - Pcc Subspace Type 2 Info=0D - NULL, ///< 26 - Pcc Subspace Type 2 Info=0D - NULL, ///< 27 - Pcc Subspace Type 3 Info=0D - NULL, ///< 28 - Pcc Subspace Type 4 Info=0D - NULL, ///< 29 - Pcc Subspace Type 5 Info=0D - NULL, ///< 30 - Embedded Trace Extension/Mod= ule Info=0D - NULL ///< 31 - P-State Dependency (PSD) Inf= o=0D + NULL, ///< 26 - Pcc Subspace Type 3 Info=0D + NULL, ///< 27 - Pcc Subspace Type 4 Info=0D + NULL, ///< 28 - Pcc Subspace Type 5 Info=0D + NULL, ///< 29 - Embedded Trace Extension/Mod= ule Info=0D + NULL ///< 30 - P-State Dependency (PSD) Inf= o=0D };=0D =0D /** CmObj token fixer.=0D diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationMa= nagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/Config= urationManagerObjectParser.c index 5440f9993b67..54ecc66c5b40 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerOb= jectParser.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerOb= jectParser.c @@ -479,9 +479,9 @@ STATIC CONST CM_OBJ_PARSER CmArmMemoryRangeDescriptorI= nfoParser[] =3D { { "Length", 8, "0x%llx", NULL },=0D };=0D =0D -/** A parser for EArmObjCpcInfo.=0D +/** A parser for EArchCommonObjCpcInfo.=0D */=0D -STATIC CONST CM_OBJ_PARSER CmArmCpcInfoParser[] =3D {=0D +STATIC CONST CM_OBJ_PARSER CmArchCommonCpcInfoParser[] =3D {=0D { "Revision", 4, = "0x%lx", NULL },=0D { "HighestPerformanceBuffer", sizeof (EFI_ACPI_6_4_GENERIC_= ADDRESS_STRUCTURE),=0D NULL, NULL, AcpiGenericAddressParser,=0D @@ -688,6 +688,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceOb= jectParser[] =3D { CM_PARSER_ADD_OBJECT (EArchCommonObjLpiInfo, CmArchC= ommonLpiInfoParser),=0D CM_PARSER_ADD_OBJECT (EArchCommonObjProcHierarchyInfo, CmArchC= ommonProcHierarchyInfoParser),=0D CM_PARSER_ADD_OBJECT (EArchCommonObjCacheInfo, CmArchC= ommonCacheInfoParser),=0D + CM_PARSER_ADD_OBJECT (EArchCommonObjCpcInfo, CmArchC= ommonCpcInfoParser),=0D CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)=0D };=0D =0D @@ -717,7 +718,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectPar= ser[] =3D { CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600Info= Parser),=0D CM_PARSER_ADD_OBJECT (EArmObjRmr, CmArmRmrInfoPar= ser),=0D CM_PARSER_ADD_OBJECT (EArmObjMemoryRangeDescriptor, CmArmMemoryRang= eDescriptorInfoParser),=0D - CM_PARSER_ADD_OBJECT (EArmObjCpcInfo, CmArmCpcInfoPar= ser),=0D CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType0Info, CmArmPccSubspac= eType0InfoParser),=0D CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType1Info, CmArmPccSubspac= eType1InfoParser),=0D CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType2Info, CmArmPccSubspac= eType2InfoParser),=0D diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md index 7865731841d6..8ac9d126b834 100644 --- a/DynamicTablesPkg/Readme.md +++ b/DynamicTablesPkg/Readme.md @@ -463,38 +463,38 @@ The CM_OBJECT_ID type is used to identify the Configu= ration Manager | 20 | CMN 600 Info | |=0D | 21 | Reserved Memory Range Node | |=0D | 22 | Memory Range Descriptor | |=0D -| 23 | Continuous Performance Control Info | Move to Arch Common = NS |=0D -| 24 | Pcc Subspace Type 0 Info | Move to Arch Common = NS |=0D -| 25 | Pcc Subspace Type 1 Info | Move to Arch Common = NS |=0D -| 26 | Pcc Subspace Type 2 Info | Move to Arch Common = NS |=0D -| 27 | Pcc Subspace Type 3 Info | Move to Arch Common = NS |=0D -| 28 | Pcc Subspace Type 4 Info | Move to Arch Common = NS |=0D -| 29 | Pcc Subspace Type 5 Info | Move to Arch Common = NS |=0D -| 30 | Embedded Trace Extension/Module Info | |=0D -| 31 | P-State Dependency (PSD) Info | Move to Arch Common = NS |=0D +| 23 | Pcc Subspace Type 0 Info | Move to Arch Common = NS |=0D +| 24 | Pcc Subspace Type 1 Info | Move to Arch Common = NS |=0D +| 25 | Pcc Subspace Type 2 Info | Move to Arch Common = NS |=0D +| 26 | Pcc Subspace Type 3 Info | Move to Arch Common = NS |=0D +| 27 | Pcc Subspace Type 4 Info | Move to Arch Common = NS |=0D +| 28 | Pcc Subspace Type 5 Info | Move to Arch Common = NS |=0D +| 29 | Embedded Trace Extension/Module Info | |=0D +| 30 | P-State Dependency (PSD) Info | Move to Arch Common = NS |=0D | `*` | All other values are reserved. | |=0D =0D #### Object ID's in the Arch Common Namespace:=0D =0D -| ID | Description | Comments |=0D -| ---: | :-------------------------- | :--- |=0D -| 0 | Reserved | |=0D -| 1 | Power Management Profile Info | |=0D -| 2 | Serial Port Info | |=0D -| 3 | Serial Console Port Info | |=0D -| 4 | Serial Debug Port Info | |=0D -| 5 | Hypervisor Vendor Id | |=0D -| 6 | Fixed feature flags for FADT | |=0D -| 7 | CM Object Reference | |=0D -| 8 | PCI Configuration Space Info | |=0D -| 9 | PCI Address Map Info | |=0D -| 10 | PCI Interrupt Map Info | |=0D -| 11 | Memory Affinity Info | |=0D -| 12 | Device Handle Acpi | |=0D -| 13 | Device Handle PCI | |=0D -| 14 | Generic Initiator Affinity Info | |=0D -| 15 | Low Power Idle State Info | |=0D -| 16 | Processor Hierarchy Info | |=0D -| 17 | Cache Info | |=0D -| `*` | All other values are reserved. | |=0D +| ID | Description | Comments |=0D +| ---: | :-------------------------- | :--- |=0D +| 0 | Reserved | |=0D +| 1 | Power Management Profile Info | |=0D +| 2 | Serial Port Info | |=0D +| 3 | Serial Console Port Info | |=0D +| 4 | Serial Debug Port Info | |=0D +| 5 | Hypervisor Vendor Id | |=0D +| 6 | Fixed feature flags for FADT | |=0D +| 7 | CM Object Reference | |=0D +| 8 | PCI Configuration Space Info | |=0D +| 9 | PCI Address Map Info | |=0D +| 10 | PCI Interrupt Map Info | |=0D +| 11 | Memory Affinity Info | |=0D +| 12 | Device Handle Acpi | |=0D +| 13 | Device Handle PCI | |=0D +| 14 | Generic Initiator Affinity Info | |=0D +| 15 | Low Power Idle State Info | |=0D +| 16 | Processor Hierarchy Info | |=0D +| 17 | Cache Info | |=0D +| 18 | Continuous Performance Control Info | |=0D +| `*` | All other values are reserved. | |=0D =0D --=20 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#116990): https://edk2.groups.io/g/devel/message/116990 Mute This Topic: https://groups.io/mt/105068166/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-