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.web08.14100.1637687355629246410 for ; Tue, 23 Nov 2021 09:09:16 -0800 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 ADF141FB; Tue, 23 Nov 2021 09:09:14 -0800 (PST) Received: from e126645.nice.arm.com (unknown [10.34.129.32]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id A31153F5A1; Tue, 23 Nov 2021 09:09:13 -0800 (PST) From: "PierreGondois" To: devel@edk2.groups.io Cc: Sami Mujawar , Alexei Fedorov Subject: [PATCH v3 00/15] Implement a FdtHwInfoParserLib Date: Tue, 23 Nov 2021 18:08:23 +0100 Message-Id: <20211123170838.143805-1-Pierre.Gondois@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Pierre Gondois v3: - Populate the 64 bits of the MPIDR field of the GicC CmObj. [Sami] - Fix typos. [Sami] v2: - Handle absence of Pci legacy interrupts in Pci parser. [Pierre] - Handle Affinity3 field in GicC parser. [Sami] - Add pl011 compatible string in serial port parser. [Sami] - Use 16550_with_GAS ID when 16550 is detected in serial port parser. [Sami] - Use ASSERT_EFI_ERROR when possible. [Sami] - Fix typos and add comments. [Pierre] Ref:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3741 The generic HwInfoParserLib provides an interface to parse hardware information stored in certain a data type (e.g.: xml, device tree, ...) and generate objects that can be used by the DynamicTablesPkg framework to generate another hardware description (e.g.: SMBIOS tables, ACPI tables, ...). This patch-set also implements a FdtHwInfoParserLib, parsing hardware information stored in a device tree. The objects generated by the library have been used ACPI tables. The changes can be seen at: https://github.com/PierreARM/edk2/tree/1787_I= mplement_FdtHwInfoParser_v3 Pierre Gondois (15): DynamicTablesPkg: Definition for HwInfoParser interface DynamicTablesPkg: FdtHwInfoParser: CM Object descriptor helper DynamicTablesPkg: FdtHwInfoParser: Add FDT utility functions DynamicTablesPkg: FdtHwInfoParser: Add Boot Arch parser DynamicTablesPkg: FdtHwInfoParser: Generic Timer Parser DynamicTablesPkg: FdtHwInfoParser: Add Serial port parser DynamicTablesPkg: FdtHwInfoParser: Add GICC parser DynamicTablesPkg: FdtHwInfoParser: Add GICD parser DynamicTablesPkg: FdtHwInfoParser: Add MSI Frame parser DynamicTablesPkg: FdtHwInfoParser: Add ITS parser DynamicTablesPkg: FdtHwInfoParser: Add GICR parser DynamicTablesPkg: FdtHwInfoParser: Add GIC dispatcher DynamicTablesPkg: FdtHwInfoParser: Add PCI config parser DynamicTablesPkg: Add FdtHwInfoParser library DynamicTablesPkg: Handle 16550_WITH_GAS id DynamicTablesPkg/DynamicTablesPkg.dec | 3 + DynamicTablesPkg/DynamicTablesPkg.dsc | 3 +- .../Include/Library/HwInfoParserLib.h | 99 ++ .../SsdtSerialPortFixupLib.c | 5 +- .../BootArch/ArmBootArchParser.c | 159 +++ .../BootArch/ArmBootArchParser.h | 45 + .../FdtHwInfoParserLib/CmObjectDescUtility.c | 302 ++++++ .../FdtHwInfoParserLib/CmObjectDescUtility.h | 131 +++ .../FdtHwInfoParserLib/FdtHwInfoParser.c | 190 ++++ .../FdtHwInfoParserLib/FdtHwInfoParser.h | 63 ++ .../FdtHwInfoParserInclude.h | 17 + .../FdtHwInfoParserLib/FdtHwInfoParserLib.inf | 56 ++ .../Library/FdtHwInfoParserLib/FdtUtility.c | 907 ++++++++++++++++++ .../Library/FdtHwInfoParserLib/FdtUtility.h | 458 +++++++++ .../GenericTimer/ArmGenericTimerParser.c | 254 +++++ .../GenericTimer/ArmGenericTimerParser.h | 66 ++ .../FdtHwInfoParserLib/Gic/ArmGicCParser.c | 769 +++++++++++++++ .../FdtHwInfoParserLib/Gic/ArmGicCParser.h | 67 ++ .../FdtHwInfoParserLib/Gic/ArmGicDParser.c | 169 ++++ .../FdtHwInfoParserLib/Gic/ArmGicDParser.h | 50 + .../FdtHwInfoParserLib/Gic/ArmGicDispatcher.c | 212 ++++ .../FdtHwInfoParserLib/Gic/ArmGicDispatcher.h | 72 ++ .../FdtHwInfoParserLib/Gic/ArmGicItsParser.c | 215 +++++ .../FdtHwInfoParserLib/Gic/ArmGicItsParser.h | 48 + .../Gic/ArmGicMsiFrameParser.c | 214 +++++ .../Gic/ArmGicMsiFrameParser.h | 50 + .../FdtHwInfoParserLib/Gic/ArmGicRParser.c | 235 +++++ .../FdtHwInfoParserLib/Gic/ArmGicRParser.h | 47 + .../Pci/ArmPciConfigSpaceParser.c | 797 +++++++++++++++ .../Pci/ArmPciConfigSpaceParser.h | 142 +++ .../Serial/ArmSerialPortParser.c | 620 ++++++++++++ .../Serial/ArmSerialPortParser.h | 47 + 32 files changed, 6510 insertions(+), 2 deletions(-) create mode 100644 DynamicTablesPkg/Include/Library/HwInfoParserLib.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/BootArch/= ArmBootArchParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/BootArch/= ArmBootArchParser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectD= escUtility.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectD= escUtility.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfo= Parser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfo= Parser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfo= ParserInclude.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfo= ParserLib.inf create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtUtilit= y.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtUtilit= y.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/GenericTi= mer/ArmGenericTimerParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/GenericTi= mer/ArmGenericTimerParser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cCParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cCParser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cDParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cDParser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cDispatcher.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cDispatcher.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cItsParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cItsParser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cMsiFrameParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cMsiFrameParser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cRParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGi= cRParser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPc= iConfigSpaceParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPc= iConfigSpaceParser.h create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/Ar= mSerialPortParser.c create mode 100644 DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/Ar= mSerialPortParser.h -- 2.25.1