From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (EUR04-HE1-obe.outbound.protection.outlook.com [40.107.7.43]) by mx.groups.io with SMTP id smtpd.web08.9681.1633702025146016299 for ; Fri, 08 Oct 2021 07:07:05 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=YmrGnzEv; spf=pass (domain: arm.com, ip: 40.107.7.43, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AFA0fKWDYczzvVpgnoSmzOnMC7oio3JiqacIBIjea3g=; b=YmrGnzEvMhd6nkJ2HORsLE6ht7cY7UV1w4N3ZzvWOy3do1fjswicjsXBJMmBtFDYSTixPj71bGN1OzBA293H07rAUW6IeSp4ti6Wd9RAswgUIRR5wZxErVLtE9SMN4AaohumtYSAHWb2z0EnSlVOMCF13IIibBqHvxvuVpPAjlc= Received: from DB3PR08CA0028.eurprd08.prod.outlook.com (2603:10a6:8::41) by AM0PR08MB4499.eurprd08.prod.outlook.com (2603:10a6:208:140::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.19; Fri, 8 Oct 2021 14:07:01 +0000 Received: from DB5EUR03FT007.eop-EUR03.prod.protection.outlook.com (2603:10a6:8:0:cafe::96) by DB3PR08CA0028.outlook.office365.com (2603:10a6:8::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 14:07:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT007.mail.protection.outlook.com (10.152.20.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 14:07:01 +0000 Received: ("Tessian outbound 2e7020cc8961:v103"); Fri, 08 Oct 2021 14:07:00 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: ba4dd1006c6777c7 X-CR-MTA-TID: 64aa7808 Received: from ed27a4df88b7.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A3B791D8-A6D3-4E70-8AB4-69872D6AE7DE.1; Fri, 08 Oct 2021 14:06:54 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ed27a4df88b7.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Oct 2021 14:06:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XJgKxK8n9fAIpmYxViEs87BMjLbiAOWAT93ail5lPMk1Mbx2PX4kZoZU8/lcd7+EjvrhCvOAh3SePkrUrsE+yN35cUWOrJcgMf3HQGPzhqzWOKXYRtHgbMuN18fkBc1P3PdRS6ZD+/ucF5Q9HOxbxZuzwJwwB5j/7sYPrZ78m5SiDrK/lyiCq9GTjDeXHNeE4gRoKiq2GuNcjtDfNQktPVIUNH3g9s1klyfCLGb3U+JKL0uc1FCwdiQINwTUHcUupVKTo3rILwgNq9kvEssIvDBpLuHsmVPKZRRfmkSKrFDdheSqxTv51/LsazFCo4R+A5gL3bt/JA6b9gBZ1s71qA== 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=AFA0fKWDYczzvVpgnoSmzOnMC7oio3JiqacIBIjea3g=; b=Qu0vaIvtJ4LtNdmck1i7cwzjr6nwB+y0nvxZvO64Bmj0RZZN95AhV42GGBMqrmo4jEazJLfQ6RpcLBkXfEaqBSpS0oG5UGaIhg3wLFlL3PetaS8obaYVJo7IOxxpiFitguJKQbk0gW36WdsgmjL0seFRlWxDIyyx6STD2z3Ger6Zb65KEUVAONJjF9ZzGWAmzM9WK/w3UakyjjbVLvUl0QRX65JNmUHR2akylUD+pcFcjxATMYidH2SdDs/BuBvXHLfVoN0my+GKukIZiH5hEsiko+47DpMVRuQNAQCegKPg7FNXaHIEy12CjGvrLeGrkhu26YzhXVLomQIKwYcavg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AFA0fKWDYczzvVpgnoSmzOnMC7oio3JiqacIBIjea3g=; b=YmrGnzEvMhd6nkJ2HORsLE6ht7cY7UV1w4N3ZzvWOy3do1fjswicjsXBJMmBtFDYSTixPj71bGN1OzBA293H07rAUW6IeSp4ti6Wd9RAswgUIRR5wZxErVLtE9SMN4AaohumtYSAHWb2z0EnSlVOMCF13IIibBqHvxvuVpPAjlc= Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) by AM6PR08MB3383.eurprd08.prod.outlook.com (2603:10a6:20b:50::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Fri, 8 Oct 2021 14:06:52 +0000 Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::54b5:239d:9896:ee65]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::54b5:239d:9896:ee65%4]) with mapi id 15.20.4587.022; Fri, 8 Oct 2021 14:06:52 +0000 Subject: Re: [PATCH v2 12/21] DynamicTablesPkg: AML code generation for a Package To: Pierre.Gondois@arm.com, devel@edk2.groups.io, Alexei.Fedorov@arm.com, nd References: <20211007153210.26608-1-Pierre.Gondois@arm.com> <20211007153210.26608-13-Pierre.Gondois@arm.com> From: "Sami Mujawar" Message-ID: <73a8013b-292b-963d-a25f-2fe5cbfba8fa@arm.com> Date: Fri, 8 Oct 2021 15:06:58 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.0.1 In-Reply-To: <20211007153210.26608-13-Pierre.Gondois@arm.com> X-ClientProxiedBy: LO3P265CA0008.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:bb::13) To AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) MIME-Version: 1.0 Received: from [10.1.196.43] (217.140.106.52) by LO3P265CA0008.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:bb::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.15 via Frontend Transport; Fri, 8 Oct 2021 14:06:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 439c898f-2966-49d9-3610-08d98a64e608 X-MS-TrafficTypeDiagnostic: AM6PR08MB3383:|AM0PR08MB4499: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:7219;OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 1B4ze0joCfLiv1kDj+2IY9c8MhilMG4DmRpUVldvLrEMFp7E70IgtJr24cRG0YjqDKQfC1F5DbSUH9BROieYnY0ULOePQiVd0nemVWprY4RmMSKFgkIJqWfN+klZmpiR0t5qlkZCh6Te++WmRArNLYHE8ZxOxF3wlR+Hdq1SZjT/CFziErqButKj6p2amQ5e84r2HMfpQgqGEt0pElAnk7PpvzT8a9thZ1juLs176TV38tR++yynk0XQOMOEMjh8y0mzB89eoQThigK7YgmT0gm/7M0WziNQPLPFWkYnik6npJLc1gG0BX9o9ooFz7R+v8Ipej3cjrjaDye/MipaJHueJ9JkYxC0t4uAo5R/RyDvMquQwI5Qr55iG54BEtzCVGGs/c2IJ3mX8XJ01n4aihHlGXsR/QRvai15XUeWkcurNXQR1+cQN4P0fDS411Nwk+4mFXu0z+YZmXlMt02xFaql7K8uR2tFmSUh9MlRMNjVWzqAeMst+gO24IHbZDyEst/W2at639fRtUwAC5hRTe+CVqqujh8pr0mKw9pIa4szq+VF7RQ2LuNO64BhvlGADBQN0ApuYskTVfR7IG8ImIierMWkbT/7IvuWwOyKY9McUbBXeUEKMhaZPv5Evwj9/zLTkw4wuS2ZPpsaEwbQfVxI1rhBEnM6enYuwJHIkDjPpDzUypZyr/nDDMYizt2ESvQFL6+JfuAHZXX2BPQBz9Dn++NlIlRVUYg2ZgCgBnhxOJRWnr5D26CYcZ1Kq8vX6TUfxf7GScxI+cokW4IdCA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6806.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(86362001)(38100700002)(26005)(6862004)(38350700002)(6636002)(44832011)(508600001)(36756003)(53546011)(37006003)(316002)(16576012)(2616005)(66556008)(6486002)(5660300002)(186003)(66476007)(956004)(66946007)(52116002)(2906002)(8676002)(83380400001)(31686004)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3383 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 070790d5-3e3e-40a0-3543-08d98a64e0e1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: k5uHKWhLg1X7hIFDz62Q58LpY2CEgzcaI2Xr9nhDVeDZwu6weccEsT4PtPdds3khd5EXx6j2wYK306AF2FoOZ6sbVde5SbbocKHozrCSvKJEq+RcAgiFJox9/56MTe0/FVaFYZMczJc4BDNAK2J3bjzGAoFoi9rpmxU5NUmVAF2qNz61Eu2ACLlJXJ63AgnwrzhSXN5OnBfM3F9j7wrFXliOwL1YhP8fgoRDe9XbMrMVx84pcUffVTHB6JY+nJEkRaTLTAcd+NIRT/PJ1kisVqsADZRi7YkYN/98Qq4IMORWRqNJ6qhGf6LTn2oZr2n30QQzUV4wnIvz068EfvOgEyMTRF+iIwn0Efvb26Ckf0oTY3K2FdliAfLRZX6k+n4j22hLO/XdAnpzk40dgLVkmzD0NZgffGAwjbAk3XGnaoy1wOnt6KGkqg3tg23UexP6vhyMVRbdgNp9cw9KXniLOjvEs8vtTLQSRG94TPxPaYT3HUEZ0YBGRxhocYi8LqnWMUgqifJO+5sAiJZ1MkMpwrriZYsDzsHbMiOLZnZZiwQvKhBvCpXnJ3Cqg5EZmHCBFHW2phA4hS7xzZqJ/yz50IcELTVdtQn6OMsnd0tKAarGh5mo3609h0oUGvb0pEP1vPj3ZAdtz2E5Qs58uXX4WXSXBIwSd2u/doqPjRtgfaJrMkqgbhnuX+n/AGQTQU4pAUi7EVXqaEdmopTh+wiWWQZFUzTMBZZa4AEJJFQ6gak= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(53546011)(6862004)(36860700001)(356005)(37006003)(186003)(956004)(83380400001)(5660300002)(316002)(47076005)(70586007)(82310400003)(8676002)(26005)(81166007)(31696002)(86362001)(36756003)(70206006)(16576012)(8936002)(2616005)(6636002)(6486002)(336012)(508600001)(2906002)(44832011)(31686004)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 14:07:01.0226 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 439c898f-2966-49d9-3610-08d98a64e608 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4499 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Content-Language: en-GB Hi Pierre, Thank you for this patch. Reviewed-by: Sami Mujawar Regards, Sami Mujawar On 07/10/2021 04:32 PM, Pierre.Gondois@arm.com wrote: > From: Pierre Gondois > > Add AmlCodeGenPackage() to generate AML code for declaring > a Package() object. This function generates an empty package > node. New elements can then be added to the package's variable > argument list. > > Signed-off-by: Pierre Gondois > --- > .../Common/AmlLib/CodeGen/AmlCodeGen.c | 81 ++++++++++++++++++- > 1 file changed, 80 insertions(+), 1 deletion(-) > > diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c = b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > index cbfd9cbb68b6..a4cd2502dc56 100644 > --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c > @@ -1,7 +1,7 @@ > /** @file > AML Code Generation. > > - Copyright (c) 2020, Arm Limited. All rights reserved.
> + Copyright (c) 2020 - 2021, Arm Limited. All rights reserved.
> > SPDX-License-Identifier: BSD-2-Clause-Patent > **/ > @@ -237,6 +237,85 @@ AmlCodeGenInteger ( > return Status; > } > > +/** AML code generation for a Package object node. > + > + The package generated is empty. New elements can be added via its > + list of variable arguments. > + > + @param [out] NewObjectNode If success, contains the created > + Package object node. > + > + @retval EFI_SUCCESS Success. > + @retval EFI_INVALID_PARAMETER Invalid parameter. > + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. > +**/ > +STATIC > +EFI_STATUS > +EFIAPI > +AmlCodeGenPackage ( > + OUT AML_OBJECT_NODE ** NewObjectNode > + ) > +{ > + EFI_STATUS Status; > + AML_DATA_NODE * DataNode; > + UINT8 NodeCount; > + > + if (NewObjectNode =3D=3D NULL) { > + ASSERT (0); > + return EFI_INVALID_PARAMETER; > + } > + > + NodeCount =3D 0; > + > + // Create an object node. > + // PkgLen is 2: > + // - one byte to store the PkgLength > + // - one byte for the NumElements. > + // Cf ACPI6.3, s20.2.5 "Term Objects Encoding" > + // DefPackage :=3D PackageOp PkgLength NumElements PackageElementList > + // NumElements :=3D ByteData > + Status =3D AmlCreateObjectNode ( > + AmlGetByteEncodingByOpCode (AML_PACKAGE_OP, 0), > + 2, > + NewObjectNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + return Status; > + } > + > + // NumElements is a ByteData. > + Status =3D AmlCreateDataNode ( > + EAmlNodeDataTypeUInt, > + &NodeCount, > + sizeof (NodeCount), > + &DataNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + Status =3D AmlSetFixedArgument ( > + *NewObjectNode, > + EAmlParseIndexTerm0, > + (AML_NODE_HEADER*)DataNode > + ); > + if (EFI_ERROR (Status)) { > + ASSERT (0); > + goto error_handler; > + } > + > + return Status; > + > +error_handler: > + AmlDeleteTree ((AML_NODE_HEADER*)*NewObjectNode); > + if (DataNode !=3D NULL) { > + AmlDeleteTree ((AML_NODE_HEADER*)DataNode); > + } > + return Status; > +} > + > /** AML code generation for a Name object node. > > @param [in] NameString The new variable name. IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you.