audk/ArmVirtPkg
Nicolas Ojeda Leon a1bd79c514 Ovmf/HardwareInfoLib: Add Dxe lib to dynamically parse heterogenous data
Following the Hardware Info library, create the DxeHardwareInfoLib
which implements the whole API capable of parsing heterogeneous hardware
information. The list-like API grants callers a flexible and common
pattern to retrieve the data. Moreover, the initial source is a BLOB
which generalizes the host-to-guest transmission mechanism.

The Hardware Info library main objective is to provide a way to
describe non-discoverable hardware so that the host can share the
available resources with the guest in Ovmf platforms. This change
features and embraces the main idea behind the library by providing
an API that parses a BLOB into a linked list to retrieve hardware
data from any source. Additionally, list-like APIs are provided so
that the hardware info list can be traversed conveniently.
Similarly, the capability is provided to filter results by specific
hardware types. However, heterogeneous elements can be added to the
list, increasing the flexibility. This way, a single source, for
example a fw-cfg file, can be used to describe several instances of
multiple types of hardware.

This part of the Hardware Info library makes use of dynamic memory
and is intended for stages in which memory services are available.
A motivation example is the PciHostBridgeLib. This library, part
of the PCI driver populates the list of PCI root bridges during DXE
stage for future steps to discover the resources under them. The
hardware info library can be used to obtain the detailed description
of available host bridges, for instance in the form of a fw-cfg file,
and parse that information into a dynmaic list that allows, first to
verify consistency of the data, and second discover the resources
availabe for each root bridge.

Cc: Alexander Graf <graf@amazon.de>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Nicolas Ojeda Leon <ncoleon@amazon.com>
2022-06-22 15:34:16 +00:00
..
CloudHvAcpiPlatformDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
CloudHvPlatformHasAcpiDtDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Include ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
KvmtoolCfgMgrDxe ArmVirtPkg/Kvmtool: Add Configuration Manager 2022-02-01 17:39:34 +00:00
KvmtoolPlatformDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Library ArmVirtPkg/ArmVirtMemoryInitPeiLib: avoid redundant cache invalidation 2022-02-25 15:57:11 +00:00
PlatformCI ArmVirtPkg/.azurepipelines: Enable EDK II CI for stable/* branches 2020-12-22 22:11:48 +00:00
PlatformHasAcpiDtDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PrePi ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenAcpiPlatformDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenPlatformHasAcpiDtDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenioFdtDxe ArmVirtPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ArmVirt.dsc.inc ArmVirtPkg/ArmVirt.dsc.inc: Add VariableFlashInfoLib 2022-05-19 06:11:20 +00:00
ArmVirtCloudHv.dsc ArmVirtPkg/VirtioFdtDxe: Relocate VirtioFdtDxe to OvmfPkg/Fdt 2021-10-14 06:25:52 +00:00
ArmVirtCloudHv.fdf ArmVirtPkg/VirtioFdtDxe: Relocate VirtioFdtDxe to OvmfPkg/Fdt 2021-10-14 06:25:52 +00:00
ArmVirtKvmTool.dsc ArmVirtPkg/ArmVirtKvmTool: wire up configurable timeout 2022-02-25 15:57:11 +00:00
ArmVirtKvmTool.fdf ArmVirtPkg/Kvmtool: Enable ACPI support 2022-02-01 17:39:34 +00:00
ArmVirtPkg.ci.yaml ArmVirtPkg: Add cspell exceptions 2022-02-01 17:39:34 +00:00
ArmVirtPkg.dec ArmVirtPkg/FdtClintDxe: Move FdtClientDxe to EmbeddedPkg 2021-10-14 06:25:52 +00:00
ArmVirtQemu.dsc Ovmf/HardwareInfoLib: Add Dxe lib to dynamically parse heterogenous data 2022-06-22 15:34:16 +00:00
ArmVirtQemu.fdf ArmVirtPkg/ArmVirtQemu: enable TPM2 support in the PEI phase 2020-03-04 08:48:09 +00:00
ArmVirtQemuFvMain.fdf.inc OvmfPkg: Generalize AcpiPlatformDxe 2021-12-11 14:26:05 +00:00
ArmVirtQemuKernel.dsc ArmVirtPkg: clear PcdConOut{Row,Column} 2022-04-22 18:37:48 +00:00
ArmVirtQemuKernel.fdf ArmVirtPkg: add FDF rule for self-relocating PrePi 2020-06-12 22:17:46 +00:00
ArmVirtRules.fdf.inc ArmVirtPkg: add FDF rule for self-relocating PrePi 2020-06-12 22:17:46 +00:00
ArmVirtXen.dsc ArmVirtPkg/FdtClintDxe: Move FdtClientDxe to EmbeddedPkg 2021-10-14 06:25:52 +00:00
ArmVirtXen.fdf ArmVirtPkg/FdtClintDxe: Move FdtClientDxe to EmbeddedPkg 2021-10-14 06:25:52 +00:00
VarStore.fdf.inc ArmVirtPkg: Replace BSD License with BSD+Patent License 2019-04-09 09:10:21 -07:00