summaryrefslogtreecommitdiff
path: root/DynamicTablesPkg/Library
diff options
context:
space:
mode:
authorPierre Gondois <Pierre.Gondois@arm.com>2021-10-08 15:46:31 +0100
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-10-08 15:39:42 +0000
commitf17ef10e635036ddbc05791371b552beda8e0504 (patch)
tree514419e2041c92515ffe87218aa1514af96e881c /DynamicTablesPkg/Library
parenta5e36ad9bcd945be98a50ff57170e85df7fda368 (diff)
downloadedk2-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.c35
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},
};