From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 34231941BAA for ; Mon, 5 Feb 2024 19:01:08 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=X9dR8pq4u+DjlooJLGWn53GLw1G1LYglvdlkbL5rj54=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1707159666; v=1; b=Vrqp0nAzWnVFOoDHAQ/w6NstJh+hGkSsOLSSoJdUmVkrxzBdo8dNT/f1hCWQQ4FJyy/cMWJ3 6zE72vIo3zr9bVlNrN0nZ/4knCPqWz2+HirFgzZJfkKZeFvlpXWXDY9h+jefeXUsYnRYJ/FCZ54 AIl+WkhnPhwI61dHBmkECG0s= X-Received: by 127.0.0.2 with SMTP id 4diwYY7687511xNQQhE37axM; Mon, 05 Feb 2024 11:01:06 -0800 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.71]) by mx.groups.io with SMTP id smtpd.web10.2379.1707159665800970696 for ; Mon, 05 Feb 2024 11:01:06 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g5BhrgGQbCZ3hDu2PKuH4oKnCoEqks4HnZ6QW6IvxvT92MO6uKnUnc6bqoh5wBvmd5q8w6D6OozZ3OEvZzZxRH7YVMKRWLXViO5W3EfKTbkGDGz0loM6Us2JP/RW1qkWvUPs2YtNnBdetJpELy3k2M5dAnWwH80DsSuFus2JI+JXJq2ubvL0MvXyu4WMt5CYLQ1F+nh4tcd0w8C5OHhCuiv+doDu0n8rG9JIQ4CX6EFSjDIIKHT9slqOLEvssBKVGlved1vza3jQ1e5l0jc5oXkEz/wfo4cfRvhVexk/g5HhTiG2UZU1hQOIDE+Sq48FSAfEgdjKasKyTNpIu5T6pA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=y2INRFBOxe54k081j0czqz/5d5rgvml4j/JAA4uSsrs=; b=M+c8LRkdhb4h69GzJcGOJk54bXUjgkXyZc4rWoETUOJ1CMcGzHVJ03SAth9/CK0VA1sShL7z+W5exsB2XfOqMkyHMQTACoxBMR9khtW0wlVwoeUJZkpVR5u44CdZbyZFtWyL8dZ3Ec5djRDUSz97k+1BOIyMt4wVudpAS0aDcrSirMRAhnlWi9adI+4mn7NcVTrTzSsZ5SUXD+6UNVd/q27fAa/Y9+fGziImd6BipT2mSrDWdBWUT0KQ0fCvMVB2SIL6I4XWn4GKC4cJJTe5fGWUcpcD+BbDBbfMo3m5jv6BcpMzbRWVX3bUSVhAwZNXFFUSBnLCBd/NDl+WjwEOAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) X-Received: from MN2PR14CA0014.namprd14.prod.outlook.com (2603:10b6:208:23e::19) by CH3PR12MB7642.namprd12.prod.outlook.com (2603:10b6:610:14a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.15; Mon, 5 Feb 2024 19:01:02 +0000 X-Received: from BL6PEPF0001AB71.namprd02.prod.outlook.com (2603:10b6:208:23e:cafe::25) by MN2PR14CA0014.outlook.office365.com (2603:10b6:208:23e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.34 via Frontend Transport; Mon, 5 Feb 2024 19:01:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C X-Received: from mail.nvidia.com (216.228.118.232) by BL6PEPF0001AB71.mail.protection.outlook.com (10.167.242.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.16 via Frontend Transport; Mon, 5 Feb 2024 19:01:01 +0000 X-Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 5 Feb 2024 11:00:46 -0800 X-Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Mon, 5 Feb 2024 11:00:46 -0800 X-Received: from localhost.localdomain (10.127.8.11) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.1258.12 via Frontend Transport; Mon, 5 Feb 2024 11:00:46 -0800 From: "Jeshua Smith via groups.io" To: CC: , , , , Jeshua Smith Subject: [edk2-devel] [PATCH v2] DynamicTablesPkg/SSDT: Require Package node in hierarchy Date: Mon, 5 Feb 2024 11:00:43 -0800 Message-ID: <6666e0a5b84cef6d13a6c082e9fdf052c8618a62.1707152171.git.jeshuas@nvidia.com> MIME-Version: 1.0 X-NVConfidentiality: public X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB71:EE_|CH3PR12MB7642:EE_ X-MS-Office365-Filtering-Correlation-Id: bf3f1795-b8da-408a-9182-08dc267ccc08 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: VuU/4BmxLQ2a6CO0tXniiSsYYNznQPSTtbxoKyBUaGZA5ZQdacPelwcfNHLG/lcdGT3xAmJu+yigugKUpNOuol4SH0wTD6tO3aDiXQZqfDVq95p+LvcTNRb/EOpWv3QXotkyf8SkAykKMx4wbXu1teVDuLVchV50EnzDcMcQrxryBdkDjN31PYNsTlcG+cyucZnprrVbt+GDZvjxNS43O+SUKuYSgVx8KXitsqCzcByaVvPxmA9wQtg1aHStuGFmq39tIcizEUY0UdovDKlNlq2b5zCzT9hAQ4kyTCrtj2xGmi1pXI0HywQOzY0XpQdPW+034cSZhRRMIIhXAdLOA/e7hBHZqJGOxZ6PDKHYgf1RweYr7waMbZhM3l9R6FSmfJiXj6ttZZ397BABfmHpCLzQwh0nRpXlvESRBf7WMo1qkl3BiYCRodSXtlCp79wqqSJn+iOca90biQg9oju/Afdd/U9c8WM3P1oVXLWfKbckCgm251AsT3+HuCnKXzES/olvPZCtV2qlLz0qgmDBkPdHyOO4MvP8+CYQUr/oPGhWjf1WxYrfpv4cExvnL+LF05GGzSWkBr/oJQpVS+ZemTN7uRUD7srlia/s1J52hAvaJ1he1WetEl/WH6g9MM8q06VCYZby11FntJkTnroqwz4TBMXrrxSgURZeYleW6p/qKdomEWN9c8oZj/IG7Aa8QFbUXuRwMADxtQaNysFIozpH9xrx3IJY5zm8WtrqrMgmS1P9FCuCKdFzvMLU+kSU X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2024 19:01:01.8806 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bf3f1795-b8da-408a-9182-08dc267ccc08 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB71.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7642 Precedence: Bulk 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,jeshuas@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 6ezN0TRzvMNCYtdIPZ2N2p3Ux7686176AA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=Vrqp0nAz; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io The code was incorrectly assuming that root nodes had to be physical package nodes and vice versa. This is not always true, so update the check to simply require exactly one package node somewhere in the hierarchy. Signed-off-by: Jeshua Smith Reviewed-by: Pierre Gondois --- Note: This is a complete replacement for [PATCH] DynamicTablesPkg/SSDT: Rem= ove incorrect root node check Version 2: added documentation for the PackageNodeSeen parameter .../SsdtCpuTopologyGenerator.c | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/Ss= dtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTop= ologyLibArm/SsdtCpuTopologyGenerator.c index 9e3efb49e6..40ed10eae6 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTo= pologyGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTo= pologyGenerator.c @@ -1072,6 +1072,7 @@ CreateAmlProcessorContainer ( @param [in] IsLeaf The ProcNode is a leaf. @param [in] NodeToken NodeToken of the ProcNode. @param [in] ParentNodeToken Parent NodeToken of the ProcNode. + @param [in] PackageNodeSeen A parent of the ProcNode has the physical = package flag set. =20 @retval EFI_SUCCESS Success. @retval EFI_INVALID_PARAMETER Invalid parameter. @@ -1083,23 +1084,24 @@ CheckProcNode ( UINT32 NodeFlags, BOOLEAN IsLeaf, CM_OBJECT_TOKEN NodeToken, - CM_OBJECT_TOKEN ParentNodeToken + CM_OBJECT_TOKEN ParentNodeToken, + BOOLEAN PackageNodeSeen ) { BOOLEAN InvalidFlags; BOOLEAN HasPhysicalPackageBit; - BOOLEAN IsTopLevelNode; =20 HasPhysicalPackageBit =3D (NodeFlags & EFI_ACPI_6_3_PPTT_PACKAGE_PHYSICA= L) =3D=3D EFI_ACPI_6_3_PPTT_PACKAGE_PHYSICAL; - IsTopLevelNode =3D (ParentNodeToken =3D=3D CM_NULL_TOKEN); =20 - // A top-level node is a Physical Package and conversely. - InvalidFlags =3D HasPhysicalPackageBit ^ IsTopLevelNode; + // Only one Physical Package flag is allowed in the hierarchy + InvalidFlags =3D HasPhysicalPackageBit && PackageNodeSeen; =20 // Check Leaf specific flags. if (IsLeaf) { InvalidFlags |=3D ((NodeFlags & PPTT_LEAF_MASK) !=3D PPTT_LEAF_MASK); + // Must have Physical Package flag somewhere in the hierarchy + InvalidFlags |=3D !(HasPhysicalPackageBit || PackageNodeSeen); } else { InvalidFlags |=3D ((NodeFlags & PPTT_LEAF_MASK) !=3D 0); } @@ -1130,6 +1132,7 @@ CheckProcNode ( node to. @param [in,out] ProcContainerIndex Pointer to the current processor con= tainer index to be used as UID. + @param [in] PackageNodeSeen A parent of the ProcNode has the phy= sical package flag set. =20 @retval EFI_SUCCESS Success. @retval EFI_INVALID_PARAMETER Invalid parameter. @@ -1143,7 +1146,8 @@ CreateAmlCpuTopologyTree ( IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN CM_OBJECT_TOKEN NodeToken, IN AML_NODE_HANDLE ParentNode, - IN OUT UINT32 *ProcContainerIn= dex + IN OUT UINT32 *ProcContainerIn= dex, + IN BOOLEAN PackageNodeSeen ) { EFI_STATUS Status; @@ -1153,6 +1157,7 @@ CreateAmlCpuTopologyTree ( AML_OBJECT_NODE_HANDLE ProcContainerNode; UINT32 Uid; UINT16 Name; + BOOLEAN HasPhysicalPackageBit; =20 ASSERT (Generator !=3D NULL); ASSERT (Generator->ProcNodeList !=3D NULL); @@ -1175,7 +1180,8 @@ CreateAmlCpuTopologyTree ( Generator->ProcNodeList[Index].Flags, TRUE, Generator->ProcNodeList[Index].Token, - NodeToken + NodeToken, + PackageNodeSeen ); if (EFI_ERROR (Status)) { ASSERT (0); @@ -1208,7 +1214,8 @@ CreateAmlCpuTopologyTree ( Generator->ProcNodeList[Index].Flags, FALSE, Generator->ProcNodeList[Index].Token, - NodeToken + NodeToken, + PackageNodeSeen ); if (EFI_ERROR (Status)) { ASSERT (0); @@ -1249,13 +1256,17 @@ CreateAmlCpuTopologyTree ( ProcContainerName++; } =20 + HasPhysicalPackageBit =3D (Generator->ProcNodeList[Index].Flags & = EFI_ACPI_6_3_PPTT_PACKAGE_PHYSICAL) =3D=3D + EFI_ACPI_6_3_PPTT_PACKAGE_PHYSICAL; + // Recursively continue creating an AML tree. Status =3D CreateAmlCpuTopologyTree ( Generator, CfgMgrProtocol, Generator->ProcNodeList[Index].Token, ProcContainerNode, - ProcContainerIndex + ProcContainerIndex, + (PackageNodeSeen || HasPhysicalPackageBit) ); if (EFI_ERROR (Status)) { ASSERT (0); @@ -1311,7 +1322,8 @@ CreateTopologyFromProcHierarchy ( CfgMgrProtocol, CM_NULL_TOKEN, ScopeNode, - &ProcContainerIndex + &ProcContainerIndex, + FALSE ); if (EFI_ERROR (Status)) { ASSERT (0); --=20 2.34.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 (#115126): https://edk2.groups.io/g/devel/message/115126 Mute This Topic: https://groups.io/mt/104183075/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-