Branch: refs/heads/master
Home: https://github.com/tianocore/edk2
Commit: 90ad4b3b3428deb4a38d7590b20dcfe2ba6c94b6
https://github.com/tianocore/edk2/commit/90ad4b3b3428deb4a38d7590b20dcfe2ba6c94b6
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
M DynamicTablesPkg/DynamicTablesPkg.dec
A DynamicTablesPkg/Include/Library/HwInfoParserLib.h
Log Message:
-----------
DynamicTablesPkg: Definition for HwInfoParser interface
Hardware information parser is an optional module defined
by the Dynamic Tables Framework. It can either parse an
XML, a Device Tree or a Json file containing the platform
hardware information to populate the platform information
repository.
The Configuration Manager can then utilise this information
to generate ACPI tables for the platform.
Therefore, define an interface for the HwInfoParser library
class.
Signed-off-by: Pierre Gondois <[email protected]>
Co-authored-by: Sami Mujawar <[email protected]>
Reviewed-by: Joey Gouly <[email protected]>
Commit: d59c5a20f8c3a9936ef8043c5a935d1577d0ae64
https://github.com/tianocore/edk2/commit/d59c5a20f8c3a9936ef8043c5a935d1577d0ae64
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: CM Object descriptor helper
FdtHwInfoParserLib is an instance of the HwInfoParser. The
FdtHwInfoParser parses a platform Device Tree and populates
the Platform Information repository with Configuration
Manager objects that describe the platform hardware.
These Configuration Manager objects are encapsulated in
Configuration Manager Object Descriptors.
Therefore, add helper functions to create and free the
Configuration Manager Object descriptors.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: 5d8b5d171c684ad2c820ee249c1bb86ce273cf68
https://github.com/tianocore/edk2/commit/5d8b5d171c684ad2c820ee249c1bb86ce273cf68
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtUtility.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtUtility.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add FDT utility functions
The FdtHwInfoParser parses a platform Device Tree and populates
the Platform Information repository with Configuration Manager
objects.
Therefore, add a set of helper functions to simplify parsing of
the platform Device Tree.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: 8d2691c3d5cd13f118be50dca500f3049931b3d9
https://github.com/tianocore/edk2/commit/8d2691c3d5cd13f118be50dca500f3049931b3d9
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/BootArch/ArmBootArchParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/BootArch/ArmBootArchParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add Boot Arch parser
The Fixed ACPI Description Table (FADT) is a mandatory table
required for booting a standards-based operating system. The
FADT table has an 'ARM Boot Architecture Flags' field that is
used by an OS at boot time to determine the code path during
boot. This field is used to specify if the platform complies
with the PSCI specification. It is also used to describe the
conduit (SMC/HVC) to be used for PSCI.
The PSCI compliance information for a platform is described
in the platform Device Tree, the bindings for which can be
found at:
- linux/Documentation/devicetree/bindings/arm/psci.yaml
The FdtHwInfoParser implements a Boot Arch Parser that parses
the platform Device Tree to create a CM_ARM_BOOT_ARCH_INFO
object. The CM_ARM_BOOT_ARCH_INFO object is encapsulated in
a Configuration Manager descriptor object and added to the
platform information repository.
The platform Configuration Manager can then utilise this
information when generating the FADT table.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: 3ebe1ff5c995b0cbbb7cefa75a4c0fa528d01c85
https://github.com/tianocore/edk2/commit/3ebe1ff5c995b0cbbb7cefa75a4c0fa528d01c85
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A
DynamicTablesPkg/Library/FdtHwInfoParserLib/GenericTimer/ArmGenericTimerParser.c
A
DynamicTablesPkg/Library/FdtHwInfoParserLib/GenericTimer/ArmGenericTimerParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Generic Timer Parser
The Generic Timer Description Table (GTDT) is a mandatory table
required for booting a standards-based operating system. It
provides an OSPM with information about a system's Generic Timer
configuration. The Generic Timer (GT) is a standard timer interface
implemented on ARM processor-based systems. The GTDT provides OSPM
with information about a system's GT interrupt configurations, for
both per-processor timers, and platform (memory-mapped) timers.
The Generic Timer information is described in the platform Device
Tree. The Device Tree bindings for the Generic timers can be found
at:
- linux/Documentation/devicetree/bindings/timer/arm,arch_timer.yaml
The FdtHwInfoParser implements a Generic Timer Parser that parses
the platform Device Tree to create a CM_ARM_GENERIC_TIMER_INFO
object. The CM_ARM_GENERIC_TIMER_INFO object is encapsulated in a
Configuration Manager descriptor object and added to the platform
information repository.
The platform Configuration Manager can then utilise this information
when generating the GTDT table.
Note: The Generic Timer Parser currently does not support parsing
of memory-mapped platform timers.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: 51941f7558efa505573d3c151b52578fc635a090
https://github.com/tianocore/edk2/commit/51941f7558efa505573d3c151b52578fc635a090
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add Serial port parser
The Microsoft Debug Port Table 2 (DBG2), the Serial Port Console
Redirector (SPCR) table are mandatory tables required for booting
a standards-based operating system. The DBG2 table is used by the
OS debugger while the SPCR table is used to configure the serial
terminal. Additionally, the serial ports available on a platform
for generic use also need to be described in DSDT/SSDT for an OS
to be able to use the serial ports.
The Arm Base System Architecture 1.0 specification a lists of
supported serial port hardware for Arm Platforms. This list
includes the following serial port UARTs:
- SBSA/Generic UART
- a fully 16550 compatible UART.
Along, with these the PL011 UART is the most commonly used serial
port hardware on Arm platforms.
The serial port hardware information is described in the platform
Device Tree, the bindings for which can be found at:
- linux/Documentation/devicetree/bindings/serial/serial.yaml
- linux/Documentation/devicetree/bindings/serial/8250.txt
- linux/Documentation/devicetree/bindings/serial/arm_sbsa_uart.txt
- linux/Documentation/devicetree/bindings/serial/pl011.yaml
The FdtHwInfoParser implements a Serial Port Parser that parses
the platform Device Tree to create CM_ARM_SERIAL_PORT_INFO objects
with the following IDs:
- EArmObjSerialConsolePortInfo (for use by SPCR)
- EArmObjSerialDebugPortInfo (for use by DBG2)
- EArmObjSerialPortInfo (for use as generic Serial Ports)
The Serial Port for use by SPCR is selected by parsing the Device
Tree for the '/chosen' node with the 'stdout-path' property. The
next Serial Port is selected for use as the Debug Serial Port and
the remaining serial ports are used as generic serial ports.
The CM_ARM_SERIAL_PORT_INFO objects are encapsulated in Configuration
Manager descriptor objects with the respective IDs and are added to
the platform information repository.
The platform Configuration Manager can then utilise this information
when generating the DBG2, SPCR and the SSDT serial port tables.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: e366a41ef03bf677dee5b8911f4e6b634d23e4fb
https://github.com/tianocore/edk2/commit/e366a41ef03bf677dee5b8911f4e6b634d23e4fb
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicCParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicCParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add GICC parser
The GIC CPU Interface (GICC) structure is part of the Multiple
APIC Description Table (MADT) that describes the interrupt model
for the platform. The MADT table is a mandatory table required
for booting a standards-based operating system.
Arm requires the GIC interrupt model, in which the logical
processors are required to have a Processor Device object in
the DSDT, and must convey each processor's GIC information to
the OS using the GICC structure.
The CPU and GIC information is described in the platform Device
Tree, the bindings for which can be found at:
- linux/Documentation/devicetree/bindings/arm/cpus.yaml
- linux/Documentation/devicetree/bindings/interrupt-controller/
arm,gic.yaml
- linux/Documentation/devicetree/bindings/interrupt-controller/
arm,gic-v3.yaml
The FdtHwInfoParser implements a GIC CPU Interface Parser that
parses the platform Device Tree to create CM_ARM_GICC_INFO
objects which are encapsulated in a Configuration Manager
descriptor object and added to the platform information
repository.
The platform Configuration Manager can then utilise this
information when generating the MADT and the SSDT CPU
information tables.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: 0fa12177264402fa987585a8a99e16d1eb4123d2
https://github.com/tianocore/edk2/commit/0fa12177264402fa987585a8a99e16d1eb4123d2
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicDParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicDParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add GICD parser
On ARM-based systems the Generic Interrupt Controller (GIC)
manages interrupts on the system. Each interrupt is identified
in the GIC by an interrupt identifier (INTID). ACPI GSIVs map
one to one to GIC INTIDs for peripheral interrupts, whether
shared (SPI) or private (PPI). The GIC distributor provides
the routing configuration for the interrupts.
The GIC Distributor (GICD) structure is part of the Multiple
APIC Description Table (MADT) that describes the GIC
distributor to the OS. The MADT table is a mandatory table
required for booting a standards-based operating system.
The GIC Distributor information is described in the platform
Device Tree, the bindings for which can be found at:
- linux/Documentation/devicetree/bindings/interrupt-controller/
arm,gic.yaml
- linux/Documentation/devicetree/bindings/interrupt-controller/
arm,gic-v3.yaml
The FdtHwInfoParser implements a GIC Distributor Parser that
parses the platform Device Tree to create CM_ARM_GICD_INFO
object which is encapsulated in a Configuration Manager
descriptor object and added to the platform information
repository.
The platform Configuration Manager can then utilise this
information when generating the MADT table.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: b04cf355a0c85a8ec9ebf2a88564612c24f67929
https://github.com/tianocore/edk2/commit/b04cf355a0c85a8ec9ebf2a88564612c24f67929
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicMsiFrameParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicMsiFrameParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add MSI Frame parser
Arm GIC version 2 systems that support Message Signalled Interrupts
implement GICv2m MSI frame(s). Each GICv2m MSI frame consists of a
4k page which includes registers to generate message signalled
interrupts to an associated GIC distributor. The frame also includes
registers to discover the set of distributor lines which may be
signalled by MSIs from that frame. A system may have multiple MSI
frames, and separate frames may be defined for secure and non-secure
access.
A MSI Frame structure is part of the Multiple APIC Description Table
(MADT) and must only be used to describe non-secure MSI frames.
The MSI Frame information is described in the platform Device Tree,
the bindings for which can be found at:
- linux/Documentation/devicetree/bindings/interrupt-controller/
arm,gic.yaml
- linux/Documentation/devicetree/bindings/interrupt-controller/
arm,gic-v3.yaml
The FdtHwInfoParser implements a MSI Frame Parser that parses
the platform Device Tree to create CM_ARM_GIC_MSI_FRAME_INFO
objects which are encapsulated in a Configuration Manager
descriptor object and added to the platform information
repository.
The platform Configuration Manager can then utilise this
information when generating the MADT table.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: d250d408cf778cfd913d76ada8dfc9f517cb5bbf
https://github.com/tianocore/edk2/commit/d250d408cf778cfd913d76ada8dfc9f517cb5bbf
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicItsParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicItsParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add ITS parser
Arm GIC v3/v4 optionally includes support for GIC Interrupt
Translation Service (ITS). The GIC ITS Structure is part of
the Multiple APIC Description Table (MADT) that describes
the GIC Interrupt Translation service to the OS.
The GIC Interrupt Translation Service information is described
in the platform Device Tree, the bindings for which can be
found at:
- linux/Documentation/devicetree/bindings/interrupt-controller/
arm,gic-v3.yaml
The FdtHwInfoParser implements a GIC ITS Parser that parses the
platform Device Tree to create CM_ARM_GIC_ITS_INFO objects which
are encapsulated in a Configuration Manager descriptor object and
added to the platform information repository.
The platform Configuration Manager can then utilise this information
when generating the MADT table.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: 7b6c8b30a5377d7c561a867295ce2ca500ae13aa
https://github.com/tianocore/edk2/commit/7b6c8b30a5377d7c561a867295ce2ca500ae13aa
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicRParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicRParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add GICR parser
The GIC Redistributor (GICR) structure is part of the Multiple
APIC Description Table (MADT) that enables the discovery of
GIC Redistributor base addresses by providing the Physical Base
Address of a page range containing the GIC Redistributors. More
than one GICR Structure may be presented in the MADT. The GICR
structures should only be used when describing GIC version 3 or
higher.
The GIC Redistributor information is described in the platform
Device Tree, the bindings for which can be found at:
- linux/Documentation/devicetree/bindings/interrupt-controller/
arm,gic-v3.yaml
The FdtHwInfoParser implements a GIC Redistributor Parser that
parses the platform Device Tree to create CM_ARM_GIC_REDIST_INFO
objects which are encapsulated in a Configuration Manager
descriptor object and added to the platform information
repository.
The platform Configuration Manager can then utilise this
information when generating the MADT table.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: 26bf034a59d60ec6f8fe3ece84f2de5e12d16e08
https://github.com/tianocore/edk2/commit/26bf034a59d60ec6f8fe3ece84f2de5e12d16e08
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicDispatcher.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Gic/ArmGicDispatcher.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add GIC dispatcher
The GIC Dispatcher is the top-level component that is responsible
for invoking the respective parsers for GICC, GICD, GIC MSI Frame,
GIC ITS and the GICR.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: c67bf628c8b63b83cab05c878d79bc0e00c72c45
https://github.com/tianocore/edk2/commit/c67bf628c8b63b83cab05c878d79bc0e00c72c45
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.h
Log Message:
-----------
DynamicTablesPkg: FdtHwInfoParser: Add PCI config parser
On platforms that implement PCIe, the PCIe configuration space
information must be described to a standards-based operating
system in the Memory mapped configuration space base address
Description (MCFG) table.
The PCIe information is described in the platform Device Tree,
the bindings for which can be found at:
- linux/Documentation/devicetree/bindings/pci/
host-generic-pci.yaml
The FdtHwInfoParser implements a PCI configuration space Parser
that parses the platform Device Tree to create
CM_ARM_PCI_CONFIG_SPACE_INFO objects which are encapsulated in a
Configuration Manager descriptor object and added to the platform
information repository.
The platform Configuration Manager can then utilise this
information when generating the MCFG table.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: deb01dfd7fcd7ca771b829c96770f95de6bb0b3d
https://github.com/tianocore/edk2/commit/deb01dfd7fcd7ca771b829c96770f95de6bb0b3d
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
M DynamicTablesPkg/DynamicTablesPkg.dsc
A DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfoParser.c
A DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfoParser.h
A DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfoParserInclude.h
A DynamicTablesPkg/Library/FdtHwInfoParserLib/FdtHwInfoParserLib.inf
Log Message:
-----------
DynamicTablesPkg: Add FdtHwInfoParser library
Hardware information parser is an optional module defined
by the Dynamic Tables Framework. It can either parse an
XML, a Device Tree or a Json file containing the platform
hardware information to populate the platform information
repository.
FdtHwInfoParser library is an instance of a HwInfoParser
that parses a Device Tree and populates the Configuration
Manager Platform information repository.
FdtHwInfoParser library is aimed at providing a solution
for generating ACPI tables for Guest Partitions launched
by virtual machine managers (VMMs). One such use case is
Kvmtool where the Device Tree for the Guest is passed on
to the firmware by Kvmtool. The Configuration Manager for
Kvmtool firmware shall invoke the FdtHwInfoParser to parse
the Device Tree to populate the hardware information in
the Platform Info Repository. The Kvmtool Configuration
Manager can the process this information to generate the
required ACPI tables for the Guest VM.
This approach also scales well if the number of CPUs or
if the hardware configuration of the Guest partition is
varied.
FdtHwInfoParser thereby introduces 'Dynamic Tables for
Virtual Machines'.
Ref:https://bugzilla.tianocore.org/show_bug.cgi?id=3741
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Commit: 9006967c8d24f5d9585278fb6363b08f2118d424
https://github.com/tianocore/edk2/commit/9006967c8d24f5d9585278fb6363b08f2118d424
Author: Pierre Gondois <[email protected]>
Date: 2021-12-14 (Tue, 14 Dec 2021)
Changed paths:
M
DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c
Log Message:
-----------
DynamicTablesPkg: Handle 16550_WITH_GAS id
Handle the EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_16550_WITH_GAS
id when generating an AML description of a serial port. The same
_HID/_CID as the EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_FULL_16550
are generated.
Signed-off-by: Pierre Gondois <[email protected]>
Reviewed-by: Sami Mujawar <[email protected]>
Compare: https://github.com/tianocore/edk2/compare/c039fa7ff097...9006967c8d24
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits