From nobody Tue May 14 09:39:21 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+92313+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+92313+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660170539; cv=none; d=zohomail.com; s=zohoarc; b=CB/ZvEKa8LS79l336DeG86xpNmrBxqLHrnH0nlC1g+1zE/O2F8Xato5rOJmBZtkWV7uJuOvwIuc0QhqfcpC9qVJc2PX8tziplHJPwdqkZ0wi+k4t0mgnGif3H4RHMDrmw/CxfXpaWwUdO5yEecH/z2hako8ZUqMCWygNMGanXl4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660170539; 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=PQKzbhCySQ5hbEmQQDl/t3eUW/Hj1hEc6n1+wKLd0Q4=; b=mmwxm66E6/tJG8mAK8yV/JarXjbVCdGepL8yKVTTFykcxj2FQzBNNgJ8rd8tomH3W8NpWwgXgSqIktUN9Wh0rH7s6ccW1FFwqpQCfhYIGYKL16lBHmrBxGTkhZHL/neDDzXE2Yo7GH6rhkqqUIbf/1PXynU4H3uT6hqLNrrPXUM= 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+92313+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 1660170539423657.3504535555314; Wed, 10 Aug 2022 15:28:59 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id TNezYY1788612xAAMWq1P7c3; Wed, 10 Aug 2022 15:28:59 -0700 X-Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) by mx.groups.io with SMTP id smtpd.web12.986.1660170538493770915 for ; Wed, 10 Aug 2022 15:28:58 -0700 X-Received: by mail-pf1-f172.google.com with SMTP id y141so14950892pfb.7 for ; Wed, 10 Aug 2022 15:28:58 -0700 (PDT) X-Gm-Message-State: 5vS6bcVWlNbmIcP9vzt2n7B3x1787277AA= X-Google-Smtp-Source: AA6agR4qg/VvqKpt2lBFNSgFYBuVdybouJBa3NoUtFSjzGICXogPM7W7xFj20MgEj00ot1wozO+ihQ== X-Received: by 2002:a63:905:0:b0:415:fcde:2423 with SMTP id 5-20020a630905000000b00415fcde2423mr25186560pgj.374.1660170537799; Wed, 10 Aug 2022 15:28:57 -0700 (PDT) X-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.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 15:28:57 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez , Sami Mujawar , Pierre Gondois Subject: [edk2-devel] [PATCH v4 1/6] DynamicTablesPkg: DynamicPlatRepoLib: Added MemoryAllocationLib to inf Date: Wed, 10 Aug 2022 15:28:48 -0700 Message-Id: <20220810222853.1916-2-kuqin12@gmail.com> In-Reply-To: <20220810222853.1916-1-kuqin12@gmail.com> References: <20220810222853.1916-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=1660170539; bh=vtepXsZfqWzxY61c9lXcLmyyITCn8Lh7My+QYPnSdJ8=; h=Cc:Date:From:Reply-To:Subject:To; b=dqSI7/6MR03m9gPH2MqLB0Avow+djQr6iMed+f3thIXsSfTJQtDbp75xT06jgJTewYv 2jON3mICA1DP7bxmvS7qhHQF9kaSwhTHM3aBiufvS6dZvluwzhFJt4qGSu+jl7XdijaHd EIKrI6fJbtyVxbSRryRLnOHOYVq+X5Btcp0= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660170540851100004 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: Sami Mujawar Reviewed-by: Pierre Gondois Tested-by: Sami Mujawar --- Notes: v2: - Added Reviewed-by tag [Sami] - Added Reviewed-by tag [Pierre] =20 v3: - No change. =20 v4: - No change. 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.37.1.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 (#92313): https://edk2.groups.io/g/devel/message/92313 Mute This Topic: https://groups.io/mt/92947264/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 Tue May 14 09:39:21 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+92314+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+92314+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660170540; cv=none; d=zohomail.com; s=zohoarc; b=QZCVV6tBT4fXeHOPEyCSbsRZC0vrKYd3U2kKTD3gBSGs7E5jSXrFyV5DgyuTVjV9Z3YW1tOzQhYKkiwOImnQqEFWDbcRGA9miXo4O94qga+lYV+F/iye8yKgH8Wtw6WYvhH7UXwHvvd6NHCkeBn+kroTAukAVQclpOzUpp6PLe0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660170540; 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=cqYsNZJy4IUtwBEZTh8fSKx84kOhTxX+qkJwb8RtwX4=; b=IpTcNAjw/XFtbQ6YwqoQDc4aNSvYIO9JfxlGj58Xpg17U0QA2psBD3wDe9hQO4oTrC882q7/vipVuU1/5ZcwzEb2goKKw0MAAzUzVE/lsSwHPa4fKIclRsMEWGzn9FVCqdPtkcl70Xl+bZsLGqv8DQ9i2UsmGXmJNItnwManZYY= 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+92314+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 1660170539967273.9383455215077; Wed, 10 Aug 2022 15:28:59 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id dLPUYY1788612xlA629sEMyr; Wed, 10 Aug 2022 15:28:59 -0700 X-Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by mx.groups.io with SMTP id smtpd.web09.990.1660170539055088306 for ; Wed, 10 Aug 2022 15:28:59 -0700 X-Received: by mail-pl1-f179.google.com with SMTP id z19so15478603plb.1 for ; Wed, 10 Aug 2022 15:28:59 -0700 (PDT) X-Gm-Message-State: 4RZsOXuDtk8pXJtjJ01dPpPfx1787277AA= X-Google-Smtp-Source: AA6agR7dCQ/hjHugCdBP7ZL3A8OJMOrEUk82xlc8fxzBTNNpYjv4f8/fB63HMIpjufq4KhVax4xX+w== X-Received: by 2002:a17:902:760c:b0:16d:e87:ce93 with SMTP id k12-20020a170902760c00b0016d0e87ce93mr29378131pll.79.1660170538425; Wed, 10 Aug 2022 15:28:58 -0700 (PDT) X-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.57 (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: [edk2-devel] [PATCH v4 2/6] DynamicTablesPkg: DynamicPlatRepoLib: Fix incorrect dereferencing Date: Wed, 10 Aug 2022 15:28:49 -0700 Message-Id: <20220810222853.1916-3-kuqin12@gmail.com> In-Reply-To: <20220810222853.1916-1-kuqin12@gmail.com> References: <20220810222853.1916-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=1660170539; bh=C43BJ6H/WwcuCQp9QB2olrc/ZrltJZT80cW9eeAFsGA=; h=Cc:Date:From:Reply-To:Subject:To; b=AvodnQenZ5jSgruemaYHkY1XUNLDlwhDJo1yJAEbmvxTe5eZemfm4eJTYKYDBwPokDz M3IGxdQQ3MyBPTTJ7wlWzpQFnQCe7B5Vxq6eSAUHexzJh0XJlLmoFuCjz+ayacW4t7Q5O azXQR6QA3yDrjhMZHhIu4IV3APe1Qsxb2Cg= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660170540851100003 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: Sami Mujawar Reviewed-by: Pierre Gondois Tested-by: Sami Mujawar --- Notes: v2: - Added Reviewed-by tag [Sami] - Added Reviewed-by tag [Pierre] =20 v3: - No change. =20 v4: - No change. 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.37.1.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 (#92314): https://edk2.groups.io/g/devel/message/92314 Mute This Topic: https://groups.io/mt/92947265/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 Tue May 14 09:39:21 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+92315+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+92315+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660170541; cv=none; d=zohomail.com; s=zohoarc; b=nBGm/errSX1LG0WjqH74HdYtCGWlvPyfzkryv1IPW1eEXfdCw0eI3Gr7QA2oaT+kvwtnD5gTPmRThvCnoOIihFmSbi0bf8stGBZ986HJ5kVQg6z5q+w2Zt1dR1FUXn69+PTaxa4xutNUf5rhJfabKqZoYzdv8xOh1UiBC/2fgVs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660170541; 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=IIUD2wToXD9t3Sa+e/QG9kRTajLTtajFAkdoPpjjY48=; b=D+PBUsP9/mMjJ0luisRocFU8Cj7myvO+5t7MNev7mRFBv4CTedMeEYMH8rwNQdgkDnHO3rEuEMeAoi7mrJfcBmsMxQ0sskIA73ygbapE2uxglyJMriswPzUzGD3NqahHLTZtAzlozl2pCForVjJNzzNl6mwl9j7ejcs7NJv+5x4= 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+92315+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 1660170541775377.1317605195213; Wed, 10 Aug 2022 15:29:01 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id MYh6YY1788612xqrJBNfhMwN; Wed, 10 Aug 2022 15:29:00 -0700 X-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 X-Received: by mail-pj1-f41.google.com with SMTP id gp7so1697098pjb.4 for ; Wed, 10 Aug 2022 15:28:59 -0700 (PDT) X-Gm-Message-State: GHKtpnIB3AvOpVFInqvgVcrAx1787277AA= 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) X-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: [edk2-devel] [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> In-Reply-To: <20220810222853.1916-1-kuqin12@gmail.com> References: <20220810222853.1916-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=1660170540; bh=reyR62sFLLSZ2A0PgXEDmIDG824HLRYrBr7ByGE+OLk=; h=Cc:Date:From:Reply-To:Subject:To; b=gt1sWyUfv//APTjKmRfz7ok8jG48qIDyJoWSYPx0VDjEk2MJPPObXVdNSNnCtqvfetq uomtJt3O+1r9fsvlhIlh+fEJVpjKfHCK5q58fwQER6kk02TZv6jlV3KGWOSfVQozEjeBS GkIkVOxczQptSdX/IcAoI1i/Wapz0KCdPkI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660170542860100013 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: Sami Mujawar Reviewed-by: Pierre Gondois Tested-by: Sami Mujawar --- Notes: v2: - Added Reviewed-by tag [Sami] - Added Reviewed-by tag [Pierre] =20 v3: - No change. =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; } =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.37.1.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 (#92315): https://edk2.groups.io/g/devel/message/92315 Mute This Topic: https://groups.io/mt/92947266/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 Tue May 14 09:39:21 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+92316+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+92316+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660170541; cv=none; d=zohomail.com; s=zohoarc; b=GNGgImZP+uINvjVxIdtqOQNIDZd6e/EyD/Jzopf953bl14d5F0Pj59q4Xvu0JyCyp8vI17jx2RLBFdjZoK3TN9dsGfDGS3Z1odh52vkZUQTBbzqVnx5G+39HMo8lHCrqxA7xvwlSs3OGG8bBZ5tTL4vPoDfdNwjb9k5RYSc7IUM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660170541; 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=jsy4uZtjVDa6HwiuhAY/pSd2KIIR4VuSaGNjCj73QBk=; b=LkDVbdrHyl5yRB+6wHui3rNpknRQoSv3F7WYRa8tUySDFazcry9EDdLl/VH5E8+ZIamDJCyFSkupkTMzXvIHqXVHWAeDr4n7l1YEMEHsPjZJL1y2R3albZ4vDUNN+8NsYIe629x7WAPXN0xNT6ka+jS7XViwLgGzOS0X1ZOIgsc= 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+92316+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 1660170541717588.566068868181; Wed, 10 Aug 2022 15:29:01 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id MeSpYY1788612xDqOcKHpBIY; Wed, 10 Aug 2022 15:29:01 -0700 X-Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) by mx.groups.io with SMTP id smtpd.web11.944.1660170540626412034 for ; Wed, 10 Aug 2022 15:29:00 -0700 X-Received: by mail-pg1-f178.google.com with SMTP id q16so15572145pgq.6 for ; Wed, 10 Aug 2022 15:29:00 -0700 (PDT) X-Gm-Message-State: zOFLfg7CFJYroHpCY3D26wP6x1787277AA= X-Google-Smtp-Source: AA6agR67yjgV5DHZefwf2e+L+hehOO/KPhAo+4cWFnIJnaqlN0GqMVxZpdO7VHvk2l6c7+lTV5ziqg== X-Received: by 2002:a63:4081:0:b0:405:4f9:e802 with SMTP id n123-20020a634081000000b0040504f9e802mr24697116pga.211.1660170539809; Wed, 10 Aug 2022 15:28:59 -0700 (PDT) X-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.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 15:28:59 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez , Pierre Gondois Subject: [edk2-devel] [PATCH v4 4/6] DynamicTablesPkg: DynamicTableManagerDxe: Added check for installed tables Date: Wed, 10 Aug 2022 15:28:51 -0700 Message-Id: <20220810222853.1916-5-kuqin12@gmail.com> In-Reply-To: <20220810222853.1916-1-kuqin12@gmail.com> References: <20220810222853.1916-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=1660170541; bh=BbyjQvdOZu+uLF/Njpimhjy4FTxXYc2o6NYYzxCvx/g=; h=Cc:Date:From:Reply-To:Subject:To; b=Bj/FHAJjUqYEiB8FH0lGvk8EHevOl1tTC/nDUw3mZVAGWqcdoxfYiTE09f/82BiAxdA pZ91PzZH8vOS4E/FkkSug0vEPwEyPts8w2QxyU6zWT13ehwWtncMp2EM7vkFdy/WnbhTG D1TGSB/xoCHxtlj38Y828n3Pq15r7UUBA0c= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660170542881100015 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, DBG2 and SPCR 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 Tested-by: Sami Mujawar --- Notes: v2: - Function description updates [Sami] - Refactorized the table verification [Pierre] =20 v3: - Added descriptions for new structures [Pierre] - Added check for SDT protocol PCD before using it [Pierre] =20 v4: - Reset return status before inspecting the table presence [Sami] DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.c = | 216 ++++++++++++-------- DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf= | 4 + 2 files changed, 140 insertions(+), 80 deletions(-) diff --git a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableMa= nagerDxe.c b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableMa= nagerDxe.c index ed62299f9bbd..1e9b811c4017 100644 --- a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDx= e.c +++ b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDx= e.c @@ -10,6 +10,7 @@ #include #include #include +#include #include =20 // Module specific include files. @@ -22,6 +23,58 @@ #include #include =20 +/// +/// Bit definitions for acceptable ACPI table presence formats. +/// Currently only ACPI tables present in the ACPI info list and +/// already installed will count towards "Table Present" during +/// verification routine. +/// +#define ACPI_TABLE_PRESENT_INFO_LIST BIT0 +#define ACPI_TABLE_PRESENT_INSTALLED BIT1 + +/// +/// Order of ACPI table being verified during presence inspection. +/// +#define ACPI_TABLE_VERIFY_FADT 0 +#define ACPI_TABLE_VERIFY_MADT 1 +#define ACPI_TABLE_VERIFY_GTDT 2 +#define ACPI_TABLE_VERIFY_DSDT 3 +#define ACPI_TABLE_VERIFY_DBG2 4 +#define ACPI_TABLE_VERIFY_SPCR 5 +#define ACPI_TABLE_VERIFY_COUNT 6 + +/// +/// Private data structure to verify the presence of mandatory +/// or optional ACPI tables. +/// +typedef struct { + /// ESTD ID for the ACPI table of interest. + ESTD_ACPI_TABLE_ID EstdTableId; + /// Standard UINT32 ACPI signature. + UINT32 AcpiTableSignature; + /// 4 character ACPI table name (the 5th char8 is for null terminator). + CHAR8 AcpiTableName[sizeof (UINT32) + 1]; + /// Indicator on whether the ACPI table is required. + BOOLEAN IsMandatory; + /// Formats of verified presences, as defined by ACPI_TABLE_PRESENT_* + /// This field should be initialized to 0 and will be populated during + /// verification routine. + UINT16 Presence; +} ACPI_TABLE_PRESENCE_INFO; + +/// +/// We require the FADT, MADT, GTDT and the DSDT tables to boot. +/// This list also include optional ACPI tables: DBG2, SPCR. +/// +ACPI_TABLE_PRESENCE_INFO mAcpiVerifyTables[ACPI_TABLE_VERIFY_COUNT] =3D { + { EStdAcpiTableIdFadt, EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATU= RE, "FADT", TRUE, 0 }, + { EStdAcpiTableIdMadt, EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGN= ATURE, "MADT", TRUE, 0 }, + { EStdAcpiTableIdGtdt, EFI_ACPI_6_2_GENERIC_TIMER_DESCRIPTION_TABLE_SIGN= ATURE, "GTDT", TRUE, 0 }, + { EStdAcpiTableIdDsdt, EFI_ACPI_6_2_DIFFERENTIATED_SYSTEM_DESCRIPTION_TA= BLE_SIGNATURE, "DSDT", TRUE, 0 }, + { EStdAcpiTableIdDbg2, EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE, = "DBG2", FALSE, 0 }, + { EStdAcpiTableIdSpcr, EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABL= E_SIGNATURE, "SPCR", FALSE, 0 }, +}; + /** This macro expands to a function that retrieves the ACPI Table List from the Configuration Manager. */ @@ -395,6 +448,7 @@ BuildAndInstallAcpiTable ( =20 @retval EFI_SUCCESS Success. @retval EFI_NOT_FOUND If mandatory table is not found. + @retval EFI_ALREADY_STARTED If mandatory table found in AcpiTableInfo = is already installed. **/ STATIC EFI_STATUS @@ -404,75 +458,73 @@ VerifyMandatoryTablesArePresent ( IN UINT32 AcpiTableCount ) { - EFI_STATUS Status; - BOOLEAN FadtFound; - BOOLEAN MadtFound; - BOOLEAN GtdtFound; - BOOLEAN DsdtFound; - BOOLEAN Dbg2Found; - BOOLEAN SpcrFound; + EFI_STATUS Status; + UINTN Handle; + UINTN Index; + UINTN InstalledTableIndex; + EFI_ACPI_DESCRIPTION_HEADER *DescHeader; + EFI_ACPI_TABLE_VERSION Version; + EFI_ACPI_SDT_PROTOCOL *AcpiSdt; =20 - Status =3D EFI_SUCCESS; - FadtFound =3D FALSE; - MadtFound =3D FALSE; - GtdtFound =3D FALSE; - DsdtFound =3D FALSE; - Dbg2Found =3D FALSE; - SpcrFound =3D FALSE; ASSERT (AcpiTableInfo !=3D NULL); =20 + Status =3D EFI_SUCCESS; + + // Check against the statically initialized ACPI tables to see if they a= re in ACPI info list while (AcpiTableCount-- !=3D 0) { - switch (AcpiTableInfo[AcpiTableCount].AcpiTableSignature) { - case EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE: - FadtFound =3D TRUE; - break; - case EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE: - MadtFound =3D TRUE; - break; - case EFI_ACPI_6_2_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE: - GtdtFound =3D TRUE; - break; - case EFI_ACPI_6_2_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE: - DsdtFound =3D TRUE; - break; - case EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE: - Dbg2Found =3D TRUE; - break; - case EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE: - SpcrFound =3D TRUE; - break; - default: + for (Index =3D 0; Index < ACPI_TABLE_VERIFY_COUNT; Index++) { + if (AcpiTableInfo[AcpiTableCount].AcpiTableSignature =3D=3D mAcpiVer= ifyTables[Index].AcpiTableSignature) { + mAcpiVerifyTables[Index].Presence |=3D ACPI_TABLE_PRESENT_INFO_LIS= T; + // Found this table, skip the rest. break; + } } } =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")); - Status =3D EFI_NOT_FOUND; - } + // They also might be published already, so we can search from there + if (FeaturePcdGet (PcdInstallAcpiSdtProtocol)) { + AcpiSdt =3D NULL; + Status =3D gBS->LocateProtocol (&gEfiAcpiSdtProtocolGuid, NULL, (VOID= **)&AcpiSdt); =20 - if (!MadtFound) { - DEBUG ((DEBUG_ERROR, "ERROR: MADT Table not found.\n")); - Status =3D EFI_NOT_FOUND; - } + if (EFI_ERROR (Status) || (AcpiSdt =3D=3D NULL)) { + DEBUG ((DEBUG_ERROR, "ERROR: Failed to locate ACPI SDT protocol (0x%= p) - %r\n", AcpiSdt, Status)); + return Status; + } =20 - if (!GtdtFound) { - DEBUG ((DEBUG_ERROR, "ERROR: GTDT Table not found.\n")); - Status =3D EFI_NOT_FOUND; - } + for (Index =3D 0; Index < ACPI_TABLE_VERIFY_COUNT; Index++) { + Handle =3D 0; + InstalledTableIndex =3D 0; + do { + Status =3D AcpiSdt->GetAcpiTable (InstalledTableIndex, (EFI_ACPI_S= DT_HEADER **)&DescHeader, &Version, &Handle); + if (EFI_ERROR (Status)) { + break; + } =20 - if (!DsdtFound) { - DEBUG ((DEBUG_ERROR, "ERROR: DSDT Table not found.\n")); - Status =3D EFI_NOT_FOUND; - } + InstalledTableIndex++; + } while (DescHeader->Signature !=3D mAcpiVerifyTables[Index].AcpiTab= leSignature); =20 - if (!Dbg2Found) { - DEBUG ((DEBUG_WARN, "WARNING: DBG2 Table not found.\n")); + if (!EFI_ERROR (Status)) { + mAcpiVerifyTables[Index].Presence |=3D ACPI_TABLE_PRESENT_INSTALLE= D; + } + } } =20 - if (!SpcrFound) { - DEBUG ((DEBUG_WARN, "WARNING: SPCR Table not found.\n")); + // Reset the return Status value to EFI_SUCCESS. We do not fully care if= the table look up has failed. + Status =3D EFI_SUCCESS; + for (Index =3D 0; Index < ACPI_TABLE_VERIFY_COUNT; Index++) { + if (mAcpiVerifyTables[Index].Presence =3D=3D 0) { + if (mAcpiVerifyTables[Index].IsMandatory) { + DEBUG ((DEBUG_ERROR, "ERROR: %a Table not found.\n", mAcpiVerifyTa= bles[Index].AcpiTableName)); + Status =3D EFI_NOT_FOUND; + } else { + DEBUG ((DEBUG_WARN, "WARNING: %a Table not found.\n", mAcpiVerifyT= ables[Index].AcpiTableName)); + } + } else if (mAcpiVerifyTables[Index].Presence =3D=3D + (ACPI_TABLE_PRESENT_INFO_LIST | ACPI_TABLE_PRESENT_INSTALLE= D)) + { + DEBUG ((DEBUG_ERROR, "ERROR: %a Table found while already published.= \n", mAcpiVerifyTables[Index].AcpiTableName)); + Status =3D EFI_ALREADY_STARTED; + } } =20 return Status; @@ -489,8 +541,9 @@ VerifyMandatoryTablesArePresent ( @param [in] CfgMgrProtocol Pointer to the Configuration Manager Protocol Interface. =20 - @retval EFI_SUCCESS Success. - @retval EFI_NOT_FOUND If a mandatory table or a generator is not found. + @retval EFI_SUCCESS Success. + @retval EFI_NOT_FOUND If a mandatory table or a generator is not= found. + @retval EFI_ALREADY_STARTED If mandatory table found in AcpiTableInfo = is already installed. **/ STATIC EFI_STATUS @@ -562,7 +615,7 @@ ProcessAcpiTables ( if (EFI_ERROR (Status)) { DEBUG (( DEBUG_ERROR, - "ERROR: Failed to find mandatory ACPI Table(s)." + "ERROR: Failed to verify mandatory ACPI Table(s) presence." " Status =3D %r\n", Status )); @@ -570,29 +623,32 @@ 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; - } + if ((mAcpiVerifyTables[ACPI_TABLE_VERIFY_FADT].Presence & ACPI_TABLE_PRE= SENT_INSTALLED) =3D=3D 0) { + // 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; + } =20 - break; - } - } // for + break; + } + } // 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..ad8b3d037c16 100644 --- a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDx= e.inf +++ b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDx= e.inf @@ -34,8 +34,12 @@ [LibraryClasses] UefiBootServicesTableLib UefiDriverEntryPoint =20 +[FeaturePcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol ## CONSUMES + [Protocols] gEfiAcpiTableProtocolGuid # PROTOCOL ALWAYS_CONSUMED + gEfiAcpiSdtProtocolGuid # PROTOCOL ALWAYS_CONSUMED =20 gEdkiiConfigurationManagerProtocolGuid # PROTOCOL ALWAYS_CONSUMED gEdkiiDynamicTableFactoryProtocolGuid # PROTOCOL ALWAYS_CONSUMED --=20 2.37.1.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 (#92316): https://edk2.groups.io/g/devel/message/92316 Mute This Topic: https://groups.io/mt/92947267/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 Tue May 14 09:39:21 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+92317+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+92317+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660170542; cv=none; d=zohomail.com; s=zohoarc; b=YOQFwDVE7gMpsTzE3qGlKzi29n3KTOqnq9Dl6Ex43TtP12TjSPlSxJNNgqdBZNCOLA0M3h1bLPKTMM8hlQlhOgNs1Kyr+bFkhhEXEPeiCLnWBFUf9vJK6o9vhR2TVV0pB8EyQaI5axBQW4GR6AqvUh9PatkiYSNF2YiRGuMazZY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660170542; 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=VuOJBI7weUltF8AmGwcl3W5snVMYtgT5jKAkhz5MfCk=; b=NKbtfql/k1nUTEfJ9XZvwE6O7GvXB4bsWOHLNuOdv4Y7W623zafzwDJbjrtR+Q0v+ZzGJe4vsKo6pvaG9X5WkQ+1VRczQMoYpWD8b5N+o9CIurWoxqXCNG9ovQugjgnjsnALMlinsTz8VGHwHFsxeZWEz6pp1TYDgyxe1iSA6F8= 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+92317+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 1660170542074942.3340412374519; Wed, 10 Aug 2022 15:29:02 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 6s3IYY1788612xlFvtRPSWXH; Wed, 10 Aug 2022 15:29:01 -0700 X-Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by mx.groups.io with SMTP id smtpd.web12.987.1660170540916901758 for ; Wed, 10 Aug 2022 15:29:01 -0700 X-Received: by mail-pj1-f43.google.com with SMTP id 15-20020a17090a098f00b001f305b453feso3595569pjo.1 for ; Wed, 10 Aug 2022 15:29:00 -0700 (PDT) X-Gm-Message-State: 4GmWmKs9DXzQD7USom5fC0B4x1787277AA= X-Google-Smtp-Source: AA6agR4mu3vbf+ZFfq+awSkOy/aNGSu1F6j4oaiKe98NQ8B8W6OFuRZ0yKRvf+Z4QTH+u6MLeBhskg== X-Received: by 2002:a17:903:d4:b0:16d:bb31:f66 with SMTP id x20-20020a17090300d400b0016dbb310f66mr29800395plc.60.1660170540308; Wed, 10 Aug 2022 15:29:00 -0700 (PDT) X-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.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 15:29:00 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Joe Lopez Subject: [edk2-devel] [PATCH v4 5/6] DynamicTablesPkg: AcpiSsdtPcieLibArm: Added function to reserve ECAM space Date: Wed, 10 Aug 2022 15:28:52 -0700 Message-Id: <20220810222853.1916-6-kuqin12@gmail.com> In-Reply-To: <20220810222853.1916-1-kuqin12@gmail.com> References: <20220810222853.1916-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=1660170541; bh=TsD9lUUT6393M+eYO9726KCPcPxz5e7NJtPcmV1So34=; h=Cc:Date:From:Reply-To:Subject:To; b=mBs0ZCPAm3PHk8adPl3sA3tmNMSGfqrwXWemv1T+a64/W4C2CSmTp50wtozD6/TKqDJ XnCbOUjWryKn13rC8qYsCWyFZgfduPXxxFhLNsK/S5CppRNK9FPRXdizMSQlEQx4qHUTM JeyqgRzOvr8SYBpy3jrN/BU0lvJcbxsjOiA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660170542868100014 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: Sami Mujawar Tested-by: Sami Mujawar --- Notes: v2: - Only create RES0 after config space checking [Pierre] =20 v3: - Updated function names and descriptions [Pierre] - Moved translation calculation to CONFIG case [Pierre] =20 v4: - Used CM_ARM_PCI_CONFIG_SPACE_INFO for ECAM region calculation [Sami, = Pierre] DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c |= 135 ++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieG= enerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieG= enerator.c index ceffe2838c03..dd75fc27e60e 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c @@ -34,6 +34,9 @@ =20 #include "SsdtPcieGenerator.h" =20 +#define PCI_MAX_DEVICE_COUNT_PER_BUS 32 +#define PCI_MAX_FUNCTION_COUNT_PER_DEVICE 8 + /** ARM standard SSDT Pcie Table Generator. =20 Requirements: @@ -616,6 +619,130 @@ GeneratePciCrs ( return Status; } =20 +/** Generate a RES0 device node to reserve PNP motherboard resources + for a given PCI node. + + @param [in] PciNode Parent PCI node handle of the generated + resource object. + @param [out] CrsNode CRS node of the AML tree to populate. + + @retval EFI_SUCCESS The function completed successfully. + @retval EFI_INVALID_PARAMETER Invalid input parameter. + @retval EFI_OUT_OF_RESOURCES Could not allocate memory. +**/ +STATIC +EFI_STATUS +EFIAPI +GenerateMotherboardDevice ( + IN AML_OBJECT_NODE_HANDLE PciNode, + OUT AML_OBJECT_NODE_HANDLE *CrsNode + ) +{ + EFI_STATUS Status; + UINT32 EisaId; + AML_OBJECT_NODE_HANDLE ResNode; + + if (CrsNode =3D=3D NULL) { + ASSERT (0); + return EFI_INVALID_PARAMETER; + } + + // ASL: Device (RES0) {} + 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; + } + + return Status; +} + +/** Reserves ECAM space for PCI config space + + @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 +ReserveEcamSpace ( + 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; + AML_OBJECT_NODE_HANDLE CrsNode; + UINT64 AddressMinimum; + UINT64 AddressMaximum; + + Status =3D GenerateMotherboardDevice (PciNode, &CrsNode); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + AddressMinimum =3D PciInfo->BaseAddress + (PciInfo->StartBusNumber * + PCI_MAX_DEVICE_COUNT_PER_BUS * = PCI_MAX_FUNCTION_COUNT_PER_DEVICE * SIZE_4KB); + AddressMaximum =3D PciInfo->BaseAddress + ((PciInfo->EndBusNumber + 1) * + PCI_MAX_DEVICE_COUNT_PER_BUS * = PCI_MAX_FUNCTION_COUNT_PER_DEVICE * SIZE_4KB) - 1; + + Status =3D AmlCodeGenRdQWordMemory ( + FALSE, + TRUE, + TRUE, + TRUE, + FALSE, // non-cacheable + TRUE, + 0, + AddressMinimum, + AddressMaximum, + 0, // no translation + AddressMaximum - AddressMinimum + 1, + 0, + NULL, + 0, + TRUE, + CrsNode, + NULL + ); + + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + + return Status; +} + /** Generate a Pci device. =20 @param [in] Generator The SSDT Pci generator. @@ -702,9 +829,17 @@ GeneratePciDevice ( return Status; } =20 + // Add the PNP Motherboard Resources Device to reserve ECAM space + Status =3D ReserveEcamSpace (Generator, CfgMgrProtocol, PciInfo, PciNode= ); + if (EFI_ERROR (Status)) { + ASSERT (0); + return Status; + } + // Add the template _OSC method. Status =3D AddOscMethod (PciInfo, PciNode); ASSERT_EFI_ERROR (Status); + return Status; } =20 --=20 2.37.1.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 (#92317): https://edk2.groups.io/g/devel/message/92317 Mute This Topic: https://groups.io/mt/92947268/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 Tue May 14 09:39:21 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+92318+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+92318+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1660170542; cv=none; d=zohomail.com; s=zohoarc; b=f9vvxbf4NYxv8TBrvEt7cl90sMC/f8tGrkftF7CzfKqDtYFp/0FwGH8QvaA4CqGLlrZrGOrW7xbdO9WWfROzk3e7mD7accDQXHVXQ5L7nRjMm1qB+5zfLyRpzJI0Z7EI0bL4gJsD8QLNcHkM2ZBTyUyNGpoqvYTk8sdnVvikdec= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660170542; 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=g+diNO/z3rXsxukM6qIhtzNJu9+fZf8Kqjb9VAbXXhI=; b=gyxyz+O7E6EO7XOsJEIZesLLaZV7/BnZHCx9NM0JUw10HE/Cj+clK/trrDHLgzRwqbUPCoL+iWRWS62Wtc8A2l7RDEwoThzaSvgx5lxsnT+d8Ej4v0YM90JQadMXvds2Nc/cIN1zJYIdgT9Q8UFqado98KAB1/MFDFEaPD+hBS8= 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+92318+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 1660170542771437.1247881445229; Wed, 10 Aug 2022 15:29:02 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id YXfwYY1788612xpz1DSACr3N; Wed, 10 Aug 2022 15:29:02 -0700 X-Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by mx.groups.io with SMTP id smtpd.web09.991.1660170541643507947 for ; Wed, 10 Aug 2022 15:29:01 -0700 X-Received: by mail-pj1-f46.google.com with SMTP id q7-20020a17090a7a8700b001f300db8677so3468909pjf.5 for ; Wed, 10 Aug 2022 15:29:01 -0700 (PDT) X-Gm-Message-State: DvWf2LnoiMfVIxI8vCfZvsdrx1787277AA= X-Google-Smtp-Source: AA6agR43Rc0L3trC6yDohn1UAFX9qxF8W0eBF978hYUOI2DDkPPGrIcBB8okFJTSKPP3EYvJ37QaZA== X-Received: by 2002:a17:902:e742:b0:16f:2ef:77d8 with SMTP id p2-20020a170902e74200b0016f02ef77d8mr29624687plf.32.1660170541013; Wed, 10 Aug 2022 15:29:01 -0700 (PDT) X-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.29.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Aug 2022 15:29:00 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez , Pierre Gondois , Sami Mujawar Subject: [edk2-devel] [PATCH v4 6/6] DynamicTablesPkg: AcpiSsdtPcieLibArm: Added case handling for PCI config Date: Wed, 10 Aug 2022 15:28:53 -0700 Message-Id: <20220810222853.1916-7-kuqin12@gmail.com> In-Reply-To: <20220810222853.1916-1-kuqin12@gmail.com> References: <20220810222853.1916-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=1660170542; bh=J08l9RhTEkw5ZylTAnYkRDIja9HlEA48wyLQC0FcDBw=; h=Cc:Date:From:Reply-To:Subject:To; b=BJz613LDr+BjV6QMaVYURkz7VhgR0pAQhusq5wexDmiNiC4Q2Enh8rfujRC32bjmZsf mWFl0mQxDTUqLapOzhsh9psy9GwhgCMcI8Au183l8wx/fUbfMgBaNheJmX3VesRFcExA3 h3hqJoMns+LyMAgZyN6DAhxw8Cm0Nx1Ax+I= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660170544871100027 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 Reviewed-by: Sami Mujawar Tested-by: Sami Mujawar --- Notes: v2: - Added Reviewed-by tag [Pierre] =20 v3: - No change =20 v4: - Added Reviewed-by tag [Sami] 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 dd75fc27e60e..c6fbd09c43f8 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c @@ -606,6 +606,11 @@ GeneratePciCrs ( ); break; =20 + case PCI_SS_CONFIG: + // Do nothing + Status =3D EFI_SUCCESS; + break; + default: Status =3D EFI_INVALID_PARAMETER; } // switch --=20 2.37.1.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 (#92318): https://edk2.groups.io/g/devel/message/92318 Mute This Topic: https://groups.io/mt/92947269/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-