From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.13841.1633620764857020712 for ; Thu, 07 Oct 2021 08:32:45 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 246E11FB; Thu, 7 Oct 2021 08:32:38 -0700 (PDT) Received: from e120189.arm.com (unknown [10.57.72.88]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 1994F3F66F; Thu, 7 Oct 2021 08:32:36 -0700 (PDT) From: "PierreGondois" To: devel@edk2.groups.io, Sami Mujawar , Alexei.Fedorov@arm.com Subject: [PATCH v2 00/21] Create a SSDT CPU topology generator Date: Thu, 7 Oct 2021 16:31:49 +0100 Message-Id: <20211007153210.26608-1-Pierre.Gondois@arm.com> X-Mailer: git-send-email 2.17.1 From: Pierre Gondois v2: - Update or error handling. [Sami/Pierre] - Various comments. [Sami] and New patches: DynamicTablesPkg: Remove unnecessary includes DynamicTablesPkg: Add missing parameter check DynamicTablesPkg: Add AddSsdtAcpiHeader() DynamicTablesPkg: Add AmlRdSetEndTagChecksum() DynamicTablesPkg: Add AmlSetRdListCheckSum() DynamicTablesPkg: Set EndTag's Checksum if RdList is modified DynamicTablesPkg: Clear pointer in node creation fcts DynamicTablesPkg: Update error handling for node creation As part of the DynamicTablesPkg, add a generator creating a SSDT table representing a CPU topology. Low Power Idle (LPI) states can also be generated along the CPUs. This patch-set also adds new functions to generate AML bytecode. The changes can be seen at: https://github.com/PierreARM/edk2/tree/1449_Create_ssdt_cpu_topology_generator_v2 Pierre Gondois (21): DynamicTablesPkg: Remove unnecessary includes DynamicTablesPkg: Add missing parameter check DynamicTablesPkg: Add AddSsdtAcpiHeader() DynamicTablesPkg: Add AmlRdSetEndTagChecksum() DynamicTablesPkg: Add AmlSetRdListCheckSum() DynamicTablesPkg: Set EndTag's Checksum if RdList is modified DynamicTablesPkg: Clear pointer in node creation fcts DynamicTablesPkg: Update error handling for node creation DynamicTablesPkg: Make AmlNodeGetIntegerValue public DynamicTablesPkg: AML Code generation for Register() DynamicTablesPkg: AML Code generation for Resource data EndTag DynamicTablesPkg: AML code generation for a Package DynamicTablesPkg: Helper function to compute package length DynamicTablesPkg: AML code generation for a ResourceTemplate DynamicTablesPkg: AML code generation for a Method DynamicTablesPkg: AML code generation to Return a NameString DynamicTablesPkg: AML code generation for a Method returning a NS DynamicTablesPkg: AML code generation for a _LPI object DynamicTablesPkg: AML code generation to add an _LPI state DynamicTablesPkg: Add CM_ARM_LPI_INFO object DynamicTablesPkg: SSDT CPU topology and LPI state generator DynamicTablesPkg/DynamicTables.dsc.inc | 6 + DynamicTablesPkg/Include/AcpiTableGenerator.h | 7 +- .../Include/ArmNameSpaceObjects.h | 68 + .../Include/Library/AmlLib/AmlLib.h | 168 ++ .../Include/Library/TableHelperLib.h | 35 + .../SsdtCmn600Generator.c | 2 - .../SsdtCpuTopologyGenerator.c | 1228 +++++++++++++++ .../SsdtCpuTopologyGenerator.h | 134 ++ .../SsdtCpuTopologyLibArm.inf | 33 + .../SsdtSerialPortGenerator.c | 3 - .../Library/Common/AmlLib/AmlEncoding/Aml.c | 87 +- .../Library/Common/AmlLib/AmlEncoding/Aml.h | 47 +- .../Common/AmlLib/CodeGen/AmlCodeGen.c | 1351 ++++++++++++++++- .../AmlLib/CodeGen/AmlResourceDataCodeGen.c | 210 ++- .../AmlLib/CodeGen/AmlResourceDataCodeGen.h | 92 ++ .../AmlLib/ResourceData/AmlResourceData.c | 33 + .../AmlLib/ResourceData/AmlResourceData.h | 21 + .../Library/Common/AmlLib/Tree/AmlClone.c | 2 - .../Library/Common/AmlLib/Tree/AmlNode.c | 18 +- .../Library/Common/AmlLib/Tree/AmlNode.h | 12 +- .../Common/AmlLib/Tree/AmlNodeInterface.c | 7 + .../Library/Common/AmlLib/Tree/AmlTree.c | 72 +- .../Library/Common/AmlLib/Utils/AmlUtility.c | 79 +- .../Library/Common/AmlLib/Utils/AmlUtility.h | 50 +- .../SsdtSerialPortFixupLib.c | 1 - .../ConfigurationManagerObjectParser.c | 35 + .../Common/TableHelperLib/TableHelper.c | 89 ++ 27 files changed, 3815 insertions(+), 75 deletions(-) create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.h create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyLibArm.inf -- 2.17.1