From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (NAM04-BN8-obe.outbound.protection.outlook.com [40.107.100.49]) by mx.groups.io with SMTP id smtpd.web10.98.1688079733393609128 for ; Thu, 29 Jun 2023 16:02:13 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=i0NsFRRg; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.100.49, mailfrom: jbrasen@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mzcY5zrEejX8/frh6OiVmRbGT+JFFNop+xJGPY9Lv2A0krauuDyzZlFSqivEGEcMyaWPT4W+mN0LUJ8Cas9pdJ4v3m/iotb8KQFgr3iKlal2b3ZldE98CzmeH3DV4Htiv9L+c8IndZF+0kVHQCwC08nNi42FXKyJ/zuGGHTmszM/2K41+0HHYZlyMd4Dmn4R1x3tWJpUzwo4PdAQLwv7damxG2q422AoLMJANVYsBsd6Qe/veCQ9qKeunllzVZJD+DTBjPqq9+X32DsBYguniRYI8OerRghxJMzRUfy3VFsG97tP0zziLkXMtCxvqYIx4v5xgF4JO3n9tyRtv56hQA== 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=X1QGwMYJhEadgWyxgb0q/Rre348X9g36tOEekRmHs2Y=; b=jFmM4dXrSmm3YOKCWjkdZB2RJY1hHhMjXtAYDlhjWZGUHp2lFa8rX3uh6dNVFwzIh2qK5B/YOjsW7LEVQKopx4K/anOGGV8GZHDJ0WiyAPg/QaksVcqgZXs74XeoJ20mcn0gr40yHyaew9yXYaceX56SYGiYV5G2vPXTs3nvZ7HDBNmeVg7cq2UI+JJ5JIfJxueYN8tOlHKNdXjL7/KrJ40tr3WttUxaW8o1DzzueaVsfSm9TfXvv1N6vjrBctGS0tF8toMuv/Ys+tZlQerIq823VsqPTsUM4o3gr/7ryrl2/3bz9r4AKRQJkfSjxwWwcOi9jl8o/0B8Kfr7GwHCdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X1QGwMYJhEadgWyxgb0q/Rre348X9g36tOEekRmHs2Y=; b=i0NsFRRgY/cD5pazY904F9ZiZP2C6TKpwcxJlWRRuyzHBbfqIn32hI49sVAAs9A9Yw1xmmMUx0kFRaMbXh3byQiFVNPrezBmpKVaS/HtawDRCevP1vaV+l6nuAw8+CKPv5d/QmzjMqRNaL7F3VIhuctN6Z9JHyyU9xqvcxw1j6iz04qdez6hJ6gd2ucdSBKW1gh4ce9bi0cVsuyjF5+HYJUYqedCa3qg47zkDBH8FgKvKUcj1KIL4oec+sy7wBuz3VUAE5RyBy7RlU9kjgwKdNNd6eho6yOI8XW1Bmc4AqqBFUMVfLD5l4gDjKR5J81RW00x65x2ikGLT1qUHRIqfQ== Received: from MW4PR04CA0102.namprd04.prod.outlook.com (2603:10b6:303:83::17) by SN7PR12MB7275.namprd12.prod.outlook.com (2603:10b6:806:2ae::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Thu, 29 Jun 2023 23:02:11 +0000 Received: from CO1NAM11FT032.eop-nam11.prod.protection.outlook.com (2603:10b6:303:83:cafe::fa) by MW4PR04CA0102.outlook.office365.com (2603:10b6:303:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.22 via Frontend Transport; Thu, 29 Jun 2023 23:02:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1NAM11FT032.mail.protection.outlook.com (10.13.174.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.49 via Frontend Transport; Thu, 29 Jun 2023 23:02:10 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Thu, 29 Jun 2023 16:01:58 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Thu, 29 Jun 2023 16:01:57 -0700 Received: from 6cd8174ac25c.nvidia.com (10.127.8.9) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.986.37 via Frontend Transport; Thu, 29 Jun 2023 16:01:57 -0700 From: "Jeff Brasen" To: CC: , , , Jeff Brasen , "Swatisri Kantamsetti" , Ashish Singhal Subject: [PATCH 1/4] DynamicTablesPkg: Add ThermalZone CodeGen function Date: Thu, 29 Jun 2023 23:01:46 +0000 Message-ID: <5a12f37462d227f2e55175eb47fa4a955c587dac.1688079404.git.jbrasen@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 X-NVConfidentiality: public Return-Path: jbrasen@nvidia.com X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT032:EE_|SN7PR12MB7275:EE_ X-MS-Office365-Filtering-Correlation-Id: 25a5c9cf-3fac-4b44-1e3f-08db78f4def4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zwyEnHncueD52Q/0su16WrBvVy2i+U1sVVFVjAnkw5zAUiMVk7rBWbUJI63iXedIn31u5RLdnLAo8EnmoiGYKmnj+AZHiUvwH9Efv3P9tKsMG/Kog14dDUs9GctH30WAWblRtautaau+nWca/dHH96kLJ6PBEN4morJ/9gKTK+gZykwMFg9NbQSnRzK/H9RHN6yE1GCJpmpIpMhIWd4SvgdfhCbo+iD88vci15NeickNtKRB2cYhkUuu3ZJIwRPafCUaDZQZNC3Cd3UhHpFDKOG7gSvVpsDMTrJrFXC+dYLKFZMu0sA3E4uW5gIKu0UCk4iHNBf9DxDRtvjc0w28UeD23xTaOnyhDn8934Sfbetk4vrOxZ0P17cDdRY1h7NtQbJVDSeENpKZDB1z1sAjgeaDl1VEqHJDmtcxseW1we4IwNv/ZTcC21vBflu2D9OMIixI+/htD6aJdxqLvgLToM5a5fnZ3r9/euJN4WwNSWgPXZybXDVCfInEq4dQAIMm/iGALqu5CnxzeMsxf77kPg0TlhreOPf0XWTNANVgymRw22HOKBmgOA60ym1xaph2wyycX+Z2/O4FMrdGfPqYLHSwd7QQ5qtU6i7akNfOQRpjJEBLzMBjrREWKLfchfinWa90YMevVG12sUuB+yo8vfEt9gRpaWxfto9D3UC4/FqDMwHYulOt6+h3+KQGj50L2RdETgz6E8c5zhhWME8/wYAy0ZZ9x/ZAqlm2mGievShKvCqbJDshgJt4MA3oLyBS X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230028)(4636009)(136003)(376002)(39860400002)(396003)(346002)(451199021)(40470700004)(36840700001)(46966006)(82310400005)(36860700001)(47076005)(107886003)(478600001)(186003)(2616005)(336012)(7696005)(54906003)(6666004)(26005)(83380400001)(2906002)(426003)(86362001)(70206006)(41300700001)(36756003)(5660300002)(356005)(7636003)(4326008)(82740400003)(316002)(40480700001)(70586007)(40460700003)(8936002)(6916009)(8676002);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2023 23:02:10.9388 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 25a5c9cf-3fac-4b44-1e3f-08db78f4def4 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT032.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7275 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Add API to generate a ThermalZone object to AmlLib.=0D =0D Signed-off-by: Jeff Brasen =0D Reviewed-by: Swatisri Kantamsetti =0D Reviewed-by: Ashish Singhal =0D ---=0D .../Include/Library/AmlLib/AmlLib.h | 28 +++++=0D .../Common/AmlLib/CodeGen/AmlCodeGen.c | 116 ++++++++++++++++++=0D 2 files changed, 144 insertions(+)=0D =0D diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h b/DynamicTabl= esPkg/Include/Library/AmlLib/AmlLib.h=0D index 9210c50915..d201ae9499 100644=0D --- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h=0D +++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h=0D @@ -1038,6 +1038,34 @@ AmlCodeGenDevice (=0D OUT AML_OBJECT_NODE_HANDLE *NewObjectNode OPTIONAL=0D );=0D =0D +/** AML code generation for a ThermalZone object node.=0D +=0D + AmlCodeGenThermalZone ("TZ00", ParentNode, NewObjectNode) is=0D + equivalent of the following ASL code:=0D + ThermalZone(TZ00) {}=0D +=0D + @ingroup CodeGenApis=0D +=0D + @param [in] NameString The new ThermalZone's name.=0D + Must be a NULL-terminated ASL NameString=0D + e.g.: "DEV0", "DV15.DEV0", etc.=0D + The input string is copied.=0D + @param [in] ParentNode If provided, set ParentNode as the parent=0D + of the node created.=0D + @param [out] NewObjectNode If success, contains the created node.=0D +=0D + @retval EFI_SUCCESS Success.=0D + @retval EFI_INVALID_PARAMETER Invalid parameter.=0D + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.=0D +**/=0D +EFI_STATUS=0D +EFIAPI=0D +AmlCodeGenThermalZone (=0D + IN CONST CHAR8 *NameString,=0D + IN AML_NODE_HANDLE ParentNode OPTIONAL,=0D + OUT AML_OBJECT_NODE_HANDLE *NewObjectNode OPTIONAL=0D + );=0D +=0D /** AML code generation for a Scope object node.=0D =0D AmlCodeGenScope ("_SB", ParentNode, NewObjectNode) is=0D diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c b/= DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c=0D index 0b223379fa..88537b7e2d 100644=0D --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c=0D +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c=0D @@ -1218,6 +1218,122 @@ error_handler1:=0D return Status;=0D }=0D =0D +/** AML code generation for a ThermalZone object node.=0D +=0D + AmlCodeGenThermalZone ("TZ00", ParentNode, NewObjectNode) is=0D + equivalent of the following ASL code:=0D + ThermalZone(TZ00) {}=0D +=0D + @ingroup CodeGenApis=0D +=0D + @param [in] NameString The new ThermalZone's name.=0D + Must be a NULL-terminated ASL NameString=0D + e.g.: "DEV0", "DV15.DEV0", etc.=0D + The input string is copied.=0D + @param [in] ParentNode If provided, set ParentNode as the parent=0D + of the node created.=0D + @param [out] NewObjectNode If success, contains the created node.=0D +=0D + @retval EFI_SUCCESS Success.=0D + @retval EFI_INVALID_PARAMETER Invalid parameter.=0D + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.=0D +**/=0D +EFI_STATUS=0D +EFIAPI=0D +AmlCodeGenThermalZone (=0D + IN CONST CHAR8 *NameString,=0D + IN AML_NODE_HANDLE ParentNode OPTIONAL,=0D + OUT AML_OBJECT_NODE_HANDLE *NewObjectNode OPTIONAL=0D + )=0D +{=0D + EFI_STATUS Status;=0D + AML_OBJECT_NODE *ObjectNode;=0D + AML_DATA_NODE *DataNode;=0D + CHAR8 *AmlNameString;=0D + UINT32 AmlNameStringSize;=0D +=0D + if ((NameString =3D=3D NULL) ||=0D + ((ParentNode =3D=3D NULL) && (NewObjectNode =3D=3D NULL)))=0D + {=0D + ASSERT (0);=0D + return EFI_INVALID_PARAMETER;=0D + }=0D +=0D + ObjectNode =3D NULL;=0D + DataNode =3D NULL;=0D + AmlNameString =3D NULL;=0D +=0D + Status =3D ConvertAslNameToAmlName (NameString, &AmlNameString);=0D + if (EFI_ERROR (Status)) {=0D + ASSERT (0);=0D + return Status;=0D + }=0D +=0D + Status =3D AmlGetNameStringSize (AmlNameString, &AmlNameStringSize);=0D + if (EFI_ERROR (Status)) {=0D + ASSERT (0);=0D + goto error_handler1;=0D + }=0D +=0D + Status =3D AmlCreateObjectNode (=0D + AmlGetByteEncodingByOpCode (AML_EXT_OP, AML_EXT_THERMAL_ZONE_= OP),=0D + AmlNameStringSize + AmlComputePkgLengthWidth (AmlNameStringSi= ze),=0D + &ObjectNode=0D + );=0D + if (EFI_ERROR (Status)) {=0D + ASSERT (0);=0D + goto error_handler1;=0D + }=0D +=0D + Status =3D AmlCreateDataNode (=0D + EAmlNodeDataTypeNameString,=0D + (UINT8 *)AmlNameString,=0D + AmlNameStringSize,=0D + &DataNode=0D + );=0D + if (EFI_ERROR (Status)) {=0D + ASSERT (0);=0D + goto error_handler2;=0D + }=0D +=0D + Status =3D AmlSetFixedArgument (=0D + ObjectNode,=0D + EAmlParseIndexTerm0,=0D + (AML_NODE_HEADER *)DataNode=0D + );=0D + if (EFI_ERROR (Status)) {=0D + ASSERT (0);=0D + AmlDeleteTree ((AML_NODE_HEADER *)DataNode);=0D + goto error_handler2;=0D + }=0D +=0D + Status =3D LinkNode (=0D + ObjectNode,=0D + ParentNode,=0D + NewObjectNode=0D + );=0D + if (EFI_ERROR (Status)) {=0D + ASSERT (0);=0D + goto error_handler2;=0D + }=0D +=0D + // Free AmlNameString before returning as it is copied=0D + // in the call to AmlCreateDataNode().=0D + goto error_handler1;=0D +=0D +error_handler2:=0D + if (ObjectNode !=3D NULL) {=0D + AmlDeleteTree ((AML_NODE_HEADER *)ObjectNode);=0D + }=0D +=0D +error_handler1:=0D + if (AmlNameString !=3D NULL) {=0D + FreePool (AmlNameString);=0D + }=0D +=0D + return Status;=0D +}=0D +=0D /** AML code generation for a Scope object node.=0D =0D AmlCodeGenScope ("_SB", ParentNode, NewObjectNode) is=0D -- =0D 2.25.1=0D =0D