diff options
author | Pierre Gondois <Pierre.Gondois@arm.com> | 2021-10-08 15:46:31 +0100 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2021-10-08 15:39:42 +0000 |
commit | f17ef10e635036ddbc05791371b552beda8e0504 (patch) | |
tree | 514419e2041c92515ffe87218aa1514af96e881c /DynamicTablesPkg/Library | |
parent | a5e36ad9bcd945be98a50ff57170e85df7fda368 (diff) | |
download | edk2-f17ef10e635036ddbc05791371b552beda8e0504.zip edk2-f17ef10e635036ddbc05791371b552beda8e0504.tar.gz edk2-f17ef10e635036ddbc05791371b552beda8e0504.tar.bz2 |
DynamicTablesPkg: Add CM_ARM_LPI_INFO object
Introduce the CM_ARM_LPI_INFO CmObj in the ArmNameSpaceObjects.
This allows to describe LPI state information, as described in
ACPI 6.4, s8.4.4.3 "_LPI (Low Power Idle States)".
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Diffstat (limited to 'DynamicTablesPkg/Library')
-rw-r--r-- | DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c index ee2918a..2337d47 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c @@ -368,6 +368,39 @@ STATIC CONST CM_OBJ_PARSER CmArmCmn600InfoParser[] = { {"DtcFlags[3]", 4, "0x%x", NULL}
};
+/** A parser for the EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE structure.
+*/
+STATIC CONST CM_OBJ_PARSER AcpiGenericAddressParser[] = {
+ {"AddressSpaceId", 1, "%d", NULL},
+ {"RegisterBitWidth", 1, "%d", NULL},
+ {"RegisterBitOffset", 1, "%d", NULL},
+ {"AccessSize", 1, "%d", NULL},
+ {"Address", 8, "0x%llx", NULL},
+};
+
+/** A parser for EArmObjLpiInfo.
+*/
+STATIC CONST CM_OBJ_PARSER CmArmLpiInfoParser[] = {
+ {"MinResidency", 4, "0x%llx", NULL},
+ {"WorstCaseWakeLatency", 4, "0x%llx", NULL},
+ {"Flags", 4, "0x%llx", NULL},
+ {"ArchFlags", 4, "0x%llx", NULL},
+ {"ResCntFreq", 4, "0x%llx", NULL},
+ {"EnableParentState", 4, "0x%llx", NULL},
+ {"IsInteger", 1, "%d", NULL},
+ {"IntegerEntryMethod", 8, "0x%llx", NULL},
+ {"RegisterEntryMethod", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
+ NULL, NULL, AcpiGenericAddressParser,
+ ARRAY_SIZE (AcpiGenericAddressParser)},
+ {"ResidencyCounterRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
+ NULL, NULL, AcpiGenericAddressParser,
+ ARRAY_SIZE (AcpiGenericAddressParser)},
+ {"UsageCounterRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
+ NULL, NULL, AcpiGenericAddressParser,
+ ARRAY_SIZE (AcpiGenericAddressParser)},
+ {"StateName", 16, "0x%a", NULL},
+};
+
/** A parser for Arm namespace objects.
*/
STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
@@ -440,6 +473,8 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = { ARRAY_SIZE (CmArmSerialPortInfoParser)},
{"EArmObjCmn600Info", CmArmCmn600InfoParser,
ARRAY_SIZE (CmArmCmn600InfoParser)},
+ {"EArmObjLpiInfo", CmArmLpiInfoParser,
+ ARRAY_SIZE (CmArmLpiInfoParser)},
{"EArmObjMax", NULL, 0},
};
|