From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (EUR05-DB8-obe.outbound.protection.outlook.com [40.107.20.68]) by mx.groups.io with SMTP id smtpd.web10.17174.1597245773655485759 for ; Wed, 12 Aug 2020 08:22:54 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=oET563B5; spf=pass (domain: arm.com, ip: 40.107.20.68, 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=NRXIpCmSmIag5NEzWn/tKrxKO97GSjZnLbWze+LYXdo=; b=oET563B5j6FrRx09bbcTHlgyIFi92cfWwmR1MIjHpzenG2HOAFXasjNiXsqGFQURN6mxiP7sYZyIa+ghPCo9mYKk7j3Y+5qFzNM5dhrSHeAd48xIscIiGiiEWzArSlOE9FfqMS8MbgupdTS9ZMH8G4FEO6TcxXnFCcJEXLFOZ/U= Received: from AM5PR0402CA0003.eurprd04.prod.outlook.com (2603:10a6:203:90::13) by AM8PR08MB5684.eurprd08.prod.outlook.com (2603:10a6:20b:1dc::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15; Wed, 12 Aug 2020 15:22:50 +0000 Received: from AM5EUR03FT059.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:90:cafe::eb) by AM5PR0402CA0003.outlook.office365.com (2603:10a6:203:90::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15 via Frontend Transport; Wed, 12 Aug 2020 15:22:50 +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=bestguesspass 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 AM5EUR03FT059.mail.protection.outlook.com (10.152.17.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.16 via Frontend Transport; Wed, 12 Aug 2020 15:22:50 +0000 Received: ("Tessian outbound e8cdb8c6f386:v64"); Wed, 12 Aug 2020 15:22:50 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 45b06eb54578dbdb X-CR-MTA-TID: 64aa7808 Received: from 7d9f290609ad.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A4EB68E6-3B4C-4E02-BD23-F64C249B2C3D.1; Wed, 12 Aug 2020 15:22:45 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 7d9f290609ad.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 12 Aug 2020 15:22:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tg4Ch+mndSSlHB/FK9Y7j3UQJr0i9gT22HOcyCQWeRImXC4VQ4Th6omDlJ+YZfxRwYvpv9bqLnVECKEIsh9MYWb/t/kM47ylX4F76OkI2n5oa87FJ0bPyqFhI7l9k8xVK2qgcghgYjD3Az9jBJMVXpYPlY7dZsDjp/+AZ6ny25KEUfmVTF0coX0/AF5G6Qq8r6yixZLsSATU18/+zY8p+Oa4r71HpZFecS1NQXuJg1l/Pb6H0algWGD+2QgeiPj77PmbJzo2BcqyOtSKnaWoQ8M4Yhiho+TM5OBMB0cYjhqu6mVlUKesBxdlMnA6BCJH9M9N3hgXvC7EM67bkyBpuA== 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-SenderADCheck; bh=NRXIpCmSmIag5NEzWn/tKrxKO97GSjZnLbWze+LYXdo=; b=bspKMdbSSgXSd44eVfRXustZ289FAR9L45cYHnXyI0klVuugadglA6FLzM/ayaYiLLH/WOn+3nH2P5hFQaflfwSPWjEdEwkHnu+k9dFuzz+lokODeWx7fjdL3zmPj6aBJ6JKSP7FAPfTaTjGeYAkWsOYrKbTY5mmbHY2dcDWZ8DfbALJfljLKUJ85+Fa+6Dj5LO7o0WRr1kG9WoNkpF0tfwcRx2gf28hksE+XUSTXznjHU9eN5+0s4whbIIVX9dUU+T19spk5Z+pzXv3i6y1uiBSsPg6kn2Sryh0Jme8ANv3B5TDD5ARUouxF0HbjfTYkGtGTrPYv/FiybZk+EYb5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=bestguesspass action=none header.from=arm.com; dkim=none (message not signed); 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=NRXIpCmSmIag5NEzWn/tKrxKO97GSjZnLbWze+LYXdo=; b=oET563B5j6FrRx09bbcTHlgyIFi92cfWwmR1MIjHpzenG2HOAFXasjNiXsqGFQURN6mxiP7sYZyIa+ghPCo9mYKk7j3Y+5qFzNM5dhrSHeAd48xIscIiGiiEWzArSlOE9FfqMS8MbgupdTS9ZMH8G4FEO6TcxXnFCcJEXLFOZ/U= Received: from DB6PR0301CA0048.eurprd03.prod.outlook.com (2603:10a6:4:54::16) by VE1PR08MB4653.eurprd08.prod.outlook.com (2603:10a6:802:b1::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15; Wed, 12 Aug 2020 15:22:40 +0000 Received: from DB5EUR03FT007.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:54:cafe::7c) by DB6PR0301CA0048.outlook.office365.com (2603:10a6:4:54::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15 via Frontend Transport; Wed, 12 Aug 2020 15:22:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; Received: from nebula.arm.com (40.67.248.234) by DB5EUR03FT007.mail.protection.outlook.com (10.152.20.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.3283.16 via Frontend Transport; Wed, 12 Aug 2020 15:22:40 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2044.4; Wed, 12 Aug 2020 15:22:37 +0000 Received: from E107187.Arm.com (10.57.41.222) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2044.4 via Frontend Transport; Wed, 12 Aug 2020 15:22:36 +0000 From: "Sami Mujawar" To: CC: Sami Mujawar , , , , , , , , , Subject: [PATCH v1 00/30] Add Dynamic AML generation support Date: Wed, 12 Aug 2020 16:22:06 +0100 Message-ID: <20200812152236.31164-1-sami.mujawar@arm.com> X-Mailer: git-send-email 2.11.0.windows.3 MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-HT: Tenant X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d764757-5f1f-416f-9b15-08d83ed39385 X-MS-TrafficTypeDiagnostic: VE1PR08MB4653:|AM8PR08MB5684: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:8882;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: v1mOWJSzKkly1glBS+AzoD+4XvDhfM3LsIeWPmVaJ4i3juGTO7IF2Nt8NW2rlx35DeKtmwiaa9uRj8Mauz050IZHdFBhNuPb3FiseDH7N4k9PiJaBjqe8kcEtRCURqjRa1p0TxsL31A0yrEoBarQ/fpky4p0eRRDWCmMMO24Ih1+MjXohLgos4R1qZsFDbUVXgHeIaxYgm41Fni07e2DUxTASqB0U23Ev/VnBQSyutGHlsxJajZe5IpDjDYTjwzP93CScMr3IFJaIomkLz82Hg87sNWr72x0hZm/14otGSvsP8HFprPbyNLGQhylWOMRsgngb0Lcgk95D2oNBVVZMq5izWPXrr9hQPQBk+tX9RIgWagTmNRJvTVbx9Hj4ry1jKy2DLT2LVFezOgI8bIXuFIDN6LBszJ2IQww1pHDgXQmRc1MBWFWYanDTLETJ1wzXZuuA2OCWXS0/OZBWwhFYOLEVQ8neiEjsWgvVTLFHc4= X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(376002)(346002)(39860400002)(136003)(396003)(46966005)(36756003)(6666004)(44832011)(86362001)(426003)(478600001)(6916009)(8676002)(2616005)(2906002)(83380400001)(81166007)(4326008)(70206006)(966005)(336012)(7696005)(8936002)(1076003)(186003)(70586007)(5660300002)(82310400002)(26005)(30864003)(54906003)(316002)(82740400003)(47076004)(356005);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4653 Return-Path: Sami.Mujawar@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 5dc0fada-8ef4-4ff0-5a38-08d83ed38d7a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AeZVinP/HOQyx/MyKNfRRlX9vA0LNShX1bd8dSYzVFBJf7pzdlbldoAst+jzpVgum5GQuUzqB9OytgX/QMoK6ds0/E0HxC6QYSHEoM0J9bOBbO1lXhsFzsTRLc4oj0bWqrOnV5w6eHqPGIo+NIGcHIRNoVrXFFo0kbKScFgP+f4uczAoRJtZ2IR2SicN9mObSJCn/DCU5I7e0KNIB8IaY91VuhhQcnHq1jlrCQOclDXY8K1YrlDhB6xu2dhGql3IKUe57kkKj0ye3OI74VruC4/W+xQc3nCG7ETUAPIyXb/3HQa0yR53TGWDKMFbxzxxJAy710pb/NDAbWrKhuHqqfbD271VpyB/pwFlMB61ja8GPIO7Y1WmTPDECiyMHYPEpy61xgBY2DQGpBHndOzmzutIjJ0tt47OCVNquDUMLKm85B8i6IXvchB4p1ILRhJeWCpTZbXkkS9rUmeB6DLLXMyTvOxQ4jnX+WvnALBFMcE= 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)(346002)(39860400002)(376002)(136003)(396003)(46966005)(36756003)(82310400002)(70206006)(70586007)(7696005)(47076004)(8936002)(336012)(316002)(186003)(81166007)(82740400003)(2616005)(426003)(6666004)(44832011)(478600001)(966005)(54906003)(30864003)(6916009)(86362001)(2906002)(1076003)(83380400001)(26005)(5660300002)(36906005)(4326008)(8676002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2020 15:22:50.6243 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7d764757-5f1f-416f-9b15-08d83ed39385 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: AM5EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5684 Content-Type: text/plain ACPI tables are categorised as Data tables (e.g. MADT, GTDT, etc.) or Definition Block tables (DSDT or SSDT). The Dynamic Tables Framework already supports generation of Data tables. Definition Block tables are written in ACPI Source Language (ASL) and compiled to ACPI Machine Language (AML). This AML bytecode is processed by the AML interpreter that runs as part of the Operating System (OS). AML has a complex grammar, making runtime modifications on an AML byte stream difficult. Dynamic AML is a solution to simplify the generation of Definition Block tables. Dynamic AML introduces an AmlLib library that implements an AML parser that parses the AML bytecode and represent it as a tree data structure. This allows to easily modify the AML code by updating/adding/removing the tree nodes. The modified AML tree is then serialised to a buffer for installing as a Definition block table. AmlLib Library provides a rich set of APIs to - parse AML bytecode to generate an AML tree. - search, update, traverse and serialise an AML tree. - enumerate, add, delete nodes of an AML tree. - generate small segments of AML code in the form of AML nodes that can be used to form a branch/tree. Dynamic AML introduces the following techniques: * AML Fixup * AML Codegen * AML Fixup + Codegen AML Fixup is a technique that involves run-time fixup of sections of an AML template bytecode. An ASL template file is compiled to AML bytecode at build time. At runtime, this AML template bytecode is parsed using the AmlLib library APIs and is represented as an AML tree. The AML tree nodes can be searched to locate a node that needs updating and can be fixed up. The AML tree is then serialised to a buffer representing the Definition Block table. AML Codegen employs generating small segments of AML code and populating a small AML tree that can be serialised. AML Fixup + Codegen is a combination of Fixup and Codegen. Here the AML template is parsed to generate an AML Tree. Sections of AML code can be fixed-up as well as new AML nodes/branches can be attached to the AML tree using the AML Codegen APIs. A SSDT Serial Port generator has also been introduced to generate definition block tables describing the serial ports on a platform. A SSDT Serial Port Fixup library has been provided to generate description of a serial port in a Definition Block table. This library is shared by SPCR, DBG2 and the SSDT Serial Port generator to describe the respective serial ports. The SPCR and DBG2 table generators have also been updated to generate the SSDT serial port tables describing the respective serial ports. The changes can be seen at: https://github.com/samimujawar/edk2/tree/675_dynamic_aml_v1 Pierre Gondois (27): DynamicTablesPkg: AmlLib definitions DynamicTablesPkg: AML grammar definition DynamicTablesPkg: AML node definitions DynamicTablesPkg: AML tree interface DynamicTablesPkg: AML tree enumerator DynamicTablesPkg: AML tree traversal DynamicTablesPkg: AML tree iterator DynamicTablesPkg: AML tree/node cloning DynamicTablesPkg: AML utility interfaces DynamicTablesPkg: AML and ASL string helper DynamicTablesPkg: AML serialise interface DynamicTablesPkg: AML debug logging DynamicTablesPkg: AML ACPI Namespace interface DynamicTablesPkg: AML Parser DynamicTablesPkg: AML resource data helper DynamicTablesPkg: AML resource data parser DynamicTablesPkg: AML Method parser DynamicTablesPkg: AML Field list parser DynamicTablesPkg: AML Codegen DynamicTablesPkg: AML Resource Data Codegen DynamicTablesPkg: AML Core interface DynamicTablesPkg: AmlLib APIs DynamicTablesPkg: Dynamic AML: Add AmlLib library DynamicTablesPkg: SSDT Serial Port Fixup library DynamicTablesPkg: SSDT Serial Port generator DynamicTablesPkg: Add SSDT Serial port for SPCR DynamicTablesPkg: Add SSDT Serial port for DBG2 Sami Mujawar (3): DynamicTablesPkg: Introduction to Dynamic AML DynamicTablesPkg: AML stream interface DynamicTablesPkg: Add AsciiFromHex helper function DynamicTablesPkg/DynamicTables.dsc.inc | 8 + DynamicTablesPkg/DynamicTablesPkg.ci.yaml | 9 +- DynamicTablesPkg/DynamicTablesPkg.dec | 8 +- DynamicTablesPkg/DynamicTablesPkg.dsc | 4 +- DynamicTablesPkg/Include/AcpiTableGenerator.h | 7 +- DynamicTablesPkg/Include/ArmNameSpaceObjects.h | 9 +- DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h | 631 ++++++++ DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h | 68 + DynamicTablesPkg/Include/Library/TableHelperLib.h | 15 +- DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/AcpiDbg2LibArm.inf | 3 +- DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c | 228 ++- DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/AcpiSpcrLibArm.inf | 3 +- DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c | 219 ++- DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c | 367 +++++ DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortLibArm.inf | 33 + DynamicTablesPkg/Library/Common/AmlLib/AmlCoreInterface.h | 767 ++++++++++ DynamicTablesPkg/Library/Common/AmlLib/AmlDbgPrint/AmlDbgPrint.c | 546 +++++++ DynamicTablesPkg/Library/Common/AmlLib/AmlDbgPrint/AmlDbgPrint.h | 154 ++ DynamicTablesPkg/Library/Common/AmlLib/AmlDefines.h | 188 +++ DynamicTablesPkg/Library/Common/AmlLib/AmlEncoding/Aml.c | 805 +++++++++++ DynamicTablesPkg/Library/Common/AmlLib/AmlEncoding/Aml.h | 330 +++++ DynamicTablesPkg/Library/Common/AmlLib/AmlInclude.h | 18 + DynamicTablesPkg/Library/Common/AmlLib/AmlLib.inf | 76 + DynamicTablesPkg/Library/Common/AmlLib/AmlNodeDefines.h | 183 +++ DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApi.c | 382 +++++ DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApiHelper.c | 219 +++ DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApiHelper.h | 93 ++ DynamicTablesPkg/Library/Common/AmlLib/Api/AmlResourceDataApi.c | 320 +++++ DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c | 701 +++++++++ DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c | 256 ++++ DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.h | 59 + DynamicTablesPkg/Library/Common/AmlLib/NameSpace/AmlNameSpace.c | 1501 ++++++++++++++++++++ DynamicTablesPkg/Library/Common/AmlLib/NameSpace/AmlNameSpace.h | 74 + DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlFieldListParser.c | 375 +++++ DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlFieldListParser.h | 77 + DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlMethodParser.c | 1458 +++++++++++++++++++ DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlMethodParser.h | 188 +++ DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlParser.c | 1448 +++++++++++++++++++ DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlParser.h | 72 + DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlResourceDataParser.c | 328 +++++ DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlResourceDataParser.h | 71 + DynamicTablesPkg/Library/Common/AmlLib/ResourceData/AmlResourceData.c | 103 ++ DynamicTablesPkg/Library/Common/AmlLib/ResourceData/AmlResourceData.h | 174 +++ DynamicTablesPkg/Library/Common/AmlLib/Serialize/AmlSerialize.c | 324 +++++ DynamicTablesPkg/Library/Common/AmlLib/Stream/AmlStream.c | 665 +++++++++ DynamicTablesPkg/Library/Common/AmlLib/Stream/AmlStream.h | 451 ++++++ DynamicTablesPkg/Library/Common/AmlLib/String/AmlString.c | 1022 +++++++++++++ DynamicTablesPkg/Library/Common/AmlLib/String/AmlString.h | 401 ++++++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlClone.c | 205 +++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.c | 673 +++++++++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.h | 212 +++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNodeInterface.c | 566 ++++++++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTree.c | 1047 ++++++++++++++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTree.h | 127 ++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeEnumerator.c | 98 ++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeIterator.c | 353 +++++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeIterator.h | 220 +++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeTraversal.c | 548 +++++++ DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeTraversal.h | 138 ++ DynamicTablesPkg/Library/Common/AmlLib/Utils/AmlUtility.c | 906 ++++++++++++ DynamicTablesPkg/Library/Common/AmlLib/Utils/AmlUtility.h | 95 ++ DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c | 524 +++++++ DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.inf | 30 + DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortTemplate.asl | 60 + DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c | 30 +- DynamicTablesPkg/Readme.md | 128 +- 66 files changed, 21247 insertions(+), 154 deletions(-) create mode 100644 DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h create mode 100644 DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortLibArm.inf create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlCoreInterface.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlDbgPrint/AmlDbgPrint.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlDbgPrint/AmlDbgPrint.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlDefines.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlEncoding/Aml.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlEncoding/Aml.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlInclude.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlLib.inf create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/AmlNodeDefines.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApi.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApiHelper.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Api/AmlApiHelper.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Api/AmlResourceDataApi.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/NameSpace/AmlNameSpace.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/NameSpace/AmlNameSpace.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlFieldListParser.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlFieldListParser.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlMethodParser.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlMethodParser.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlParser.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlParser.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlResourceDataParser.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Parser/AmlResourceDataParser.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/ResourceData/AmlResourceData.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/ResourceData/AmlResourceData.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Serialize/AmlSerialize.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Stream/AmlStream.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Stream/AmlStream.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/String/AmlString.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/String/AmlString.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlClone.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNode.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlNodeInterface.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTree.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTree.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeEnumerator.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeIterator.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeIterator.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeTraversal.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Tree/AmlTreeTraversal.h create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Utils/AmlUtility.c create mode 100644 DynamicTablesPkg/Library/Common/AmlLib/Utils/AmlUtility.h create mode 100644 DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c create mode 100644 DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.inf create mode 100644 DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortTemplate.asl -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'