From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) by mx.groups.io with SMTP id smtpd.web11.943.1660170539738450705 for ; Wed, 10 Aug 2022 15:28:59 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=KNYv1aaX; spf=pass (domain: gmail.com, ip: 209.85.216.41, mailfrom: kuqin12@gmail.com) Received: by mail-pj1-f41.google.com with SMTP id gp7so1697098pjb.4 for ; Wed, 10 Aug 2022 15:28:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=T/vSZpeCpkFAj6F3XRugtUxBqZ+1C5FYI3Zc73McmpA=; b=KNYv1aaXE+gSyFBFkZ8N3xIc+k0rp+wYLicGHmv0CLMq1Az4dx3NDdWdJ7gOrPYUiq YS4gXigxQWsWqfzuq1CK6ySBVZJkAykhG5Ma+PM772A003hBvsInCuSR/gToNt5gbhbS /PBwPCyHUvocg0PiR1XE4SJSO+/eYJ3N1emx2r4UnBHWAqko84VJggiAZeZxi7RZ0rwG DUkynR2OTGm+YSAYdmaYIZfF9ArkamNuB7cM8nOHAUPlnZZsWf/At8FU+Gr5uj1l4ifz u4WPuM8CTGdMvKvgJXaOpE65+9f8+0kiXvBOM5FlCtN5sx72H+SLrx28yN9R6k/q1hpV ZJUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=T/vSZpeCpkFAj6F3XRugtUxBqZ+1C5FYI3Zc73McmpA=; b=GDYy3z/2wTBGeIZDr6Ntslu1NZ6a0abOVAV5H/wgEYFz1Y1QbNNrHPQQLSbjvl2wfx 4iSo9kPdIoRDBukn3hJiGZAxzp2tiuInsIVc5AmiWqdwxvYeO/mv51k97hN9nh70jN/G xQ9ipbZ3x4RsXhG6kxRgdiNZLqxqJw6+2FMjdBvM7bdjKe66dFvZj4angiPKK5MIAroe roy4g8AfDMAzYiFRl22NXa3cjmbl6qBxmbkwlGnjt+z1YVbOH0auMXi1S7ig7vz5OOL3 xApXPUlwFXnwIQRTU87e6hKEZ9+A9TCHqfLhVWjtZHo0xvz/pGZwcTYEhvX7D5Auuv/H PiqQ== X-Gm-Message-State: ACgBeo1WV/a9gGUap2MStgpXamybXAl5blnMW91SA89p1VvQu6fEJq7C FnhehwiFxZGlPr7VFraMAedI6f864lY= X-Google-Smtp-Source: AA6agR4oeQj7fF/ZXVoCf1jfeOD7UV7SwA3MW5c85fJEbRqWoF7Xw4Ftgp3NQsNlDWByk7HX6njI/w== X-Received: by 2002:a17:902:db08:b0:170:9ba1:92e9 with SMTP id m8-20020a170902db0800b001709ba192e9mr18380577plx.45.1660170539109; Wed, 10 Aug 2022 15:28:59 -0700 (PDT) Return-Path: Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:38:b518:f1a8:aef2:7dc4]) by smtp.gmail.com with ESMTPSA id h11-20020a170902f70b00b0016d66d49b85sm13309701plo.239.2022.08.10.15.28.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 15:28:58 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez , Sami Mujawar , Pierre Gondois Subject: [PATCH v4 3/6] DynamicTablesPkg: DynamicPlatRepoLib: Adding more token fixers Date: Wed, 10 Aug 2022 15:28:50 -0700 Message-Id: <20220810222853.1916-4-kuqin12@gmail.com> X-Mailer: git-send-email 2.37.1.windows.1 In-Reply-To: <20220810222853.1916-1-kuqin12@gmail.com> References: <20220810222853.1916-1-kuqin12@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3996 This change added more token fixers for other node types, including NamedComponentNode, RootComplexNode, and SmmuV3Node. The corresponding entries for tokenFixer functions table is also updated. Cc: Sami Mujawar Cc: Alexei Fedorov Co-authored-by: Joe Lopez Signed-off-by: Kun Qin Reviewed-by: Sami Mujawar Reviewed-by: Pierre Gondois --- Notes: v2: - Added Reviewed-by tag [Sami] - Added Reviewed-by tag [Pierre] =20=20=20=20 v3: - No change. =20=20=20=20 v4: - No change. DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c | = 78 +++++++++++++++++++- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTok= enFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectToke= nFixer.c index 84e4bb7e3bc8..345acab53f74 100644 --- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer= .c +++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer= .c @@ -64,6 +64,78 @@ TokenFixerItsGroup ( return EFI_SUCCESS;=0D }=0D =0D +/** EArmObjNamedComponent token fixer.=0D +=0D + CmObjectToken fixer function that updates the Tokens in the CmObjects.=0D +=0D + @param [in] CmObject Pointer to the Configuration Manager Object.=0D + @param [in] Token Token to be updated in the CmObject.=0D +=0D + @retval EFI_SUCCESS Success.=0D + @retval EFI_INVALID_PARAMETER A parameter is invalid.=0D + @retval EFI_UNSUPPORTED Not supported.=0D +**/=0D +STATIC=0D +EFI_STATUS=0D +EFIAPI=0D +TokenFixerNamedComponentNode (=0D + IN CM_OBJ_DESCRIPTOR *CmObject,=0D + IN CM_OBJECT_TOKEN Token=0D + )=0D +{=0D + ASSERT (CmObject !=3D NULL);=0D + ((CM_ARM_NAMED_COMPONENT_NODE *)CmObject->Data)->Token =3D Token;=0D + return EFI_SUCCESS;=0D +}=0D +=0D +/** EArmObjRootComplex token fixer.=0D +=0D + CmObjectToken fixer function that updates the Tokens in the CmObjects.=0D +=0D + @param [in] CmObject Pointer to the Configuration Manager Object.=0D + @param [in] Token Token to be updated in the CmObject.=0D +=0D + @retval EFI_SUCCESS Success.=0D + @retval EFI_INVALID_PARAMETER A parameter is invalid.=0D + @retval EFI_UNSUPPORTED Not supported.=0D +**/=0D +STATIC=0D +EFI_STATUS=0D +EFIAPI=0D +TokenFixerRootComplexNode (=0D + IN CM_OBJ_DESCRIPTOR *CmObject,=0D + IN CM_OBJECT_TOKEN Token=0D + )=0D +{=0D + ASSERT (CmObject !=3D NULL);=0D + ((CM_ARM_ROOT_COMPLEX_NODE *)CmObject->Data)->Token =3D Token;=0D + return EFI_SUCCESS;=0D +}=0D +=0D +/** EArmObjSmmuV3 token fixer.=0D +=0D + CmObjectToken fixer function that updates the Tokens in the CmObjects.=0D +=0D + @param [in] CmObject Pointer to the Configuration Manager Object.=0D + @param [in] Token Token to be updated in the CmObject.=0D +=0D + @retval EFI_SUCCESS Success.=0D + @retval EFI_INVALID_PARAMETER A parameter is invalid.=0D + @retval EFI_UNSUPPORTED Not supported.=0D +**/=0D +STATIC=0D +EFI_STATUS=0D +EFIAPI=0D +TokenFixerSmmuV3Node (=0D + IN CM_OBJ_DESCRIPTOR *CmObject,=0D + IN CM_OBJECT_TOKEN Token=0D + )=0D +{=0D + ASSERT (CmObject !=3D NULL);=0D + ((CM_ARM_SMMUV3_NODE *)CmObject->Data)->Token =3D Token;=0D + return EFI_SUCCESS;=0D +}=0D +=0D /** TokenFixer functions table.=0D =0D A CmObj having a CM_OBJECT_TOKEN field might need to have its=0D @@ -90,10 +162,10 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] =3D { NULL, ///< 16 - Hypervisor Vendor Id=0D NULL, ///< 17 - Fixed feature flags for FADT= =0D TokenFixerItsGroup, ///< 18 - ITS Group=0D - TokenFixerNotImplemented, ///< 19 - Named Component=0D - TokenFixerNotImplemented, ///< 20 - Root Complex=0D + TokenFixerNamedComponentNode, ///< 19 - Named Component=0D + TokenFixerRootComplexNode, ///< 20 - Root Complex=0D TokenFixerNotImplemented, ///< 21 - SMMUv1 or SMMUv2=0D - TokenFixerNotImplemented, ///< 22 - SMMUv3=0D + TokenFixerSmmuV3Node, ///< 22 - SMMUv3=0D TokenFixerNotImplemented, ///< 23 - PMCG=0D NULL, ///< 24 - GIC ITS Identifier Array=0D NULL, ///< 25 - ID Mapping Array=0D --=20 2.37.1.windows.1