From nobody Wed Apr 24 21:05:14 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+91927+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+91927+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658982714; cv=none; d=zohomail.com; s=zohoarc; b=VYU3q3h3BwqCvc/0m5U4W7PWRaTlQuDTQu+4l4dfn8tY1B3/WcdqZ9m8jVIUgCzH9m7KWAz2rNbt8lWDXSLVRqXUERBlHJ3GMpTKUpBI+rQfAniDGkPwsIQGtM2yJFn5q0mxBNPutmPr9I7mET/X0B9nLe9zifcPCIbrzT5NSAU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658982714; 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=UaFIfXpACq1RyOEFcWoTJqxThU0/dBCVijgU312TI4Q=; b=Wa8WonMh+fyWZm3ajegPG+SGFOT4Mk12dly7Ir0p9lT4y56rx4yaNkw8of4ib9q+yjdm/W8EB6GDJGMu9+Yp6xVRDVuK91l9H1gJIJSdj9tGU8eiebCcYnUu1pat2N8PaFWTXmVHWNj1v9Swo8JtOai4F/ZGxZ4RZ7vaUWCVjy0= 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+91927+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 1658982714450344.5945099095162; Wed, 27 Jul 2022 21:31:54 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id PR73YY1788612xBuaKRnRvSg; Wed, 27 Jul 2022 21:31:53 -0700 X-Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by mx.groups.io with SMTP id smtpd.web12.28831.1658982712124433738 for ; Wed, 27 Jul 2022 21:31:52 -0700 X-Received: by mail-pj1-f53.google.com with SMTP id y1so716857pja.4 for ; Wed, 27 Jul 2022 21:31:52 -0700 (PDT) X-Gm-Message-State: 240nCecIxeCwoZADOYtBadHsx1787277AA= X-Google-Smtp-Source: AGRyM1s7E+JmojUPhkrx6qFGdgSUulkAts0gHWIZohnRuBrsAGLHLsucdUhedi5/ZlrMPvNPnqq4bw== X-Received: by 2002:a17:90a:9ce:b0:1f3:c90:6e99 with SMTP id 72-20020a17090a09ce00b001f30c906e99mr6677109pjo.211.1658982711964; Wed, 27 Jul 2022 21:31:51 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:36:7fef:12fc:943:d465]) by smtp.gmail.com with ESMTPSA id ik1-20020a170902ab0100b0016c48c52ce4sm14716392plb.204.2022.07.27.21.31.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 21:31:51 -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 v2 1/6] DynamicTablesPkg: DynamicPlatRepoLib: Added MemoryAllocationLib to inf Date: Wed, 27 Jul 2022 21:31:42 -0700 Message-Id: <20220728043147.395-2-kuqin12@gmail.com> In-Reply-To: <20220728043147.395-1-kuqin12@gmail.com> References: <20220728043147.395-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=1658982713; bh=Jz3R4LowZJ9+WXExgPLmfeYlYpvmw3mnlxxvvwBLlbE=; h=Cc:Date:From:Reply-To:Subject:To; b=oZIqsONfTsNq6U5sPamb02BpuHgEqpmhciSjv3R9C8wHm90Bc4WAlTkZTmTd4meAS94 Qln75y2A2ilI+UKD8hDQWFfg78VTJg3ANJM935SQ7cSIWACqM5ON4IVWAluqsSaumSpfx cNX1MHNsEXurPyiphZe95WIQcO3ado5esgw= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658982715301100005 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 --- Notes: v2: - Added Reviewed-by tag [Sami] - Added Reviewed-by tag [Pierre] 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 (#91927): https://edk2.groups.io/g/devel/message/91927 Mute This Topic: https://groups.io/mt/92664645/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 Wed Apr 24 21:05:14 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+91928+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+91928+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658982714; cv=none; d=zohomail.com; s=zohoarc; b=QscmByx0lnFm6M2ohtaO6Y0hbVgV7x3bVztFUthczUaioPkxQKg0r+osfFzWJN4Bk+Z+S8TbptRH/ZCRhV+uZ2j25nFasUUb3io8hrcfS4FPfpqCdYSHtp05eoeuW4cFvz/UR4aQO8cdNPO+dsP+v/Sm11FFwEssmsEkGOjJVHY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658982714; 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=TYO+xgHGHhIu4eSOSzWXQgWvBSXGkOhSincqOh7ejpc=; b=dTQ3BuycLvuw7b/ASFvs0ztvuEpxLIFt8wV4E8zPXauFXr6BD3YD8or0pEHMNexdJRTqvMvXgQJekIRhVHm9fH3s9ZL3YKYDR+AT2Gm5V2HeF6pzrSKQf5hxvxaPAsrPBBp9W0PJw2N5O8ocSZvPRh3cNI0WOH3NuGLDT2qVUuo= 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+91928+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 1658982714332723.12466911168; Wed, 27 Jul 2022 21:31:54 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 51vRYY1788612xpXu0HQ32gw; Wed, 27 Jul 2022 21:31:54 -0700 X-Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) by mx.groups.io with SMTP id smtpd.web08.29102.1658982713295405081 for ; Wed, 27 Jul 2022 21:31:53 -0700 X-Received: by mail-pj1-f54.google.com with SMTP id o20-20020a17090aac1400b001f2da729979so4208373pjq.0 for ; Wed, 27 Jul 2022 21:31:53 -0700 (PDT) X-Gm-Message-State: cyBqjq2rN4fLjiJsEPqaLwiUx1787277AA= X-Google-Smtp-Source: AGRyM1tHXla3dHgTFJOANbXE2/bxIuYCcYdzU8rygPPC4Hkclchm8ABJOuApwdpfskXnbynhUHpSJg== X-Received: by 2002:a17:902:e353:b0:16d:c10a:651a with SMTP id p19-20020a170902e35300b0016dc10a651amr2186324plc.146.1658982712614; Wed, 27 Jul 2022 21:31:52 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:36:7fef:12fc:943:d465]) by smtp.gmail.com with ESMTPSA id ik1-20020a170902ab0100b0016c48c52ce4sm14716392plb.204.2022.07.27.21.31.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 21:31:52 -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 v2 2/6] DynamicTablesPkg: DynamicPlatRepoLib: Fix incorrect dereferencing Date: Wed, 27 Jul 2022 21:31:43 -0700 Message-Id: <20220728043147.395-3-kuqin12@gmail.com> In-Reply-To: <20220728043147.395-1-kuqin12@gmail.com> References: <20220728043147.395-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=1658982714; bh=xYGebt1rPaV9Xux4RjzrkS2ym7J1Bg9akdKJvN8w63Q=; h=Cc:Date:From:Reply-To:Subject:To; b=ijeEKlGlSf8fO/XEJmWHxVAyW+Awiu1UpDzLYnQd/CggVIvZUSVWZ6gEOb5ZeGt6N5O Z9z3f8aeKKne4K4HIedZ71DjtaOpXjxrnaOwmCTH3iAjLw66FmbNGimjISpEHBE9Oh8sl oFfSFISUCthSjLBSotdsQmTCOedxwGFXY+I= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658982715308100006 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 --- Notes: v2: - Added Reviewed-by tag [Sami] - Added Reviewed-by tag [Pierre] 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 (#91928): https://edk2.groups.io/g/devel/message/91928 Mute This Topic: https://groups.io/mt/92664646/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 Wed Apr 24 21:05:14 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+91929+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+91929+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658982715; cv=none; d=zohomail.com; s=zohoarc; b=J+1utGq9+RZcFyj/xY9a+sYCRilR58DkG5lYc04YI9AmstAeE4ve4NVhhg+BQMrhtZjb1yf3B2CBEQqUf+Zeh5BhqCjO4d+ItGmxTFZRxGiYMVtbJHZdic/20J+LppOtG+csyn95ut40i2Z1HRcEAvwUE4s9UZLLq3lSrRS0pt8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658982715; 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=IJTo39NV+XU0d2wvGFD4b8TSYe1QMv7/S7WavLAInZw=; b=LT7wvUVRzNrhrrXOfkYavf0L7VP6gC/tqp1k3Bjedbjgj/ttresmTWLyod7bnJnSVN+aikcO80bs9IXvB00pAErPJt0E7JN2jSunFJMZoUkiu/rew8mjgL0X400lmZbWyLQAK0+OsH81W4huuFxN5TL1qjGnDlM1zAYf5zPLbSc= 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+91929+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 1658982715039363.91508878245133; Wed, 27 Jul 2022 21:31:55 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id yz0PYY1788612xqzzo3Ggn3i; Wed, 27 Jul 2022 21:31:54 -0700 X-Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) by mx.groups.io with SMTP id smtpd.web11.29068.1658982714039278204 for ; Wed, 27 Jul 2022 21:31:54 -0700 X-Received: by mail-pg1-f174.google.com with SMTP id 72so631239pge.0 for ; Wed, 27 Jul 2022 21:31:53 -0700 (PDT) X-Gm-Message-State: qgrRbuMizTvMWjLKDhNwCyBzx1787277AA= X-Google-Smtp-Source: AGRyM1uyL0w7cfntTmiY7YIF/HQOo1OjNIzSoM6ImU7Ftk6noUmPcXmzYAZm+pQ54GLFL7/Y3p4nJw== X-Received: by 2002:a05:6a00:1a04:b0:52a:d4dc:5653 with SMTP id g4-20020a056a001a0400b0052ad4dc5653mr6790931pfv.69.1658982713251; Wed, 27 Jul 2022 21:31:53 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:36:7fef:12fc:943:d465]) by smtp.gmail.com with ESMTPSA id ik1-20020a170902ab0100b0016c48c52ce4sm14716392plb.204.2022.07.27.21.31.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 21:31:53 -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 v2 3/6] DynamicTablesPkg: DynamicPlatRepoLib: Adding more token fixers Date: Wed, 27 Jul 2022 21:31:44 -0700 Message-Id: <20220728043147.395-4-kuqin12@gmail.com> In-Reply-To: <20220728043147.395-1-kuqin12@gmail.com> References: <20220728043147.395-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=1658982714; bh=Mkv5uma+EeIpfD5iXay9W7Mm5wVnX5fynUuERrSdPo4=; h=Cc:Date:From:Reply-To:Subject:To; b=rw5jQ/62i4hQARTvvtxtgonIF9ANtd03n+wS7ManTgXAQ2kOodaKnBU2aehiHO4ziYD kpi8YUl6DnG2EIxfVQbwr/qpcNbckwtlRynoQquLoqaySxpeaCRHDGsR+lkRb4biO/0VK j3yPjtJ+f4VSaUeNvxyjfTdTCyUFIJOmoFA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658982715315100008 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 --- Notes: v2: - Added Reviewed-by tag [Sami] - Added Reviewed-by tag [Pierre] 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 (#91929): https://edk2.groups.io/g/devel/message/91929 Mute This Topic: https://groups.io/mt/92664647/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 Wed Apr 24 21:05:14 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+91930+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+91930+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658982715; cv=none; d=zohomail.com; s=zohoarc; b=dARic8aR9TMM7mUz1VbpAsKaMQcVy8CND5mdP1e1En3uQzEUNPGhmuQxx8clUTBi7JBMmNhgN9dSVOZ7u74f3kvl8jOLo/KU3JpwW2bVUPlmE13OHOwIm3vGi+LGDePbQyxok/iYZsiNfFVdmLFsVgnWp6lxhiTFMDZPFIz1bZQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658982715; 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=EyUN4SNaEF6leLNLXN1Z1JBf3cxgomHMQccM+YRx/p8=; b=ikSk9b4GClLD1I13Vls/cI7hpf7Oc4wJufFlTuVtr0pO3eZLbYa0w0xj80uckaCUCy1YaWwppXFwRdNMqScWJmmytZ71e88TFEBCPBbt5NhmfoCPP2iwRV+CUhjYTuVXddRPXfo2mIfKd184r1tcW/S1dlcegCe/S3Ujv7vfwrY= 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+91930+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 1658982715442696.3805804516069; Wed, 27 Jul 2022 21:31:55 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id hQuwYY1788612xUVncndRQis; Wed, 27 Jul 2022 21:31:55 -0700 X-Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by mx.groups.io with SMTP id smtpd.web09.29056.1658982714592215471 for ; Wed, 27 Jul 2022 21:31:54 -0700 X-Received: by mail-pj1-f52.google.com with SMTP id v16-20020a17090abb9000b001f25244c65dso4173299pjr.2 for ; Wed, 27 Jul 2022 21:31:54 -0700 (PDT) X-Gm-Message-State: NZy5dpwFzNA21Bs9F5UxpZuGx1787277AA= X-Google-Smtp-Source: AGRyM1uoZbMfVMrWNcqT0sZAzGxjjUizi7YrnaKsXKwk8d9h5yl0frNWoLq0PohK51pWVIpzLl+vUA== X-Received: by 2002:a17:90a:de12:b0:1f0:f213:cb9d with SMTP id m18-20020a17090ade1200b001f0f213cb9dmr8254869pjv.207.1658982713896; Wed, 27 Jul 2022 21:31:53 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:36:7fef:12fc:943:d465]) by smtp.gmail.com with ESMTPSA id ik1-20020a170902ab0100b0016c48c52ce4sm14716392plb.204.2022.07.27.21.31.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 21:31:53 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez Subject: [edk2-devel] [PATCH v2 4/6] DynamicTablesPkg: DynamicTableManagerDxe: Added check for installed tables Date: Wed, 27 Jul 2022 21:31:45 -0700 Message-Id: <20220728043147.395-5-kuqin12@gmail.com> In-Reply-To: <20220728043147.395-1-kuqin12@gmail.com> References: <20220728043147.395-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=1658982715; bh=8r3b6rdY1dtwjL1qVaTfNR9OhS1o2L0+CqkygHMVOMo=; h=Cc:Date:From:Reply-To:Subject:To; b=FIdeYDppZpzLA1x5ObNQQhIEi40YLrWs5KAFul4YBtrcS7ONrPAu18kusZFD6S2IzwW PS6gsedkaTcbpAWoR9YHt4rMyQUZWUWEFrKzbzcXZOiu5iNEmCJYYzES2LjXKqm47QpqQ csEBZQLyhyLa2pSg7g5j1yp+n+drMpoH7Go= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658982717346100020 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 --- Notes: v2: - Function description updates [Sami] - Refactorized the table verification [Pierre] DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.c = | 182 +++++++++++--------- DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf= | 1 + 2 files changed, 103 insertions(+), 80 deletions(-) diff --git a/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableMa= nagerDxe.c b/DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableMa= nagerDxe.c index ed62299f9bbd..4ad7c0c8dbfa 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,29 @@ #include #include =20 +#define ACPI_TABLE_PRESENT_INFO_LIST BIT0 +#define ACPI_TABLE_PRESENT_INSTALLED BIT1 + +#define ACPI_TABLE_VERIFY_FADT 0 +#define ACPI_TABLE_VERIFY_COUNT 6 + +typedef struct { + ESTD_ACPI_TABLE_ID EstdTableId; + UINT32 AcpiTableSignature; + CHAR8 AcpiTableName[sizeof (UINT32) + 1]; + BOOLEAN IsMandatory; + UINT16 Presence; +} ACPI_TABLE_PRESENCE_INFO; + +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 +419,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 +429,68 @@ 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: - break; + 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; + } } } =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 + 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_WARN, "WARNING: Failed to locate ACPI SDT protocol (0x%p= ) - %r\n", AcpiSdt, Status)); + goto EvaluatePresence; } =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_SDT= _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].AcpiTable= Signature); =20 - if (!Dbg2Found) { - DEBUG ((DEBUG_WARN, "WARNING: DBG2 Table not found.\n")); + if (!EFI_ERROR (Status)) { + mAcpiVerifyTables[Index].Presence |=3D ACPI_TABLE_PRESENT_INSTALLED; + } } =20 - if (!SpcrFound) { - DEBUG ((DEBUG_WARN, "WARNING: SPCR Table not found.\n")); +EvaluatePresence: + 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 +507,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 +581,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 +589,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..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.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 (#91930): https://edk2.groups.io/g/devel/message/91930 Mute This Topic: https://groups.io/mt/92664648/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 Wed Apr 24 21:05:14 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+91931+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+91931+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658982716; cv=none; d=zohomail.com; s=zohoarc; b=gyMR7M91jG+bazzHgQtASitrmKQGtDLJbqJSEtlJW1iIegprf2FQizqCW+gz9kddenGmYPy0SmIQsPmImCRe6I4GgmuVBytgj8i9rbLnK8YSHRn8zdnHOoW4E5Bk3ZgxBhvywqbbGv0pDSq4ZtqF0Rq7U1DWj4Qsfm5dJO1EvI0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658982716; 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=p3zJdAiz4kJIvZRhIEIWM4sqNePyZ6HEQGQpiO/OhtY=; b=GvVn6mMRynDAvpcyDZ+4ZJfsGJU+aDmitrBfI8t1m3Ci9FBKgQvO8kphgRZb1loW4IRC3gHrztT1JMGISCi0TALbUAsPSlHMyyvEMjmAFFITscMCO7drZnnvH5M+KqK4uhVNKEffnH9DPyMviA6FnQEBC6Ze4t+EedvN0hn79Ng= 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+91931+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 1658982716544704.8110304741516; Wed, 27 Jul 2022 21:31:56 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id nobCYY1788612xryW8Fosbzz; Wed, 27 Jul 2022 21:31:56 -0700 X-Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by mx.groups.io with SMTP id smtpd.web10.28888.1658982715514172969 for ; Wed, 27 Jul 2022 21:31:55 -0700 X-Received: by mail-pl1-f170.google.com with SMTP id t2so790324ply.2 for ; Wed, 27 Jul 2022 21:31:55 -0700 (PDT) X-Gm-Message-State: 8RV3IWawo4YNvNztM1qL3kJpx1787277AA= X-Google-Smtp-Source: AGRyM1u7+gY3YOREMkxECFnK8UtO16mMiq3LsIwyU6wacWW+3Sj2cm2LPaBL6FXjNzOFOPJN3w+uew== X-Received: by 2002:a17:902:e5c5:b0:16d:4a23:d0aa with SMTP id u5-20020a170902e5c500b0016d4a23d0aamr25129557plf.69.1658982714686; Wed, 27 Jul 2022 21:31:54 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:36:7fef:12fc:943:d465]) by smtp.gmail.com with ESMTPSA id ik1-20020a170902ab0100b0016c48c52ce4sm14716392plb.204.2022.07.27.21.31.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 21:31:54 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Joe Lopez Subject: [edk2-devel] [PATCH v2 5/6] DynamicTablesPkg: AcpiSsdtPcieLibArm: Added function to reserve ECAM space Date: Wed, 27 Jul 2022 21:31:46 -0700 Message-Id: <20220728043147.395-6-kuqin12@gmail.com> In-Reply-To: <20220728043147.395-1-kuqin12@gmail.com> References: <20220728043147.395-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=1658982716; bh=Yb4IuFgz75HzBwA+Udc6AfCR6kIT9OaCyP7jUcfNaRk=; h=Cc:Date:From:Reply-To:Subject:To; b=t8QLjzVI9d1HaZU+Hknv428qqnDtC6w+2vAK3SifPDi9mqUmzXmc4mKurtZnFuRoTPQ wXvwx2z/47x7FNjzZzoqEWRWh8RhdpU3Gamn8CBypSG7AD8B/ALb2dWxNcZgRabO+MmkX GcLC/iFa1LPIGT/fEsal0hz3D+qlQY7Iow4= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658982717332100019 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 --- Notes: v2: - Only create RES0 after config space checking [Pierre] DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c |= 169 ++++++++++++++++++++ 1 file changed, 169 insertions(+) diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieG= enerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieG= enerator.c index ceffe2838c03..c03550baabf2 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c @@ -616,6 +616,167 @@ GeneratePciCrs ( return Status; } =20 +/** Generate a Pci Resource Template to hold Address Space Info + + @param [in] PciNode RootNode of the AML tree. + @param [in, 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 +PopulateBasicPciResObjects ( + IN AML_OBJECT_NODE_HANDLE PciNode, + IN 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 (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; + } + + return Status; +} + +/** 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; + AML_OBJECT_NODE_HANDLE CrsNode; + BOOLEAN Translation; + UINT32 Index; + CM_ARM_OBJ_REF *RefInfo; + UINT32 RefCount; + CM_ARM_PCI_ADDRESS_MAP_INFO *AddrMapInfo; + BOOLEAN IsPosDecode; + + // 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); + if (AddrMapInfo->CpuAddress >=3D AddrMapInfo->PciAddress) { + IsPosDecode =3D TRUE; + } else { + IsPosDecode =3D FALSE; + } + + switch (AddrMapInfo->SpaceCode) { + case PCI_SS_CONFIG: + Status =3D PopulateBasicPciResObjects (PciNode, &CrsNode); + if (EFI_ERROR (Status)) { + ASSERT (0); + break; + } + + Status =3D AmlCodeGenRdQWordMemory ( + FALSE, + IsPosDecode, + TRUE, + TRUE, + FALSE, // non-cacheable + TRUE, + 0, + AddrMapInfo->PciAddress, + AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1, + Translation ? AddrMapInfo->CpuAddress - AddrMapInfo->Pc= iAddress : 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. @@ -702,9 +863,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 (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 (#91931): https://edk2.groups.io/g/devel/message/91931 Mute This Topic: https://groups.io/mt/92664649/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 Wed Apr 24 21:05:14 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+91932+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+91932+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1658982717; cv=none; d=zohomail.com; s=zohoarc; b=eBYPQjOC/NfdUCfxKGywESrQOSqDFD3vb+yvaHiDAyPZ5c+kNmXW1/y9WkOYJ8/aY6QldD4vtmOny86gy4ZJaEXWd3eXsALT0LfxZLJQjZ2j5lrZC65llgCtLWSNwsZSrcodf0ofBerzbB5NLGSVkxhmurloFRsL9Cr/lm7yTeM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658982717; 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=vPVmdr+vzFVage+K069oendPHsz9Ei8ubWz2ttmwtyU=; b=GffNkc1HswLW36qhIg7feRV1sOAWQlQ9h+NGanNwIhp/kmLgtaCsYGUqmOwMqzS4i0LERXGWWfKNANano5xkZEaO+9mL9JwudPopT5RgkhgckfUrDeN+Rh7JH9Cu9qVmeNdhMsbKlXdlQ47KscFsoQorIcFvnZLEfnrtYQQl91g= 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+91932+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 1658982717385804.4575996870052; Wed, 27 Jul 2022 21:31:57 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id yxRjYY1788612xFdIld09RKb; Wed, 27 Jul 2022 21:31:57 -0700 X-Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by mx.groups.io with SMTP id smtpd.web12.28833.1658982716034675567 for ; Wed, 27 Jul 2022 21:31:56 -0700 X-Received: by mail-pl1-f178.google.com with SMTP id iw1so775184plb.6 for ; Wed, 27 Jul 2022 21:31:55 -0700 (PDT) X-Gm-Message-State: 9XOH1sEKm6LTQwYCJab4biCAx1787277AA= X-Google-Smtp-Source: AGRyM1vtWWKQkVILC/mDg6/ZZfnW9cSfgaJ/WgAmRGMvI0HWfg/5QhQpRFOkr+Pv4XfuIBG1ijtwsQ== X-Received: by 2002:a17:90b:3502:b0:1f3:550:5f6f with SMTP id ls2-20020a17090b350200b001f305505f6fmr8381067pjb.49.1658982715424; Wed, 27 Jul 2022 21:31:55 -0700 (PDT) X-Received: from MININT-0U7P5GU.redmond.corp.microsoft.com ([2001:4898:80e8:36:7fef:12fc:943:d465]) by smtp.gmail.com with ESMTPSA id ik1-20020a170902ab0100b0016c48c52ce4sm14716392plb.204.2022.07.27.21.31.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jul 2022 21:31:55 -0700 (PDT) From: "Kun Qin" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov , Joe Lopez , Pierre Gondois Subject: [edk2-devel] [PATCH v2 6/6] DynamicTablesPkg: AcpiSsdtPcieLibArm: Added case handling for PCI config Date: Wed, 27 Jul 2022 21:31:47 -0700 Message-Id: <20220728043147.395-7-kuqin12@gmail.com> In-Reply-To: <20220728043147.395-1-kuqin12@gmail.com> References: <20220728043147.395-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=1658982717; bh=/qR7rxc+3XN8k8rdOqMYtxktb4OdA5lb5P+4cjolO0A=; h=Cc:Date:From:Reply-To:Subject:To; b=joSoXvkwUyHQpsYhe+siV7XoMYZns1EcNqVRmc/RjT1rg6qzEVPiop12rZmyJ2gLA7U 5pNI9Txunhzl756m2SgMdYiOKG7XsgVbIV3pvZRuyo3WGzDVVMV9nPmZ1jUl4kgU+2CnA 5aFSbNSwvXzhbAVDYL2Hxr9LeCjg6gC46vQ= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1658982719543100027 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 --- Notes: v2: - Added Reviewed-by tag [Pierre] 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 c03550baabf2..2749cfabed6c 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerato= r.c @@ -603,6 +603,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 (#91932): https://edk2.groups.io/g/devel/message/91932 Mute This Topic: https://groups.io/mt/92664650/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-