From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by mx.groups.io with SMTP id smtpd.web12.10821.1659245853541650282 for ; Sat, 30 Jul 2022 22:37:33 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=FEDGh7S2; spf=pass (domain: gmail.com, ip: 209.85.216.50, mailfrom: kuqin12@gmail.com) Received: by mail-pj1-f50.google.com with SMTP id ha11so8132375pjb.2 for ; Sat, 30 Jul 2022 22:37:33 -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=3zVrVTCIDSAMq1febEXmsQxn+T7YISjESW+RnKRDpl8=; b=FEDGh7S26+5IbPSZ2QmorgYNNgsA9PBucWuVyG51hn46tncrKMVPrlbmDY+TeA+P+E MmkTXbgYnhCL9QCNxth00OXps5YaQjwo/Nz0R0qv8Tzzo+OkYYpN+kepFaY8Hk/VvQpi O28wVNVi45hNZll4xBhUYtVtXlRgMbBOB/gAXbv7pZzYFxYDmVjAYJD4+7D0gJ4GapO3 N6Eb43iy9ThHekJdN3B0r0aqQRuz1904zcml012gvoUgPqq4AXENGf1zeVJZrBGHFfCN sD/RnnoMIZoIOgUimeQJYVgxyCExwlhCMRehKVmtAM92fSUjjZzOmgM++sK5EINkY/cy dFmQ== 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=3zVrVTCIDSAMq1febEXmsQxn+T7YISjESW+RnKRDpl8=; b=rCYP2ZGaR/ul87Hl5Uuh3OMVx1o+ekctvw2ddKvdB4hq2BOuJqRQpBhRTTCt/POn0q DIwUw6xL86r9zVeFv4JD3v0RHmrni3AHsD6DRmc24VnEtQjTfTuAG2TV6qADXqrwR2OF BDVW2BbJ2+tHiNvJcGkfw9SDFJfuBgQox6EiOoK2nv1OJMfixGHlbFaKkyZ1Sa2wQW0o u8LkJLnMDYtz+sXe3xbx7+R46lAzU6ly4W4I8t9BkILRrp6xiCurgAYHDk3yymVU1W05 Qc9aPSG8WzJz+GKCa1KN1QS0FxlTVFK8Qx6S9iOVf5rDWUhafNJyA1phpHCVWmgdV2pV ePxA== X-Gm-Message-State: ACgBeo3BUiPk2BoprJnbUhkx7ejhm/YFoU2GjvV5Gi90rAKqCmbl2+mT 2t7XMP6Cc9BI3H8s+QT9je7G6TvWuiM= X-Google-Smtp-Source: AA6agR7cq0kcbk3X5BfuVSaQd0huUfB1Ojy/tVhYjMJz6StBdHKJVKi60iGfTIszZcBN+WYXztEWAw== X-Received: by 2002:a17:90a:2e16:b0:1f2:f54c:c6a0 with SMTP id q22-20020a17090a2e1600b001f2f54cc6a0mr13056139pjd.10.1659245852900; Sat, 30 Jul 2022 22:37:32 -0700 (PDT) Return-Path: Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:7:a09e:ed80:a0cd:1e24]) by smtp.gmail.com with ESMTPSA id x6-20020a1709029a4600b00168e83eda56sm6714524plv.3.2022.07.30.22.37.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Jul 2022 22:37:32 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez , Sami Mujawar , Pierre Gondois Subject: [PATCH v3 3/6] DynamicTablesPkg: DynamicPlatRepoLib: Adding more token fixers Date: Sat, 30 Jul 2022 22:37:24 -0700 Message-Id: <20220731053727.536-4-kuqin12@gmail.com> X-Mailer: git-send-email 2.37.1.windows.1 In-Reply-To: <20220731053727.536-1-kuqin12@gmail.com> References: <20220731053727.536-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. 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