From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.140.106.52; helo=cam-smtp0.cambridge.arm.com; envelope-from=sami.mujawar@arm.com; receiver=edk2-devel@lists.01.org Received: from cam-smtp0.cambridge.arm.com (unknown [217.140.106.52]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 146682194D3B8 for ; Thu, 24 Jan 2019 07:44:47 -0800 (PST) Received: from E107187.Arm.com (E107187.Arm.com [10.1.195.55]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id x0OFifCP013695; Thu, 24 Jan 2019 15:44:44 GMT From: Sami Mujawar To: edk2-devel@lists.01.org Cc: alexei.fedorov@arm.com, leif.lindholm@linaro.org, Matteo.Carlini@arm.com, Stephanie.Hughes-Fitt@arm.com, nd@arm.com Date: Thu, 24 Jan 2019 15:44:14 +0000 Message-Id: <20190124154436.21996-1-sami.mujawar@arm.com> X-Mailer: git-send-email 2.11.0.windows.3 Subject: [PATCH v2 00/22] DynamicTablesPkg: Introduce Dynamic Tables Framework X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 X-List-Received-Date: Thu, 24 Jan 2019 15:44:48 -0000 Dynamic Tables Framework aims to reduce the amount of effort required for porting firmware to new platforms by simplifying the generation of firmware tables based on hardware description provided by a platform specific component. The Dynamic Tables Framework core queries the platform specific component to retrieve the required hardware information for generating standardised firmware tables at run-time. This patch series introduce the Dynamic Tables Framework. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar The changes can be seen at: https://github.com/samimujawar/edk2/tree/365_dynamic_tables_framework_v2 This v2 patch series incorporates: * provision for extending the framework to support newer versions of specifications. * minor code improvements. The corresponding edk2-platform changes can be seen at: https://github.com/samimujawar/edk2-platforms/tree/365_dynamic_tables_framework_v3 Sami Mujawar (22): DynamicTablesPkg: Dynamic Tables Framework DynamicTablesPkg: Table Generator definition DynamicTablesPkg: Acpi Table Generator DynamicTablesPkg: SMBIOS Table Generator DynamicTablesPkg: DT Table Generator DynamicTablesPkg: Standard NameSpace Objects DynamicTablesPkg: Arm NameSpace Objects DynamicTablesPkg: Configuration Manager Objects DynamicTablesPkg: Configuration Manager Protocol DynamicTablesPkg: Configuration Manager Helper DynamicTablesPkg: Table Helper Library DynamicTablesPkg: Dynamic Table Factory Protocol DynamicTablesPkg: Dynamic Table Factory Dxe DynamicTablesPkg: Dynamic Table Manager Dxe DynamicTablesPkg: Arm Raw/DSDT/SSDT Generator DynamicTablesPkg: Arm ACPI FADT Generator DynamicTablesPkg: Arm ACPI MADT Generator DynamicTablesPkg: Arm ACPI GTDT Generator DynamicTablesPkg: Arm SPCR Table Generator DynamicTablesPkg: Arm DBG2 Table Generator DynamicTablesPkg: Arm PCI MCFG Table Generator DynamicTablesPkg: Arm IORT Table Generator DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/AcpiTableFactory/AcpiTableFactory.c | 226 +++ DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DeviceTreeTableFactory/DeviceTreeTableFactory.c | 225 +++ DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h | 125 ++ DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.c | 90 + DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf | 60 + DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/SmbiosTableFactory/SmbiosTableFactory.c | 226 +++ DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.c | 735 +++++++ DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf | 50 + DynamicTablesPkg/DynamicTables.dsc.inc | 44 + DynamicTablesPkg/DynamicTables.fdf.inc | 24 + DynamicTablesPkg/DynamicTablesPkg.dec | 43 + DynamicTablesPkg/Include/AcpiTableGenerator.h | 360 ++++ DynamicTablesPkg/Include/ArmNameSpaceObjects.h | 591 ++++++ DynamicTablesPkg/Include/ConfigurationManagerHelper.h | 132 ++ DynamicTablesPkg/Include/ConfigurationManagerObject.h | 182 ++ DynamicTablesPkg/Include/DeviceTreeTableGenerator.h | 182 ++ DynamicTablesPkg/Include/Library/TableHelperLib.h | 68 + DynamicTablesPkg/Include/Protocol/ConfigurationManagerProtocol.h | 128 ++ DynamicTablesPkg/Include/Protocol/DynamicTableFactoryProtocol.h | 269 +++ DynamicTablesPkg/Include/SmbiosTableGenerator.h | 240 +++ DynamicTablesPkg/Include/StandardNameSpaceObjects.h | 119 ++ DynamicTablesPkg/Include/TableGenerator.h | 252 +++ DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/AcpiDbg2LibArm.inf | 48 + DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c | 463 +++++ DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/AcpiFadtLibArm.inf | 42 + DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c | 689 +++++++ DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/AcpiGtdtLibArm.inf | 42 + DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c | 700 +++++++ DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/AcpiIortLibArm.inf | 42 + DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c | 2081 ++++++++++++++++++++ DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.h | 50 + DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/AcpiMadtLibArm.inf | 42 + DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c | 745 +++++++ DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/AcpiMcfgLibArm.inf | 42 + DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c | 370 ++++ DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/AcpiRawLibArm.inf | 42 + DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/RawGenerator.c | 150 ++ DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/AcpiSpcrLibArm.inf | 42 + DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c | 347 ++++ DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c | 176 ++ DynamicTablesPkg/Library/Common/TableHelperLib/TableHelperLib.inf | 36 + DynamicTablesPkg/Readme.md | 139 ++ 42 files changed, 10659 insertions(+) create mode 100644 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/AcpiTableFactory/AcpiTableFactory.c create mode 100644 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DeviceTreeTableFactory/DeviceTreeTableFactory.c create mode 100644 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h create mode 100644 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.c create mode 100644 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf create mode 100644 DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/SmbiosTableFactory/SmbiosTableFactory.c create mode 100644 DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.c create mode 100644 DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf create mode 100644 DynamicTablesPkg/DynamicTables.dsc.inc create mode 100644 DynamicTablesPkg/DynamicTables.fdf.inc create mode 100644 DynamicTablesPkg/DynamicTablesPkg.dec create mode 100644 DynamicTablesPkg/Include/AcpiTableGenerator.h create mode 100644 DynamicTablesPkg/Include/ArmNameSpaceObjects.h create mode 100644 DynamicTablesPkg/Include/ConfigurationManagerHelper.h create mode 100644 DynamicTablesPkg/Include/ConfigurationManagerObject.h create mode 100644 DynamicTablesPkg/Include/DeviceTreeTableGenerator.h create mode 100644 DynamicTablesPkg/Include/Library/TableHelperLib.h create mode 100644 DynamicTablesPkg/Include/Protocol/ConfigurationManagerProtocol.h create mode 100644 DynamicTablesPkg/Include/Protocol/DynamicTableFactoryProtocol.h create mode 100644 DynamicTablesPkg/Include/SmbiosTableGenerator.h create mode 100644 DynamicTablesPkg/Include/StandardNameSpaceObjects.h create mode 100644 DynamicTablesPkg/Include/TableGenerator.h create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/AcpiDbg2LibArm.inf create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/AcpiFadtLibArm.inf create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/AcpiGtdtLibArm.inf create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiGtdtLibArm/GtdtGenerator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/AcpiIortLibArm.inf create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.h create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/AcpiMadtLibArm.inf create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiMadtLibArm/MadtGenerator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/AcpiMcfgLibArm.inf create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/AcpiRawLibArm.inf create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiRawLibArm/RawGenerator.c create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/AcpiSpcrLibArm.inf create mode 100644 DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c create mode 100644 DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c create mode 100644 DynamicTablesPkg/Library/Common/TableHelperLib/TableHelperLib.inf create mode 100644 DynamicTablesPkg/Readme.md -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'