From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.4406.1665393680803478570 for ; Mon, 10 Oct 2022 02:21:20 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) 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 A995F1570; Mon, 10 Oct 2022 02:21:26 -0700 (PDT) Received: from pierre123.arm.com (unknown [10.57.34.234]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id B63263F792; Mon, 10 Oct 2022 02:21:19 -0700 (PDT) From: "PierreGondois" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov Subject: [PATCH 03/14] DynamicTablesPkg: Update CmObjParser for IORT Rev E.d Date: Mon, 10 Oct 2022 11:20:47 +0200 Message-Id: <20221010092058.118714-4-Pierre.Gondois@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221010092058.118714-1-Pierre.Gondois@arm.com> References: <20221010092058.118714-1-Pierre.Gondois@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Pierre Gondois commit de200b7e2c3c ("DynamicTablesPkg: Update ArmNameSpaceObjects for IORT Rev E.d") adds new CmObj structures and fields to the ArmNameSpaceObjects. Update the CmObjectParser accordingly. Signed-off-by: Pierre Gondois --- .../ConfigurationManagerObjectParser.c | 59 ++++++++++++++----- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/Configuration= ManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/Co= nfigurationManagerObjectParser.c index b46f19693bb5..80ebb0708661 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManager= ObjectParser.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManager= ObjectParser.c @@ -183,21 +183,23 @@ STATIC CONST CM_OBJ_PARSER CmArmFixedFeatureFlagsP= arser[] =3D { STATIC CONST CM_OBJ_PARSER CmArmItsGroupNodeParser[] =3D { { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, { "ItsIdCount", 4, "0x%x", NULL }, - { "ItsIdToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL } + { "ItsIdToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, + { "Identifier", 4, "0x%x", NULL }, }; =20 /** A parser for EArmObjNamedComponent. */ STATIC CONST CM_OBJ_PARSER CmArmNamedComponentNodeParser[] =3D { - { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, - { "IdMappingCount", 4, "0x%x", NULL }, - { "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, - { "Flags", 4, "0x%x", NULL }, - { "CacheCoherent", 4, "0x%x", NULL }, - { "AllocationHints", 1, "0x%x", NULL }, - { "MemoryAccessFlags", 1, "0x%x", NULL }, - { "AddressSizeLimit", 1, "0x%x", NULL }, - { "ObjectName", sizeof (CHAR8 *), "%a", NULL } + { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }= , + { "IdMappingCount", 4, "0x%x", NULL }= , + { "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }= , + { "Flags", 4, "0x%x", NULL }= , + { "CacheCoherent", 4, "0x%x", NULL }= , + { "AllocationHints", 1, "0x%x", NULL }= , + { "MemoryAccessFlags", 1, "0x%x", NULL }= , + { "AddressSizeLimit", 1, "0x%x", NULL }= , + { "ObjectName", 1, NULL, PrintString }= , + { "Identifier", 4, "0x%x", NULL }= , }; =20 /** A parser for EArmObjRootComplex. @@ -211,7 +213,10 @@ STATIC CONST CM_OBJ_PARSER CmArmRootComplexNodePars= er[] =3D { { "MemoryAccessFlags", 1, "0x%x", NULL }, { "AtsAttribute", 4, "0x%x", NULL }, { "PciSegmentNumber", 4, "0x%x", NULL }, - { "MemoryAddressSize", 1, "0x%x", NULL } + { "MemoryAddressSize", 1, "0x%x", NULL }, + { "PasidCapabilities", 2, "0x%x", NULL }, + { "Flags", 4, "0x%x", NULL }, + { "Identifier", 4, "0x%x", NULL }, }; =20 /** A parser for EArmObjSmmuV1SmmuV2. @@ -231,7 +236,8 @@ STATIC CONST CM_OBJ_PARSER CmArmSmmuV1SmmuV2NodePars= er[] =3D { { "SMMU_NSgIrpt", 4, "0x%x", NULL }, { "SMMU_NSgIrptFlags", 4, "0x%x", NULL }, { "SMMU_NSgCfgIrpt", 4, "0x%x", NULL }, - { "SMMU_NSgCfgIrptFlags", 4, "0x%x", NULL } + { "SMMU_NSgCfgIrptFlags", 4, "0x%x", NULL }, + { "Identifier", 4, "0x%x", NULL }, }; =20 /** A parser for EArmObjSmmuV3. @@ -249,7 +255,8 @@ STATIC CONST CM_OBJ_PARSER CmArmSmmuV3NodeParser[] =3D= { { "GerrInterrupt", 4, "0x%x", NULL }, { "SyncInterrupt", 4, "0x%x", NULL }, { "ProximityDomain", 4, "0x%x", NULL }, - { "DeviceIdMappingIndex", 4, "0x%x", NULL } + { "DeviceIdMappingIndex", 4, "0x%x", NULL }, + { "Identifier", 4, "0x%x", NULL }, }; =20 /** A parser for EArmObjPmcg. @@ -261,7 +268,8 @@ STATIC CONST CM_OBJ_PARSER CmArmPmcgNodeParser[] =3D= { { "BaseAddress", 8, "0x%llx", NULL }, { "OverflowInterrupt", 4, "0x%x", NULL }, { "Page1BaseAddress", 8, "0x%llx", NULL }, - { "ReferenceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL } + { "ReferenceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, + { "Identifier", 4, "0x%x", NULL }, }; =20 /** A parser for EArmObjGicItsIdentifierArray. @@ -432,6 +440,25 @@ STATIC CONST CM_OBJ_PARSER CmPciInterruptMapInfoPar= ser[] =3D { ARRAY_SIZE (CmArmGenericInterruptParser) }, }; =20 +/** A parser for EArmObjRmr. +*/ +STATIC CONST CM_OBJ_PARSER CmArmRmrInfoParser[] =3D { + { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, + { "IdMappingCount", 4, "0x%x", NULL }, + { "IdMappingToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, + { "Identifier", 4, "0x%x", NULL }, + { "Flags", 4, "0x%x", NULL }, + { "MemRangeDescCount", 4, "0x%x", NULL }, + { "MemRangeDescToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, +}; + +/** A parser for EArmObjMemoryRangeDescriptor. +*/ +STATIC CONST CM_OBJ_PARSER CmArmMemoryRangeDescriptorInfoParser[] =3D { + { "BaseAddress", 8, "0x%llx", NULL }, + { "Length", 8, "0x%llx", NULL }, +}; + /** A parser for EArmObjCpcInfo. */ STATIC CONST CM_OBJ_PARSER CmArmCpcInfoParser[] =3D { @@ -588,6 +615,10 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObject= Parser[] =3D { ARRAY_SIZE (CmArmPciAddressMapInfoParser) }, { "EArmObjPciInterruptMapInfo", CmPciInterruptMapInfoParser, ARRAY_SIZE (CmPciInterruptMapInfoParser) }, + { "EArmObjRmr", CmArmRmrInfoParser, + ARRAY_SIZE (CmArmRmrInfoParser) }, + { "EArmObjMemoryRangeDescriptor", CmArmMemoryRangeDescriptorInf= oParser, + ARRAY_SIZE (CmArmMemoryRangeDescriptorInfoParser) }, { "EArmObjCpcInfo", CmArmCpcInfoParser, ARRAY_SIZE (CmArmCpcInfoParser) }, { "EArmObjMax", NULL, = 0 }, --=20 2.25.1