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 <pierre.gondois@arm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
Pierre Gondois 2024-01-25 16:18:44 +01:00 committed by mergify[bot]
parent e3992e40c7
commit 71ec5d3415
3 changed files with 41 additions and 0 deletions

View File

@ -1,6 +1,7 @@
/** @file
Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.<BR>
Copyright (c) 2022 - 2023, Arm Limited. All rights reserved.<BR>
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_

View File

@ -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_

View File

@ -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 },
};