From 71ec5d3415c9c012d9dc08a5073c20380eb5d17b Mon Sep 17 00:00:00 2001 From: Pierre Gondois Date: Thu, 25 Jan 2024 16:18:44 +0100 Subject: DynamicTablesPkg: Add CM_ARM_PSD_INFO object Add an object describing _PSD information, cf. ACPI 6.5, s8.4.5.5 _PSD (P-State Dependency). Also add the corresponding CmObjParser. Signed-off-by: Pierre Gondois Reviewed-by: Sami Mujawar --- DynamicTablesPkg/Include/AcpiObjects.h | 20 ++++++++++++++++++++ DynamicTablesPkg/Include/ArmNameSpaceObjects.h | 10 ++++++++++ .../ConfigurationManagerObjectParser.c | 11 +++++++++++ 3 files changed, 41 insertions(+) (limited to 'DynamicTablesPkg') diff --git a/DynamicTablesPkg/Include/AcpiObjects.h b/DynamicTablesPkg/Include/AcpiObjects.h index 8981c22..2bdabb2 100644 --- a/DynamicTablesPkg/Include/AcpiObjects.h +++ b/DynamicTablesPkg/Include/AcpiObjects.h @@ -1,6 +1,7 @@ /** @file Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ Copyright (c) 2022 - 2023, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -119,6 +120,25 @@ typedef struct AmlCpcInfo { UINT32 NominalFrequencyInteger; } AML_CPC_INFO; +/** A structure that describes a + P-State Dependency (PSD) Info. + + Cf. ACPI 6.5, s8.4.5.5 _PSD (P-State Dependency). +*/ +typedef struct AmlPsdInfo { + /// Revision. + UINT8 Revision; + + /// Domain Id. + UINT32 Domain; + + /// Coordination type. + UINT32 CoordType; + + /// Number of processors belonging to the Domain. + UINT32 NumProc; +} AML_PSD_INFO; + #pragma pack() #endif //AML_CPC_INFO_H_ diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h index 453cc3f..3748cb7 100644 --- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h @@ -72,6 +72,7 @@ typedef enum ArmObjectID { EArmObjPccSubspaceType4Info, ///< 47 - Pcc Subspace Type 4 Info EArmObjPccSubspaceType5Info, ///< 48 - Pcc Subspace Type 5 Info EArmObjEtInfo, ///< 49 - Embedded Trace Extension/Module Info + EArmObjPsdInfo, ///< 50 - P-State Dependency (PSD) Info EArmObjMax } EARM_OBJECT_ID; @@ -1327,6 +1328,15 @@ typedef struct CmArmEtInfo { ARM_ET_TYPE EtType; } CM_ARM_ET_INFO; +/** A structure that describes a + P-State Dependency (PSD) Info. + + Cf. ACPI 6.5, s8.4.5.5 _PSD (P-State Dependency). + + ID: EArmObjPsdInfo +*/ +typedef AML_PSD_INFO CM_ARM_PSD_INFO; + #pragma pack() #endif // ARM_NAMESPACE_OBJECTS_H_ diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c index c1a7528..dc60a75 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c @@ -669,6 +669,15 @@ STATIC CONST CM_OBJ_PARSER CmArmEtInfo[] = { { "EtType", sizeof (ARM_ET_TYPE), "0x%x", NULL } }; +/** A parser for EArmObjPsdInfo. +*/ +STATIC CONST CM_OBJ_PARSER CmArmPsdInfoParser[] = { + { "Revision", 1, "0x%x", NULL }, + { "DomainId", 4, "0x%x", NULL }, + { "CoordType", 4, "0x%x", NULL }, + { "NumProc", 4, "0x%x", NULL }, +}; + /** A parser for Arm namespace objects. */ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = { @@ -767,6 +776,8 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = { ARRAY_SIZE (CmArmPccSubspaceType5InfoParser) }, { "EArmObjEtInfo", CmArmEtInfo, ARRAY_SIZE (CmArmEtInfo) }, + { "EArmObjPsdInfo", CmArmPsdInfoParser, + ARRAY_SIZE (CmArmPsdInfoParser) }, { "EArmObjMax", NULL, 0 }, }; -- cgit v1.1