From nobody Sat May 18 10:48:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+91498+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91498+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658190347; cv=none; d=zohomail.com; s=zohoarc; b=h+Cep0QZrBD0w2p+BIHc7Q2VXZeyysyz1gm7eZjNtl2FJ2TRS/ZKZ91dodI16Vle68EPpxe0sLls06pAljaHCzi7SsmZApUyBhtGhA5qFV/shK9lxWeuhO2Bsl1exaguBx1vmJQbMvqdngzD63h8YrCTYUMdgFuTSuA5vWPQyhg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658190347; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=296VOJqUR6d5pocZP/WitR2596RSapWeUpA2nARTYB8=; b=GgktCCga0EaUG6GuHx7/raBUEuFgYcaJH1xOH//JYZMjtHJ9Dw5sMtHLAQulC1HP8FPJmRiKUf1K7PNDZjRO7CgGsz7AyamdZlczlOZ3O2/EufFIT6gwk5Ik2kxzUcdruj3y92JHdnG6OLVbE3Hub4oN972QUR1a5K+3bEqzzJ8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91498+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1658190347109378.0964678154344; Mon, 18 Jul 2022 17:25:47 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id zQMvYY1788612xHEHXvvoXUx; Mon, 18 Jul 2022 17:25:46 -0700 X-Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by mx.groups.io with SMTP id smtpd.web09.34991.1658190346015070429 for ; Mon, 18 Jul 2022 17:25:46 -0700 X-Received: by mail-pl1-f181.google.com with SMTP id b2so10518662plx.7 for ; Mon, 18 Jul 2022 17:25:45 -0700 (PDT) X-Gm-Message-State: 44leZ2nvR9TvjyjpyjscyPNXx1787277AA= X-Google-Smtp-Source: AGRyM1u2sfk3jujuZ0AX5dEivzSfCytJV+g2zOrpZJAcB9V1JY+m2stW2ALwANmlSXlHhCdc4n+ABg== X-Received: by 2002:a17:902:ea03:b0:16c:b3e8:b494 with SMTP id s3-20020a170902ea0300b0016cb3e8b494mr10970129plg.95.1658190345374; Mon, 18 Jul 2022 17:25:45 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:9:6532:8264:ce7d:ced]) by smtp.gmail.com with ESMTPSA id n10-20020aa7984a000000b005251c6fbd0csm9941521pfq.29.2022.07.18.17.25.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 17:25:45 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez Subject: [edk2-devel] [PATCH v1 1/6] DynamicTablesPkg: DynamicPlatRepoLib: Added MemoryAllocationLib to inf Date: Mon, 18 Jul 2022 17:22:49 -0700 Message-Id: <20220719002254.1891-2-kuqin12@gmail.com> In-Reply-To: <20220719002254.1891-1-kuqin12@gmail.com> References: <20220719002254.1891-1-kuqin12@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kuqin12@gmail.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1658190346; bh=utB10NYb+hbNlPl9Onhu0qOfEwXstJDiMrvhKL+pxNE=; h=Cc:Date:From:Reply-To:Subject:To; b=qxgS45sXlOhYCRmn7OqjqxknexpXNqUJsQbbmWIBCBIhJL99+/c7opPeN7OuopobnZG 1DUYEKMB3IHVR5amR787ue6CT/qxm4X4nwTcGWf2vWc/XR7HqsBXCc8gTaJZnQt8Ht+by KKxHwxE+1j2i5CdiPgDNWxoUAHVDQWvrahw= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658190349225100012 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3996 The DynamicPlatRepoLib has multiple reference to MemoryAllocationLib, such as DynamicPlatRepo.c and TokenMapper.c. Not including it in the library inf file could lead to potential build break. This change added the MemoryAllocationLib into this inf file. Cc: Sami Mujawar Cc: Alexei Fedorov Co-authored-by: Joe Lopez Signed-off-by: Kun Qin Reviewed-by: Pierre Gondois Reviewed-by: Sami Mujawar --- DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepoLib.inf = | 1 + 1 file changed, 1 insertion(+) diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlat= RepoLib.inf b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPla= tRepoLib.inf index 9a3cc87fd91d..8423352550c2 100644 --- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepoLib= .inf +++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepoLib= .inf @@ -31,3 +31,4 @@ [Packages] [LibraryClasses] AcpiHelperLib BaseLib + MemoryAllocationLib --=20 2.36.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91498): https://edk2.groups.io/g/devel/message/91498 Mute This Topic: https://groups.io/mt/92473110/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sat May 18 10:48:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+91499+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91499+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658190347; cv=none; d=zohomail.com; s=zohoarc; b=A69CrDB7hCIRbXmpoqAjgtqbmsu5h+Pu3ZMvHYkU/niRBerBZghIlhjwbHrKD8n1zWDQb9ZcErI0sfYTSB50VWTj9DyzUXnJ6qd4mUlnXxK+2b7KJ5t5iGXOPTOB3uxnN2BEZClr/l5YBcSSfx9ywHlAEGtugy7FyNYk/StlTbo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658190347; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=SvkxacjtgZRJ7mDIShMmh2iqie3yY+tojnTdM/2CFho=; b=BEIOTEwuygye+YUPtTPgD7cx81qBu90SAnNALtXqxyi085VpGwTmuxa4cniWRHfYSXkWFErf9LRb8cc29VelAnHVCzZ4ApGAHwbMkuCAUCuL4jUhxj8JIs8tyoB2UjbXMM3I7HpY40lLMvDxit7JRFOc7RTEyf68mKGPjsPuMzw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91499+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1658190347650922.3681208382061; Mon, 18 Jul 2022 17:25:47 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id nOzyYY1788612xNgJjcbzrgd; Mon, 18 Jul 2022 17:25:47 -0700 X-Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) by mx.groups.io with SMTP id smtpd.web10.35305.1658190346605146214 for ; Mon, 18 Jul 2022 17:25:46 -0700 X-Received: by mail-pg1-f170.google.com with SMTP id r186so12082228pgr.2 for ; Mon, 18 Jul 2022 17:25:46 -0700 (PDT) X-Gm-Message-State: cA6pmNLU7voRWGpKoUM6X97Xx1787277AA= X-Google-Smtp-Source: AGRyM1uSM2UteunPKFZuZ1Nah2UQx8rcumDu/BzwG0/INstWp8CAXR09EXT+zq0dyYbs+TXRqpQPFQ== X-Received: by 2002:a65:558f:0:b0:419:57c9:31dd with SMTP id j15-20020a65558f000000b0041957c931ddmr26296808pgs.222.1658190345970; Mon, 18 Jul 2022 17:25:45 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:9:6532:8264:ce7d:ced]) by smtp.gmail.com with ESMTPSA id n10-20020aa7984a000000b005251c6fbd0csm9941521pfq.29.2022.07.18.17.25.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 17:25:45 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez Subject: [edk2-devel] [PATCH v1 2/6] DynamicTablesPkg: DynamicPlatRepoLib: Fix incorrect dereferencing Date: Mon, 18 Jul 2022 17:22:50 -0700 Message-Id: <20220719002254.1891-3-kuqin12@gmail.com> In-Reply-To: <20220719002254.1891-1-kuqin12@gmail.com> References: <20220719002254.1891-1-kuqin12@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kuqin12@gmail.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1658190347; bh=UliyAXNARDPd8xDkr8TnBFBHUbm7GYmdApCe3sqx45k=; h=Cc:Date:From:Reply-To:Subject:To; b=l9ItKZJYOPQC5pDiUqidxJqTj/HrZ+pfoaoco9JdP62jhcNu7frxnKSW+E8f6iO5gO3 xBwGMlIoQOsvyy5+W7e1sjZbivZKXn7MCfqCEqRqbZ7CfDygDWthA2HROB9rxM9YGJ4eD LFOftYfgNry/zVHPlujaMeRCXqBTHwAoi/I= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658190349207100011 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3996 The content of token should be derived from the data section of the `CmObject` instead of the object itself. This change fixed the issue by dereferencing the token value from the data buffer of input CmObject. Cc: Sami Mujawar Cc: Alexei Fedorov Co-authored-by: Joe Lopez Signed-off-by: Kun Qin Reviewed-by: Pierre Gondois Reviewed-by: Sami Mujawar --- DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c | = 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTok= enFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectToke= nFixer.c index 80d0aa17bc1a..84e4bb7e3bc8 100644 --- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer= .c +++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer= .c @@ -60,7 +60,7 @@ TokenFixerItsGroup ( ) { ASSERT (CmObject !=3D NULL); - ((CM_ARM_ITS_GROUP_NODE *)CmObject)->Token =3D Token; + ((CM_ARM_ITS_GROUP_NODE *)CmObject->Data)->Token =3D Token; return EFI_SUCCESS; } =20 --=20 2.36.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91499): https://edk2.groups.io/g/devel/message/91499 Mute This Topic: https://groups.io/mt/92473111/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sat May 18 10:48:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+91500+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91500+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658190348; cv=none; d=zohomail.com; s=zohoarc; b=haf4WbsEKQTpcFkkCnLqN23IUNftCvuHicClnRbEotxvpR39+NKRbTYi3YwxkXvCEzwS+v6rrqgvQnySZ3XKoIRDig6SQTedghuMk4fvtQGp2sgB80kOoZAYhPH2m++FvO7H4OQBAOWmAoi/v41Gv7LA7rAaLA9j0SJs+um7yg8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658190348; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=09iR3uimYGOQvlN1pwobClOsibdctGR8UeGCvw2Fpsw=; b=NaSGTHE437rnkUOEogaluAfPKmaypZLFXyty2Du6ZKWF6sDKb7BdflYGu3vnHxA9spuZljY/+oXCUX1nZG0Zl9fg7WrVYTzn0zDtefw+l6LBCkCSg4xZTeBAiEpA2zoXY6fgmUvMU0rNmZQIzE19qA3bha8UGA+itapNX9wwmGI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91500+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 16581903482436.50791381921772; Mon, 18 Jul 2022 17:25:48 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ppuOYY1788612xpDVOKrvlGn; Mon, 18 Jul 2022 17:25:47 -0700 X-Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by mx.groups.io with SMTP id smtpd.web09.34992.1658190347337957327 for ; Mon, 18 Jul 2022 17:25:47 -0700 X-Received: by mail-pg1-f172.google.com with SMTP id bh13so12084236pgb.4 for ; Mon, 18 Jul 2022 17:25:47 -0700 (PDT) X-Gm-Message-State: 3z35IO8bv5LwwCFlLebLmpOEx1787277AA= X-Google-Smtp-Source: AGRyM1tu12vdlr/uodLjTzrDuQwjwGmgxv126tLKFHuK4fRbpYJ/ppacIL8tYXVoaaeGisZ3ug5X1g== X-Received: by 2002:a05:6a00:188e:b0:52a:b545:559f with SMTP id x14-20020a056a00188e00b0052ab545559fmr30767306pfh.18.1658190346531; Mon, 18 Jul 2022 17:25:46 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:9:6532:8264:ce7d:ced]) by smtp.gmail.com with ESMTPSA id n10-20020aa7984a000000b005251c6fbd0csm9941521pfq.29.2022.07.18.17.25.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 17:25:46 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez Subject: [edk2-devel] [PATCH v1 3/6] DynamicTablesPkg: DynamicPlatRepoLib: Adding more token fixers Date: Mon, 18 Jul 2022 17:22:51 -0700 Message-Id: <20220719002254.1891-4-kuqin12@gmail.com> In-Reply-To: <20220719002254.1891-1-kuqin12@gmail.com> References: <20220719002254.1891-1-kuqin12@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kuqin12@gmail.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1658190347; bh=MwdXhlVupMyBjJlk9QxUv/sn63PjdS4gmR7OR6snWKA=; h=Cc:Date:From:Reply-To:Subject:To; b=OHsf3fG6JB+yOfOk1C4OCiSA3F/Gx1d/K0HdurVEMm2lELZTUKCJRPgv1H+Zse/GPHR yGuVFDNWO4lio8gQ8PQPWj99dRvj45KCMDI8IOpFz8yUgIO/S1IzYAMQf+8stx8PYK56T 7jH0mNh72uexDgMhzBxkWeKzKFy20mWA6QY= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658190349232100013 Content-Type: text/plain; charset="utf-8" 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: Pierre Gondois Reviewed-by: Sami Mujawar --- 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; } =20 +/** EArmObjNamedComponent token fixer. + + CmObjectToken fixer function that updates the Tokens in the CmObjects. + + @param [in] CmObject Pointer to the Configuration Manager Object. + @param [in] Token Token to be updated in the CmObject. + + @retval EFI_SUCCESS Success. + @retval EFI_INVALID_PARAMETER A parameter is invalid. + @retval EFI_UNSUPPORTED Not supported. +**/ +STATIC +EFI_STATUS +EFIAPI +TokenFixerNamedComponentNode ( + IN CM_OBJ_DESCRIPTOR *CmObject, + IN CM_OBJECT_TOKEN Token + ) +{ + ASSERT (CmObject !=3D NULL); + ((CM_ARM_NAMED_COMPONENT_NODE *)CmObject->Data)->Token =3D Token; + return EFI_SUCCESS; +} + +/** EArmObjRootComplex token fixer. + + CmObjectToken fixer function that updates the Tokens in the CmObjects. + + @param [in] CmObject Pointer to the Configuration Manager Object. + @param [in] Token Token to be updated in the CmObject. + + @retval EFI_SUCCESS Success. + @retval EFI_INVALID_PARAMETER A parameter is invalid. + @retval EFI_UNSUPPORTED Not supported. +**/ +STATIC +EFI_STATUS +EFIAPI +TokenFixerRootComplexNode ( + IN CM_OBJ_DESCRIPTOR *CmObject, + IN CM_OBJECT_TOKEN Token + ) +{ + ASSERT (CmObject !=3D NULL); + ((CM_ARM_ROOT_COMPLEX_NODE *)CmObject->Data)->Token =3D Token; + return EFI_SUCCESS; +} + +/** EArmObjSmmuV3 token fixer. + + CmObjectToken fixer function that updates the Tokens in the CmObjects. + + @param [in] CmObject Pointer to the Configuration Manager Object. + @param [in] Token Token to be updated in the CmObject. + + @retval EFI_SUCCESS Success. + @retval EFI_INVALID_PARAMETER A parameter is invalid. + @retval EFI_UNSUPPORTED Not supported. +**/ +STATIC +EFI_STATUS +EFIAPI +TokenFixerSmmuV3Node ( + IN CM_OBJ_DESCRIPTOR *CmObject, + IN CM_OBJECT_TOKEN Token + ) +{ + ASSERT (CmObject !=3D NULL); + ((CM_ARM_SMMUV3_NODE *)CmObject->Data)->Token =3D Token; + return EFI_SUCCESS; +} + /** TokenFixer functions table. =20 A CmObj having a CM_OBJECT_TOKEN field might need to have its @@ -90,10 +162,10 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] =3D { NULL, ///< 16 - Hypervisor Vendor Id NULL, ///< 17 - Fixed feature flags for FADT TokenFixerItsGroup, ///< 18 - ITS Group - TokenFixerNotImplemented, ///< 19 - Named Component - TokenFixerNotImplemented, ///< 20 - Root Complex + TokenFixerNamedComponentNode, ///< 19 - Named Component + TokenFixerRootComplexNode, ///< 20 - Root Complex TokenFixerNotImplemented, ///< 21 - SMMUv1 or SMMUv2 - TokenFixerNotImplemented, ///< 22 - SMMUv3 + TokenFixerSmmuV3Node, ///< 22 - SMMUv3 TokenFixerNotImplemented, ///< 23 - PMCG NULL, ///< 24 - GIC ITS Identifier Array NULL, ///< 25 - ID Mapping Array --=20 2.36.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91500): https://edk2.groups.io/g/devel/message/91500 Mute This Topic: https://groups.io/mt/92473113/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sat May 18 10:48:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+91501+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91501+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658190348; cv=none; d=zohomail.com; s=zohoarc; b=MqZjLh0uHu+zmS7NccbaxHSPJjRA4+ADeuM6mr+o1aMKJh7h/nnknVevwgf9GZr8dtEgFaYLtpeX2rlW/caVWP4T3cb/pNTM005m/cBTwJVJGISrIeIyaGeBsAI/V+f30xgiB4vrCj5x1/4kemnh4DHlLb33wtGaTTCM1DeHNUY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658190348; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=NIt3Ik/Sh6SwOPvy2GsYuUAgBg70XqF9Hn2b2mw1aSg=; b=gWVrxHBHYRvTVhILNg99xcv62qWk4Eq2qw2UKFXwoFoR05zF3ZW9+Zdft6rRREjGR84P1x6ZNHYblMU8Nksh8726DuH+K5+4MpOQUmlVX9OcOB/m2wpl9I3o/agJDidguDsvyzdn3MtV18AyATclSlSX2OMRlCsfjw5D96shFvU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91501+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1658190348989765.2742781710114; Mon, 18 Jul 2022 17:25:48 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id NRarYY1788612xMmqKGzkCYF; Mon, 18 Jul 2022 17:25:48 -0700 X-Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by mx.groups.io with SMTP id smtpd.web12.35076.1658190348020729694 for ; Mon, 18 Jul 2022 17:25:48 -0700 X-Received: by mail-pf1-f176.google.com with SMTP id g126so12116313pfb.3 for ; Mon, 18 Jul 2022 17:25:47 -0700 (PDT) X-Gm-Message-State: AWff46VAA4GgeanoEcxnIaIyx1787277AA= X-Google-Smtp-Source: AGRyM1tsZ8XlnL1YJXMu9jAJzDwD38pMBHRN+9/0g3Th8LX6nOEYE4bcOHfXixU9IcLygf6xvwx/bQ== X-Received: by 2002:a05:6a00:188e:b0:52a:af7f:e715 with SMTP id x14-20020a056a00188e00b0052aaf7fe715mr30622482pfh.2.1658190347304; Mon, 18 Jul 2022 17:25:47 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:9:6532:8264:ce7d:ced]) by smtp.gmail.com with ESMTPSA id n10-20020aa7984a000000b005251c6fbd0csm9941521pfq.29.2022.07.18.17.25.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 17:25:47 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez Subject: [edk2-devel] [PATCH v1 4/6] DynamicTablesPkg: DynamicTableManagerDxe: Added check for installed tables Date: Mon, 18 Jul 2022 17:22:52 -0700 Message-Id: <20220719002254.1891-5-kuqin12@gmail.com> In-Reply-To: <20220719002254.1891-1-kuqin12@gmail.com> References: <20220719002254.1891-1-kuqin12@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kuqin12@gmail.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1658190348; bh=cOh5uMEByIa2Ykemtvbf1h+YVU1Lctc8I3cQKvdNy0w=; h=Cc:Date:From:Reply-To:Subject:To; b=wFZ5nehKXQTME5VyAwOMYLFEq9RDSk7gJzgNFgEDU10JoIYd4Z+GZhb43J5Ibwk9+on GvlE1/DVUoxNlB1+hAlOPGtwYvOENA1Fi7EvA21mSiL0SivGRpabRg9CwzILidaaq0KDl GeFTbLTeLDCkkGR8MVmdt7rcEko2cOEjeJM= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658190349253100014 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3997 This change added an extra step to allow check for installed ACPI tables. For FADT, MADT, GTDT, DSDT and DBG2 tables, either pre-installed or supplied through AcpiTableInfo can be accepted. An extra check for FADT ACPI table existence during installation step is also added. Cc: Sami Mujawar Cc: Alexei Fedorov Co-authored-by: Joe Lopez Signed-off-by: Kun Qin Reviewed-by: Pierre Gondois Reviewed-by: Sami Mujawar --- DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.c = | 200 ++++++++++++++++---- DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf= | 1 + 2 files changed, 167 insertions(+), 34 deletions(-) diff --git a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableMa= nagerDxe.c b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableMa= nagerDxe.c index ed62299f9bbd..ac5fe0bed91b 100644 --- a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDx= e.c +++ b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDx= e.c @@ -11,6 +11,7 @@ #include #include #include +#include =20 // Module specific include files. #include @@ -387,6 +388,57 @@ BuildAndInstallAcpiTable ( return Status; } =20 +/** + This function uses the ACPI SDT protocol to locate an ACPI table. + It is really only useful for finding tables that only have a single inst= ance, + e.g. FADT, FACS, MADT, etc. It is not good for locating SSDT, etc. + + @param[in] Signature - Pointer to an ASCII string containing t= he OEM Table ID from the ACPI table header + @param[in, out] Table - Updated with a pointer to the table + @param[in, out] Handle - AcpiSupport protocol table handle for t= he table found + + @retval EFI_SUCCESS - The function completed successfully. +**/ +STATIC +EFI_STATUS +LocateAcpiTableBySignature ( + IN UINT32 Signature, + IN OUT EFI_ACPI_DESCRIPTION_HEADER **Table, + IN OUT UINTN *Handle + ) +{ + EFI_STATUS Status; + INTN Index; + EFI_ACPI_TABLE_VERSION Version; + EFI_ACPI_SDT_PROTOCOL *AcpiSdt; + + AcpiSdt =3D NULL; + Status =3D gBS->LocateProtocol (&gEfiAcpiSdtProtocolGuid, NULL, (VOID *= *)&AcpiSdt); + + if (EFI_ERROR (Status) || (AcpiSdt =3D=3D NULL)) { + return EFI_NOT_FOUND; + } + + // + // Locate table with matching ID + // + Version =3D 0; + Index =3D 0; + do { + Status =3D AcpiSdt->GetAcpiTable (Index, (EFI_ACPI_SDT_HEADER **)Table= , &Version, Handle); + if (EFI_ERROR (Status)) { + break; + } + + Index++; + } while ((*Table)->Signature !=3D Signature); + + // + // If we found the table, there will be no error. + // + return Status; +} + /** The function checks if the Configuration Manager has provided the mandatory ACPI tables for installation. =20 @@ -411,6 +463,9 @@ VerifyMandatoryTablesArePresent ( BOOLEAN DsdtFound; BOOLEAN Dbg2Found; BOOLEAN SpcrFound; + UINTN Handle; + + EFI_ACPI_DESCRIPTION_HEADER *DummyHeader; =20 Status =3D EFI_SUCCESS; FadtFound =3D FALSE; @@ -447,32 +502,99 @@ VerifyMandatoryTablesArePresent ( } =20 // We need at least the FADT, MADT, GTDT and the DSDT tables to boot - if (!FadtFound) { - DEBUG ((DEBUG_ERROR, "ERROR: FADT Table not found\n")); + // But they also might be published already, so we can search from there + Handle =3D 0; + Status =3D LocateAcpiTableBySignature ( + EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + &DummyHeader, + &Handle + ); + if (EFI_ERROR (Status) && !FadtFound) { + DEBUG ((DEBUG_ERROR, "ERROR: FADT Table not found.\n")); Status =3D EFI_NOT_FOUND; + } else if (!EFI_ERROR (Status) && FadtFound) { + DEBUG ((DEBUG_ERROR, "ERROR: FADT Table found while already published.= \n")); + Status =3D EFI_ALREADY_STARTED; + } else { + FadtFound =3D TRUE; } =20 - if (!MadtFound) { + Handle =3D 0; + Status =3D LocateAcpiTableBySignature ( + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, + &DummyHeader, + &Handle + ); + if (EFI_ERROR (Status) && !MadtFound) { DEBUG ((DEBUG_ERROR, "ERROR: MADT Table not found.\n")); Status =3D EFI_NOT_FOUND; + } else if (!EFI_ERROR (Status) && MadtFound) { + DEBUG ((DEBUG_ERROR, "ERROR: MADT Table found while already published.= \n")); + Status =3D EFI_ALREADY_STARTED; + } else { + MadtFound =3D TRUE; } =20 - if (!GtdtFound) { + Handle =3D 0; + Status =3D LocateAcpiTableBySignature ( + EFI_ACPI_6_2_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, + &DummyHeader, + &Handle + ); + if (EFI_ERROR (Status) && !GtdtFound) { DEBUG ((DEBUG_ERROR, "ERROR: GTDT Table not found.\n")); Status =3D EFI_NOT_FOUND; + } else if (!EFI_ERROR (Status) && GtdtFound) { + DEBUG ((DEBUG_ERROR, "ERROR: GTDT Table found while already published.= \n")); + Status =3D EFI_ALREADY_STARTED; + } else { + GtdtFound =3D TRUE; } =20 - if (!DsdtFound) { + Handle =3D 0; + Status =3D LocateAcpiTableBySignature ( + EFI_ACPI_6_2_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATUR= E, + &DummyHeader, + &Handle + ); + if (EFI_ERROR (Status) && !DsdtFound) { DEBUG ((DEBUG_ERROR, "ERROR: DSDT Table not found.\n")); Status =3D EFI_NOT_FOUND; + } else if (!EFI_ERROR (Status) && DsdtFound) { + DEBUG ((DEBUG_ERROR, "ERROR: DSDT Table found while already published.= \n")); + Status =3D EFI_ALREADY_STARTED; + } else { + DsdtFound =3D TRUE; } =20 - if (!Dbg2Found) { + Handle =3D 0; + Status =3D LocateAcpiTableBySignature ( + EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE, + &DummyHeader, + &Handle + ); + if (EFI_ERROR (Status) && !Dbg2Found) { DEBUG ((DEBUG_WARN, "WARNING: DBG2 Table not found.\n")); + } else if (!EFI_ERROR (Status) && Dbg2Found) { + DEBUG ((DEBUG_ERROR, "ERROR: DBG2 Table found while already published.= \n")); + Status =3D EFI_ALREADY_STARTED; + } else { + Dbg2Found =3D TRUE; } =20 - if (!SpcrFound) { + Handle =3D 0; + Status =3D LocateAcpiTableBySignature ( + EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE, + &DummyHeader, + &Handle + ); + if (EFI_ERROR (Status) && !SpcrFound) { DEBUG ((DEBUG_WARN, "WARNING: SPCR Table not found.\n")); + } else if (!EFI_ERROR (Status) && SpcrFound) { + DEBUG ((DEBUG_ERROR, "ERROR: SPCR Table found while already published.= \n")); + Status =3D EFI_ALREADY_STARTED; + } else { + SpcrFound =3D TRUE; } =20 return Status; @@ -500,11 +622,13 @@ ProcessAcpiTables ( IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol ) { - EFI_STATUS Status; - EFI_ACPI_TABLE_PROTOCOL *AcpiTableProtocol; - CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo; - UINT32 AcpiTableCount; - UINT32 Idx; + EFI_STATUS Status; + EFI_ACPI_TABLE_PROTOCOL *AcpiTableProtocol; + CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo; + UINT32 AcpiTableCount; + UINT32 Idx; + UINTN Handle; + EFI_ACPI_DESCRIPTION_HEADER *DummyHeader; =20 ASSERT (TableFactoryProtocol !=3D NULL); ASSERT (CfgMgrProtocol !=3D NULL); @@ -570,29 +694,37 @@ ProcessAcpiTables ( } =20 // Add the FADT Table first. - for (Idx =3D 0; Idx < AcpiTableCount; Idx++) { - if (CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdFadt) =3D=3D - AcpiTableInfo[Idx].TableGeneratorId) - { - Status =3D BuildAndInstallAcpiTable ( - TableFactoryProtocol, - CfgMgrProtocol, - AcpiTableProtocol, - &AcpiTableInfo[Idx] - ); - if (EFI_ERROR (Status)) { - DEBUG (( - DEBUG_ERROR, - "ERROR: Failed to find build and install ACPI FADT Table." \ - " Status =3D %r\n", - Status - )); - return Status; + Status =3D LocateAcpiTableBySignature ( + EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, + &DummyHeader, + &Handle + ); + if (EFI_ERROR (Status)) { + // FADT is not yet installed + for (Idx =3D 0; Idx < AcpiTableCount; Idx++) { + if (CREATE_STD_ACPI_TABLE_GEN_ID (EStdAcpiTableIdFadt) =3D=3D + AcpiTableInfo[Idx].TableGeneratorId) + { + Status =3D BuildAndInstallAcpiTable ( + TableFactoryProtocol, + CfgMgrProtocol, + AcpiTableProtocol, + &AcpiTableInfo[Idx] + ); + if (EFI_ERROR (Status)) { + DEBUG (( + DEBUG_ERROR, + "ERROR: Failed to find build and install ACPI FADT Table." \ + " Status =3D %r\n", + Status + )); + return Status; + } + + break; } - - break; - } - } // for + } // for + } =20 // Add remaining ACPI Tables for (Idx =3D 0; Idx < AcpiTableCount; Idx++) { diff --git a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableMa= nagerDxe.inf b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTable= ManagerDxe.inf index 028c3d413cf8..5ca98c8b4895 100644 --- a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDx= e.inf +++ b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDx= e.inf @@ -36,6 +36,7 @@ [LibraryClasses] =20 [Protocols] gEfiAcpiTableProtocolGuid # PROTOCOL ALWAYS_CONSUMED + gEfiAcpiSdtProtocolGuid # PROTOCOL ALWAYS_CONSUMED =20 gEdkiiConfigurationManagerProtocolGuid # PROTOCOL ALWAYS_CONSUMED gEdkiiDynamicTableFactoryProtocolGuid # PROTOCOL ALWAYS_CONSUMED --=20 2.36.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91501): https://edk2.groups.io/g/devel/message/91501 Mute This Topic: https://groups.io/mt/92473114/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sat May 18 10:48:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+91502+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91502+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658190354; cv=none; d=zohomail.com; s=zohoarc; b=HituhgT1EBGlunayd19V4u2mn1Orygg4M0X8hfi8/9RiF/kVF/gO2AgMxZYYxIfE3mQVt4+Mgh0Og7v2s93yC128iHN84xGJsIwxB7ww6nx4d8OsfK17L6FKmkQ7f5A6jA7kiZklsKSpxhXfEyjxLQ1mHKjj8B/SPrLeHOLROb4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658190354; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=54vl/Pgu1cJWayOdY/UEr9lE88PTvUN8bo/Qg2gR9yw=; b=jSC8AzELr3U3N3n9TYWrOWhJ+3fj0vnRurA/rFNBa/nisFGWyH5NaSYR6ndVIZp8I6i9BFDo4yDmQ/x6zimpVLhIBtyqO2YCskyPWgvoZBVfoXcCz8oxwGYeRw9NiTbOIfW+26JMqXXVb8eVfs6UCG1ozTFsspug20R9BqwHr6s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91502+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 165819035473797.30739707069131; Mon, 18 Jul 2022 17:25:54 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 974MYY1788612xnSDUT28a0j; Mon, 18 Jul 2022 17:25:54 -0700 X-Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by mx.groups.io with SMTP id smtpd.web09.34993.1658190348641829540 for ; Mon, 18 Jul 2022 17:25:48 -0700 X-Received: by mail-pg1-f169.google.com with SMTP id 72so12104256pge.0 for ; Mon, 18 Jul 2022 17:25:48 -0700 (PDT) X-Gm-Message-State: E74SgFxgvwYyR3bYSMvRusqQx1787277AA= X-Google-Smtp-Source: AGRyM1vUImT0vTy6RWrntpjTf9mvyYuuKyEBdHPM4Z9jlusrwYW5V32X/pV6+qqhdEiaEGViAI9KxQ== X-Received: by 2002:a63:210f:0:b0:40d:dd27:8361 with SMTP id h15-20020a63210f000000b0040ddd278361mr26863026pgh.306.1658190347964; Mon, 18 Jul 2022 17:25:47 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:9:6532:8264:ce7d:ced]) by smtp.gmail.com with ESMTPSA id n10-20020aa7984a000000b005251c6fbd0csm9941521pfq.29.2022.07.18.17.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 17:25:47 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Joe Lopez Subject: [edk2-devel] [PATCH v1 5/6] DynamicTablesPkg: AcpiSsdtPcieLibArm: Added function to reserve ECAM space Date: Mon, 18 Jul 2022 17:22:53 -0700 Message-Id: <20220719002254.1891-6-kuqin12@gmail.com> In-Reply-To: <20220719002254.1891-1-kuqin12@gmail.com> References: <20220719002254.1891-1-kuqin12@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kuqin12@gmail.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1658190354; bh=VQ/MXaSlKTHseyJRtHsqJuSrexs+L6XKMMWuQGjzTsU=; h=Cc:Date:From:Reply-To:Subject:To; b=rfmOhBIRKYCimUJ79aozNJGjFT7d6C9qNUdGcX1wBHmzOJIsUadcS70Du4xuj4LVFsB jJ4HOoFrWaUpk4PlSFQecpm2ZKu2WIyIDSE8Vodysg9+YbdXXQAV71kLLJPLzfjP1ZzbR 3k2JYnUsLk1zyuSnwbGWb0NH9zKkJMrn8f4= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658190355422100001 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3998 Certain OSes will complain if the ECAM config space is not reserved in the ACPI namespace. This change adds a function to reserve PNP motherboard resources for a given PCI node. Co-authored-by: Joe Lopez Signed-off-by: Kun Qin Reviewed-by: Pierre Gondois --- DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c |= 130 ++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieG= enerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieG= enerator.c index 626e53d70205..d9ed513a2ee3 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c @@ -772,6 +772,128 @@ error_handler: return Status; } =20 +/** Generate a Pci Resource Template to hold Address Space Info + + @param [in] Generator The SSDT Pci generator. + @param [in] CfgMgrProtocol Pointer to the Configuration Manager + Protocol interface. + @param [in] PciInfo Pci device information. + @param [in, out] PciNode RootNode of the AML tree to populate. + + @retval EFI_SUCCESS The function completed successfully. + @retval EFI_INVALID_PARAMETER Invalid parameter. + @retval EFI_OUT_OF_RESOURCES Could not allocate memory. +**/ +STATIC +EFI_STATUS +EFIAPI +GeneratePciRes ( + IN ACPI_PCI_GENERATOR *Generator, + IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtoc= ol, + IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo, + IN OUT AML_OBJECT_NODE_HANDLE PciNode + ) +{ + EFI_STATUS Status; + UINT32 EisaId; + AML_OBJECT_NODE_HANDLE ResNode; + AML_OBJECT_NODE_HANDLE CrsNode; + BOOLEAN Translation; + UINT32 Index; + CM_ARM_OBJ_REF *RefInfo; + UINT32 RefCount; + CM_ARM_PCI_ADDRESS_MAP_INFO *AddrMapInfo; + + // ASL: Device (PCIx) {} + Status =3D AmlCodeGenDevice ("RES0", PciNode, &ResNode); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + // ASL: Name (_HID, EISAID ("PNP0C02")) + Status =3D AmlGetEisaIdFromString ("PNP0C02", &EisaId); /* PNP Motherboa= rd Resources */ + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + Status =3D AmlCodeGenNameInteger ("_HID", EisaId, ResNode, NULL); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + // ASL: Name (_CRS, ResourceTemplate () {}) + Status =3D AmlCodeGenNameResourceTemplate ("_CRS", ResNode, &CrsNode); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + // Get the array of CM_ARM_OBJ_REF referencing the + // CM_ARM_PCI_ADDRESS_MAP_INFO objects. + Status =3D GetEArmObjCmRef ( + CfgMgrProtocol, + PciInfo->AddressMapToken, + &RefInfo, + &RefCount + ); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + for (Index =3D 0; Index < RefCount; Index++) { + // Get CM_ARM_PCI_ADDRESS_MAP_INFO structures one by one. + Status =3D GetEArmObjPciAddressMapInfo ( + CfgMgrProtocol, + RefInfo[Index].ReferenceToken, + &AddrMapInfo, + NULL + ); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + Translation =3D (AddrMapInfo->CpuAddress !=3D AddrMapInfo->PciAddress); + + switch (AddrMapInfo->SpaceCode) { + case PCI_SS_CONFIG: + Status =3D AmlCodeGenRdQWordMemory ( + FALSE, + TRUE, + TRUE, + TRUE, + FALSE, // non-cacheable + TRUE, + 0, + AddrMapInfo->PciAddress, + AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1, + Translation ? AddrMapInfo->CpuAddress : 0, + AddrMapInfo->AddressSize, + 0, + NULL, + 0, + TRUE, + CrsNode, + NULL + ); + break; + default: + break; + } // switch + + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + } + + return Status; +} + /** Generate a Pci device. =20 @param [in] Generator The SSDT Pci generator. @@ -855,9 +977,17 @@ GeneratePciDevice ( return Status; } =20 + // Add the PNP Motherboard Resources Device to reserve ECAM space + Status =3D GeneratePciRes (Generator, CfgMgrProtocol, PciInfo, PciNode); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + // Add the template _OSC method. Status =3D AddOscMethod (PciNode); ASSERT_EFI_ERROR (Status); + return Status; } =20 --=20 2.36.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91502): https://edk2.groups.io/g/devel/message/91502 Mute This Topic: https://groups.io/mt/92473116/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sat May 18 10:48:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+91503+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91503+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658190350; cv=none; d=zohomail.com; s=zohoarc; b=VZL3bM7WYhaQj4Uf1TxKOqmD5cGZwxAHiw1mc+V7LeudQYpP9s/EgsE0KS2vo594WGfuP06hZl3yoZrcWKEUJpMwDpH1OHEuDTy7EyEaIPVm/1Ibv31h7+nbM+He7sgEFIkGU/OZFwogAQLNB6Vz5+yy3hPJB5CeNnoNyFtTUBU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658190350; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=/WYWRLO5S2oohm+zb0D3VqvcgmMfX580B2udPobnYXs=; b=VtYdfOB2Np/vqxVhRGFaq/48cf2A1LvcyGF3Sz+QlVBHmlkV10KC3DXXpcT0NfsdUx0CaQoPe4aLin7TJfC/kP4Ygc31guRvokVDI1uxF3s03wp93qmlelFTM8KgGpNv5IU7fbjEvu7XGjJCXRYR4SF9Gl9US7CRpmcMuFidSdM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+91503+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1658190350177507.73812632536783; Mon, 18 Jul 2022 17:25:50 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id CFqzYY1788612xCGidlNERKa; Mon, 18 Jul 2022 17:25:49 -0700 X-Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by mx.groups.io with SMTP id smtpd.web09.34994.1658190349316077833 for ; Mon, 18 Jul 2022 17:25:49 -0700 X-Received: by mail-pf1-f174.google.com with SMTP id y141so12107577pfb.7 for ; Mon, 18 Jul 2022 17:25:49 -0700 (PDT) X-Gm-Message-State: 7BLevz6spZLFOJ7xvgmTV5wnx1787277AA= X-Google-Smtp-Source: AGRyM1tNsDBTYjbseJ0UrkaGOSUcmPRVEfo0eafiWCbCf0sZq7YZFwQZ8D0Ly4YHkqBX3a7JMKQn3A== X-Received: by 2002:aa7:8811:0:b0:52a:b0a4:a324 with SMTP id c17-20020aa78811000000b0052ab0a4a324mr30991889pfo.63.1658190348653; Mon, 18 Jul 2022 17:25:48 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:9:6532:8264:ce7d:ced]) by smtp.gmail.com with ESMTPSA id n10-20020aa7984a000000b005251c6fbd0csm9941521pfq.29.2022.07.18.17.25.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 17:25:48 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez Subject: [edk2-devel] [PATCH v1 6/6] DynamicTablesPkg: AcpiSsdtPcieLibArm: Added case handling for PCI config Date: Mon, 18 Jul 2022 17:22:54 -0700 Message-Id: <20220719002254.1891-7-kuqin12@gmail.com> In-Reply-To: <20220719002254.1891-1-kuqin12@gmail.com> References: <20220719002254.1891-1-kuqin12@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kuqin12@gmail.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1658190349; bh=HxYQ1XtWwNbU79cbPiOOLJ6x8KfLZNbnxpVZUIpiBHI=; h=Cc:Date:From:Reply-To:Subject:To; b=lcPLW3dUk51i4ror2tKaqbzWaLqZsIY3DWNxMMXyeeMYqkHEZEoDCbSMbM2/1Fjpzgo gv1DIIAB1+gQ3D7ZTSriSC1uFloLq1BJllm25A5pj8fp7Gdk6ln1MPMKjP60T0Xq25l6Z aYqSPAQOKdSDUQVz3+ZRcZVcewa7FJV8ZL8= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658190351225100025 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3998 This change added a switch case handling for PCI_SS_CONFIG during SSDT generation. This will allow PCI config case return EFI_SUCCESS instead of EFI_INVALID_PARAMETER. Cc: Sami Mujawar Cc: Alexei Fedorov Co-authored-by: Joe Lopez Signed-off-by: Kun Qin Reviewed-by: Pierre Gondois --- DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c |= 5 +++++ 1 file changed, 5 insertions(+) diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieG= enerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieG= enerator.c index d9ed513a2ee3..f3e153ef5309 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c @@ -676,6 +676,11 @@ GeneratePciCrs ( ); break; =20 + case PCI_SS_CONFIG: + // Do nothing + Status =3D EFI_SUCCESS; + break; + default: Status =3D EFI_INVALID_PARAMETER; } // switch --=20 2.36.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91503): https://edk2.groups.io/g/devel/message/91503 Mute This Topic: https://groups.io/mt/92473117/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-