summaryrefslogtreecommitdiffstats
path: root/ArmVirtPkg
diff options
context:
space:
mode:
authorAbner Chang <abner.chang@hpe.com>2021-10-11 21:24:08 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-10-14 06:25:52 +0000
commite40fefafa90fb3a9aca77adc697c97cf6a4dd673 (patch)
tree8b5f6cef00fdb17b06fa7101037671477cd186a5 /ArmVirtPkg
parenta7fcab7aa3de338c02e61fd891610b1ec926e6c8 (diff)
downloadedk2-e40fefafa90fb3a9aca77adc697c97cf6a4dd673.tar.gz
edk2-e40fefafa90fb3a9aca77adc697c97cf6a4dd673.tar.bz2
edk2-e40fefafa90fb3a9aca77adc697c97cf6a4dd673.zip
ArmVirtPkg/FdtClintDxe: Move FdtClientDxe to EmbeddedPkg
This is one of the series patches to restructure the location of modules under ArmVirtPkg for RiscVVirtPkg. RiscVVirtPkg leverage FDT Client protocol to parse FDT nodes. Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Sami Mujawar <sami.mujawar@arm.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Daniel Schaefer <daniel.schaefer@hpe.com> Cc: Sunil V L <sunilvl@ventanamicro.com> Reviewed-by: Daniel Schaefer <daniel.schaefer@hpe.com> Reviewed-by: Sunil V L <sunilvl@ventanamicro.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ArmVirtPkg')
-rw-r--r--ArmVirtPkg/ArmVirtCloudHv.dsc2
-rw-r--r--ArmVirtPkg/ArmVirtCloudHv.fdf2
-rw-r--r--ArmVirtPkg/ArmVirtKvmTool.dsc2
-rw-r--r--ArmVirtPkg/ArmVirtKvmTool.fdf2
-rw-r--r--ArmVirtPkg/ArmVirtPkg.dec3
-rw-r--r--ArmVirtPkg/ArmVirtQemu.dsc2
-rw-r--r--ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc2
-rw-r--r--ArmVirtPkg/ArmVirtQemuKernel.dsc2
-rw-r--r--ArmVirtPkg/ArmVirtXen.dsc2
-rw-r--r--ArmVirtPkg/ArmVirtXen.fdf2
-rw-r--r--ArmVirtPkg/FdtClientDxe/FdtClientDxe.c464
-rw-r--r--ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf44
-rw-r--r--ArmVirtPkg/HighMemDxe/HighMemDxe.inf1
-rw-r--r--ArmVirtPkg/Include/Protocol/FdtClient.h129
-rw-r--r--ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf1
-rw-r--r--ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf1
-rw-r--r--ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf1
-rw-r--r--ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf1
-rw-r--r--ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf1
-rw-r--r--ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf1
-rw-r--r--ArmVirtPkg/Library/KvmtoolRtcFdtClientLib/KvmtoolRtcFdtClientLib.inf1
-rw-r--r--ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtoolLib.inf1
-rw-r--r--ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf1
-rw-r--r--ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf1
-rw-r--r--ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf1
-rw-r--r--ArmVirtPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf1
-rw-r--r--ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf1
27 files changed, 23 insertions, 649 deletions
diff --git a/ArmVirtPkg/ArmVirtCloudHv.dsc b/ArmVirtPkg/ArmVirtCloudHv.dsc
index 3475bb7f0d..ffc6b8ed7c 100644
--- a/ArmVirtPkg/ArmVirtCloudHv.dsc
+++ b/ArmVirtPkg/ArmVirtCloudHv.dsc
@@ -294,7 +294,7 @@
# Platform Driver
#
ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
- ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
ArmVirtPkg/HighMemDxe/HighMemDxe.inf
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
diff --git a/ArmVirtPkg/ArmVirtCloudHv.fdf b/ArmVirtPkg/ArmVirtCloudHv.fdf
index 13fe8061c3..1bb452ebb8 100644
--- a/ArmVirtPkg/ArmVirtCloudHv.fdf
+++ b/ArmVirtPkg/ArmVirtCloudHv.fdf
@@ -106,7 +106,7 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
- INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
INF ArmVirtPkg/HighMemDxe/HighMemDxe.inf
#
diff --git a/ArmVirtPkg/ArmVirtKvmTool.dsc b/ArmVirtPkg/ArmVirtKvmTool.dsc
index 3bd1cc72a1..745eae347b 100644
--- a/ArmVirtPkg/ArmVirtKvmTool.dsc
+++ b/ArmVirtPkg/ArmVirtKvmTool.dsc
@@ -292,7 +292,7 @@
#
ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf
ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
- ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
ArmVirtPkg/HighMemDxe/HighMemDxe.inf
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
diff --git a/ArmVirtPkg/ArmVirtKvmTool.fdf b/ArmVirtPkg/ArmVirtKvmTool.fdf
index 152453dc4b..1dac8b7880 100644
--- a/ArmVirtPkg/ArmVirtKvmTool.fdf
+++ b/ArmVirtPkg/ArmVirtKvmTool.fdf
@@ -120,7 +120,7 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
- INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
INF ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf
INF ArmVirtPkg/HighMemDxe/HighMemDxe.inf
diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec
index 4e4d758015..4e165f6cd8 100644
--- a/ArmVirtPkg/ArmVirtPkg.dec
+++ b/ArmVirtPkg/ArmVirtPkg.dec
@@ -35,9 +35,6 @@
gArmVirtVariableGuid = { 0x50bea1e5, 0xa2c5, 0x46e9, { 0x9b, 0x3a, 0x59, 0x59, 0x65, 0x16, 0xb0, 0x0a } }
-[Protocols]
- gFdtClientProtocolGuid = { 0xE11FACA0, 0x4710, 0x4C8E, { 0xA7, 0xA2, 0x01, 0xBA, 0xA2, 0x59, 0x1B, 0x4C } }
-
[PcdsFeatureFlag]
#
# Feature Flag PCD that defines whether TPM2 support is enabled
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index 35aea68e02..69e2402408 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -406,7 +406,7 @@
# Platform Driver
#
ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
- ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
ArmVirtPkg/HighMemDxe/HighMemDxe.inf
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
diff --git a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
index 26f13f6a21..e9518dd273 100644
--- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
+++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
@@ -41,7 +41,7 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
- INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
INF ArmVirtPkg/HighMemDxe/HighMemDxe.inf
#
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index 19c1908cd9..6ffeabbd34 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -341,7 +341,7 @@
# Platform Driver
#
ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
- ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
ArmVirtPkg/HighMemDxe/HighMemDxe.inf
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
index dbc40e854b..58088af6ea 100644
--- a/ArmVirtPkg/ArmVirtXen.dsc
+++ b/ArmVirtPkg/ArmVirtXen.dsc
@@ -197,7 +197,7 @@
# Platform Driver
#
ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf
- ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
#
# FAT filesystem + GPT/MBR partitioning + UDF filesystem
diff --git a/ArmVirtPkg/ArmVirtXen.fdf b/ArmVirtPkg/ArmVirtXen.fdf
index 9597465cf5..132480f030 100644
--- a/ArmVirtPkg/ArmVirtXen.fdf
+++ b/ArmVirtPkg/ArmVirtXen.fdf
@@ -139,7 +139,7 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
INF ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf
- INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+ INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf
#
# PI DXE Drivers producing Architectural Protocols (EFI Services)
diff --git a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c
deleted file mode 100644
index 6300d288db..0000000000
--- a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.c
+++ /dev/null
@@ -1,464 +0,0 @@
-/** @file
-* FDT client driver
-*
-* Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
-*
-* SPDX-License-Identifier: BSD-2-Clause-Patent
-*
-**/
-
-#include <Library/BaseLib.h>
-#include <Library/DebugLib.h>
-#include <Library/UefiDriverEntryPoint.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/HobLib.h>
-#include <libfdt.h>
-
-#include <Guid/Fdt.h>
-#include <Guid/FdtHob.h>
-#include <Guid/PlatformHasDeviceTree.h>
-
-#include <Protocol/FdtClient.h>
-
-STATIC VOID *mDeviceTreeBase;
-
-STATIC
-EFI_STATUS
-EFIAPI
-GetNodeProperty (
- IN FDT_CLIENT_PROTOCOL *This,
- IN INT32 Node,
- IN CONST CHAR8 *PropertyName,
- OUT CONST VOID **Prop,
- OUT UINT32 *PropSize OPTIONAL
- )
-{
- INT32 Len;
-
- ASSERT (mDeviceTreeBase != NULL);
- ASSERT (Prop != NULL);
-
- *Prop = fdt_getprop (mDeviceTreeBase, Node, PropertyName, &Len);
- if (*Prop == NULL) {
- return EFI_NOT_FOUND;
- }
-
- if (PropSize != NULL) {
- *PropSize = Len;
- }
- return EFI_SUCCESS;
-}
-
-STATIC
-EFI_STATUS
-EFIAPI
-SetNodeProperty (
- IN FDT_CLIENT_PROTOCOL *This,
- IN INT32 Node,
- IN CONST CHAR8 *PropertyName,
- IN CONST VOID *Prop,
- IN UINT32 PropSize
- )
-{
- INT32 Ret;
-
- ASSERT (mDeviceTreeBase != NULL);
-
- Ret = fdt_setprop (mDeviceTreeBase, Node, PropertyName, Prop, PropSize);
- if (Ret != 0) {
- return EFI_DEVICE_ERROR;
- }
-
- return EFI_SUCCESS;
-}
-
-STATIC
-BOOLEAN
-IsNodeEnabled (
- INT32 Node
- )
-{
- CONST CHAR8 *NodeStatus;
- INT32 Len;
-
- //
- // A missing status property implies 'ok' so ignore any errors that
- // may occur here. If the status property is present, check whether
- // it is set to 'ok' or 'okay', anything else is treated as 'disabled'.
- //
- NodeStatus = fdt_getprop (mDeviceTreeBase, Node, "status", &Len);
- if (NodeStatus == NULL) {
- return TRUE;
- }
- if (Len >= 5 && AsciiStrCmp (NodeStatus, "okay") == 0) {
- return TRUE;
- }
- if (Len >= 3 && AsciiStrCmp (NodeStatus, "ok") == 0) {
- return TRUE;
- }
- return FALSE;
-}
-
-STATIC
-EFI_STATUS
-EFIAPI
-FindNextCompatibleNode (
- IN FDT_CLIENT_PROTOCOL *This,
- IN CONST CHAR8 *CompatibleString,
- IN INT32 PrevNode,
- OUT INT32 *Node
- )
-{
- INT32 Prev, Next;
- CONST CHAR8 *Type, *Compatible;
- INT32 Len;
-
- ASSERT (mDeviceTreeBase != NULL);
- ASSERT (Node != NULL);
-
- for (Prev = PrevNode;; Prev = Next) {
- Next = fdt_next_node (mDeviceTreeBase, Prev, NULL);
- if (Next < 0) {
- break;
- }
-
- if (!IsNodeEnabled (Next)) {
- continue;
- }
-
- Type = fdt_getprop (mDeviceTreeBase, Next, "compatible", &Len);
- if (Type == NULL) {
- continue;
- }
-
- //
- // A 'compatible' node may contain a sequence of NUL terminated
- // compatible strings so check each one
- //
- for (Compatible = Type; Compatible < Type + Len && *Compatible;
- Compatible += 1 + AsciiStrLen (Compatible)) {
- if (AsciiStrCmp (CompatibleString, Compatible) == 0) {
- *Node = Next;
- return EFI_SUCCESS;
- }
- }
- }
- return EFI_NOT_FOUND;
-}
-
-STATIC
-EFI_STATUS
-EFIAPI
-FindCompatibleNode (
- IN FDT_CLIENT_PROTOCOL *This,
- IN CONST CHAR8 *CompatibleString,
- OUT INT32 *Node
- )
-{
- return FindNextCompatibleNode (This, CompatibleString, 0, Node);
-}
-
-STATIC
-EFI_STATUS
-EFIAPI
-FindCompatibleNodeProperty (
- IN FDT_CLIENT_PROTOCOL *This,
- IN CONST CHAR8 *CompatibleString,
- IN CONST CHAR8 *PropertyName,
- OUT CONST VOID **Prop,
- OUT UINT32 *PropSize OPTIONAL
- )
-{
- EFI_STATUS Status;
- INT32 Node;
-
- Status = FindCompatibleNode (This, CompatibleString, &Node);
- if (EFI_ERROR (Status)) {
- return Status;
- }
-
- return GetNodeProperty (This, Node, PropertyName, Prop, PropSize);
-}
-
-STATIC
-EFI_STATUS
-EFIAPI
-FindCompatibleNodeReg (
- IN FDT_CLIENT_PROTOCOL *This,
- IN CONST CHAR8 *CompatibleString,
- OUT CONST VOID **Reg,
- OUT UINTN *AddressCells,
- OUT UINTN *SizeCells,
- OUT UINT32 *RegSize
- )
-{
- EFI_STATUS Status;
-
- ASSERT (RegSize != NULL);
-
- //
- // Get the 'reg' property of this node. For now, we will assume
- // 8 byte quantities for base and size, respectively.
- // TODO use #cells root properties instead
- //
- Status = FindCompatibleNodeProperty (This, CompatibleString, "reg", Reg,
- RegSize);
- if (EFI_ERROR (Status)) {
- return Status;
- }
-
- if ((*RegSize % 16) != 0) {
- DEBUG ((EFI_D_ERROR,
- "%a: '%a' compatible node has invalid 'reg' property (size == 0x%x)\n",
- __FUNCTION__, CompatibleString, *RegSize));
- return EFI_NOT_FOUND;
- }
-
- *AddressCells = 2;
- *SizeCells = 2;
-
- return EFI_SUCCESS;
-}
-
-STATIC
-EFI_STATUS
-EFIAPI
-FindNextMemoryNodeReg (
- IN FDT_CLIENT_PROTOCOL *This,
- IN INT32 PrevNode,
- OUT INT32 *Node,
- OUT CONST VOID **Reg,
- OUT UINTN *AddressCells,
- OUT UINTN *SizeCells,
- OUT UINT32 *RegSize
- )
-{
- INT32 Prev, Next;
- CONST CHAR8 *DeviceType;
- INT32 Len;
- EFI_STATUS Status;
-
- ASSERT (mDeviceTreeBase != NULL);
- ASSERT (Node != NULL);
-
- for (Prev = PrevNode;; Prev = Next) {
- Next = fdt_next_node (mDeviceTreeBase, Prev, NULL);
- if (Next < 0) {
- break;
- }
-
- if (!IsNodeEnabled (Next)) {
- DEBUG ((DEBUG_WARN, "%a: ignoring disabled memory node\n", __FUNCTION__));
- continue;
- }
-
- DeviceType = fdt_getprop (mDeviceTreeBase, Next, "device_type", &Len);
- if (DeviceType != NULL && AsciiStrCmp (DeviceType, "memory") == 0) {
- //
- // Get the 'reg' property of this memory node. For now, we will assume
- // 8 byte quantities for base and size, respectively.
- // TODO use #cells root properties instead
- //
- Status = GetNodeProperty (This, Next, "reg", Reg, RegSize);
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_WARN,
- "%a: ignoring memory node with no 'reg' property\n",
- __FUNCTION__));
- continue;
- }
- if ((*RegSize % 16) != 0) {
- DEBUG ((EFI_D_WARN,
- "%a: ignoring memory node with invalid 'reg' property (size == 0x%x)\n",
- __FUNCTION__, *RegSize));
- continue;
- }
-
- *Node = Next;
- *AddressCells = 2;
- *SizeCells = 2;
- return EFI_SUCCESS;
- }
- }
- return EFI_NOT_FOUND;
-}
-
-STATIC
-EFI_STATUS
-EFIAPI
-FindMemoryNodeReg (
- IN FDT_CLIENT_PROTOCOL *This,
- OUT INT32 *Node,
- OUT CONST VOID **Reg,
- OUT UINTN *AddressCells,
- OUT UINTN *SizeCells,
- OUT UINT32 *RegSize
- )
-{
- return FindNextMemoryNodeReg (This, 0, Node, Reg, AddressCells, SizeCells,
- RegSize);
-}
-
-STATIC
-EFI_STATUS
-EFIAPI
-GetOrInsertChosenNode (
- IN FDT_CLIENT_PROTOCOL *This,
- OUT INT32 *Node
- )
-{
- INT32 NewNode;
-
- ASSERT (mDeviceTreeBase != NULL);
- ASSERT (Node != NULL);
-
- NewNode = fdt_path_offset (mDeviceTreeBase, "/chosen");
- if (NewNode < 0) {
- NewNode = fdt_add_subnode (mDeviceTreeBase, 0, "/chosen");
- }
-
- if (NewNode < 0) {
- return EFI_OUT_OF_RESOURCES;
- }
-
- *Node = NewNode;
-
- return EFI_SUCCESS;
-}
-
-STATIC FDT_CLIENT_PROTOCOL mFdtClientProtocol = {
- GetNodeProperty,
- SetNodeProperty,
- FindCompatibleNode,
- FindNextCompatibleNode,
- FindCompatibleNodeProperty,
- FindCompatibleNodeReg,
- FindMemoryNodeReg,
- FindNextMemoryNodeReg,
- GetOrInsertChosenNode,
-};
-
-STATIC
-VOID
-EFIAPI
-OnPlatformHasDeviceTree (
- IN EFI_EVENT Event,
- IN VOID *Context
- )
-{
- EFI_STATUS Status;
- VOID *Interface;
- VOID *DeviceTreeBase;
-
- Status = gBS->LocateProtocol (
- &gEdkiiPlatformHasDeviceTreeGuid,
- NULL, // Registration
- &Interface
- );
- if (EFI_ERROR (Status)) {
- return;
- }
-
- DeviceTreeBase = Context;
- DEBUG ((
- DEBUG_INFO,
- "%a: exposing DTB @ 0x%p to OS\n",
- __FUNCTION__,
- DeviceTreeBase
- ));
- Status = gBS->InstallConfigurationTable (&gFdtTableGuid, DeviceTreeBase);
- ASSERT_EFI_ERROR (Status);
-
- gBS->CloseEvent (Event);
-}
-
-EFI_STATUS
-EFIAPI
-InitializeFdtClientDxe (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- VOID *Hob;
- VOID *DeviceTreeBase;
- EFI_STATUS Status;
- EFI_EVENT PlatformHasDeviceTreeEvent;
- VOID *Registration;
-
- Hob = GetFirstGuidHob (&gFdtHobGuid);
- if (Hob == NULL || GET_GUID_HOB_DATA_SIZE (Hob) != sizeof (UINT64)) {
- return EFI_NOT_FOUND;
- }
- DeviceTreeBase = (VOID *)(UINTN)*(UINT64 *)GET_GUID_HOB_DATA (Hob);
-
- if (fdt_check_header (DeviceTreeBase) != 0) {
- DEBUG ((EFI_D_ERROR, "%a: No DTB found @ 0x%p\n", __FUNCTION__,
- DeviceTreeBase));
- return EFI_NOT_FOUND;
- }
-
- mDeviceTreeBase = DeviceTreeBase;
-
- DEBUG ((EFI_D_INFO, "%a: DTB @ 0x%p\n", __FUNCTION__, mDeviceTreeBase));
-
- //
- // Register a protocol notify for the EDKII Platform Has Device Tree
- // Protocol.
- //
- Status = gBS->CreateEvent (
- EVT_NOTIFY_SIGNAL,
- TPL_CALLBACK,
- OnPlatformHasDeviceTree,
- DeviceTreeBase, // Context
- &PlatformHasDeviceTreeEvent
- );
- if (EFI_ERROR (Status)) {
- DEBUG ((DEBUG_ERROR, "%a: CreateEvent(): %r\n", __FUNCTION__, Status));
- return Status;
- }
-
- Status = gBS->RegisterProtocolNotify (
- &gEdkiiPlatformHasDeviceTreeGuid,
- PlatformHasDeviceTreeEvent,
- &Registration
- );
- if (EFI_ERROR (Status)) {
- DEBUG ((
- DEBUG_ERROR,
- "%a: RegisterProtocolNotify(): %r\n",
- __FUNCTION__,
- Status
- ));
- goto CloseEvent;
- }
-
- //
- // Kick the event; the protocol could be available already.
- //
- Status = gBS->SignalEvent (PlatformHasDeviceTreeEvent);
- if (EFI_ERROR (Status)) {
- DEBUG ((DEBUG_ERROR, "%a: SignalEvent(): %r\n", __FUNCTION__, Status));
- goto CloseEvent;
- }
-
- Status = gBS->InstallProtocolInterface (
- &ImageHandle,
- &gFdtClientProtocolGuid,
- EFI_NATIVE_INTERFACE,
- &mFdtClientProtocol
- );
- if (EFI_ERROR (Status)) {
- DEBUG ((
- DEBUG_ERROR,
- "%a: InstallProtocolInterface(): %r\n",
- __FUNCTION__,
- Status
- ));
- goto CloseEvent;
- }
-
- return Status;
-
-CloseEvent:
- gBS->CloseEvent (PlatformHasDeviceTreeEvent);
- return Status;
-}
diff --git a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf b/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
deleted file mode 100644
index d7ba17a0c9..0000000000
--- a/ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
+++ /dev/null
@@ -1,44 +0,0 @@
-## @file
-# FDT client driver
-#
-# Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
-#
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = FdtClientDxe
- FILE_GUID = 9A871B00-1C16-4F61-8D2C-93B6654B5AD6
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
- ENTRY_POINT = InitializeFdtClientDxe
-
-[Sources]
- FdtClientDxe.c
-
-[Packages]
- ArmVirtPkg/ArmVirtPkg.dec
- EmbeddedPkg/EmbeddedPkg.dec
- MdeModulePkg/MdeModulePkg.dec
- MdePkg/MdePkg.dec
-
-[LibraryClasses]
- BaseLib
- DebugLib
- FdtLib
- HobLib
- UefiBootServicesTableLib
- UefiDriverEntryPoint
-
-[Protocols]
- gFdtClientProtocolGuid ## PRODUCES
-
-[Guids]
- gEdkiiPlatformHasDeviceTreeGuid ## CONSUMES ## PROTOCOL
- gFdtHobGuid
- gFdtTableGuid
-
-[Depex]
- TRUE
diff --git a/ArmVirtPkg/HighMemDxe/HighMemDxe.inf b/ArmVirtPkg/HighMemDxe/HighMemDxe.inf
index e510880b0d..168fc90d2a 100644
--- a/ArmVirtPkg/HighMemDxe/HighMemDxe.inf
+++ b/ArmVirtPkg/HighMemDxe/HighMemDxe.inf
@@ -20,6 +20,7 @@
HighMemDxe.c
[Packages]
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
ArmPkg/ArmPkg.dec
diff --git a/ArmVirtPkg/Include/Protocol/FdtClient.h b/ArmVirtPkg/Include/Protocol/FdtClient.h
deleted file mode 100644
index 08eb49639b..0000000000
--- a/ArmVirtPkg/Include/Protocol/FdtClient.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/** @file
-
- DISCLAIMER: the FDT_CLIENT_PROTOCOL introduced here is a work in progress,
- and should not be used outside of the EDK II tree.
-
- Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __FDT_CLIENT_H__
-#define __FDT_CLIENT_H__
-
-#define FDT_CLIENT_PROTOCOL_GUID { \
- 0xE11FACA0, 0x4710, 0x4C8E, {0xA7, 0xA2, 0x01, 0xBA, 0xA2, 0x59, 0x1B, 0x4C} \
- }
-
-//
-// Protocol interface structure
-//
-typedef struct _FDT_CLIENT_PROTOCOL FDT_CLIENT_PROTOCOL;
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_GET_NODE_PROPERTY) (
- IN FDT_CLIENT_PROTOCOL *This,
- IN INT32 Node,
- IN CONST CHAR8 *PropertyName,
- OUT CONST VOID **Prop,
- OUT UINT32 *PropSize OPTIONAL
- );
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_SET_NODE_PROPERTY) (
- IN FDT_CLIENT_PROTOCOL *This,
- IN INT32 Node,
- IN CONST CHAR8 *PropertyName,
- IN CONST VOID *Prop,
- IN UINT32 PropSize
- );
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE) (
- IN FDT_CLIENT_PROTOCOL *This,
- IN CONST CHAR8 *CompatibleString,
- OUT INT32 *Node
- );
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_FIND_NEXT_COMPATIBLE_NODE) (
- IN FDT_CLIENT_PROTOCOL *This,
- IN CONST CHAR8 *CompatibleString,
- IN INT32 PrevNode,
- OUT INT32 *Node
- );
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE_PROPERTY) (
- IN FDT_CLIENT_PROTOCOL *This,
- IN CONST CHAR8 *CompatibleString,
- IN CONST CHAR8 *PropertyName,
- OUT CONST VOID **Prop,
- OUT UINT32 *PropSize OPTIONAL
- );
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_FIND_COMPATIBLE_NODE_REG) (
- IN FDT_CLIENT_PROTOCOL *This,
- IN CONST CHAR8 *CompatibleString,
- OUT CONST VOID **Reg,
- OUT UINTN *AddressCells,
- OUT UINTN *SizeCells,
- OUT UINT32 *RegSize
- );
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_FIND_NEXT_MEMORY_NODE_REG) (
- IN FDT_CLIENT_PROTOCOL *This,
- IN INT32 PrevNode,
- OUT INT32 *Node,
- OUT CONST VOID **Reg,
- OUT UINTN *AddressCells,
- OUT UINTN *SizeCells,
- OUT UINT32 *RegSize
- );
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_FIND_MEMORY_NODE_REG) (
- IN FDT_CLIENT_PROTOCOL *This,
- OUT INT32 *Node,
- OUT CONST VOID **Reg,
- OUT UINTN *AddressCells,
- OUT UINTN *SizeCells,
- OUT UINT32 *RegSize
- );
-
-typedef
-EFI_STATUS
-(EFIAPI *FDT_CLIENT_GET_OR_INSERT_CHOSEN_NODE) (
- IN FDT_CLIENT_PROTOCOL *This,
- OUT INT32 *Node
- );
-
-struct _FDT_CLIENT_PROTOCOL {
- FDT_CLIENT_GET_NODE_PROPERTY GetNodeProperty;
- FDT_CLIENT_SET_NODE_PROPERTY SetNodeProperty;
-
- FDT_CLIENT_FIND_COMPATIBLE_NODE FindCompatibleNode;
- FDT_CLIENT_FIND_NEXT_COMPATIBLE_NODE FindNextCompatibleNode;
- FDT_CLIENT_FIND_COMPATIBLE_NODE_PROPERTY FindCompatibleNodeProperty;
- FDT_CLIENT_FIND_COMPATIBLE_NODE_REG FindCompatibleNodeReg;
-
- FDT_CLIENT_FIND_MEMORY_NODE_REG FindMemoryNodeReg;
- FDT_CLIENT_FIND_NEXT_MEMORY_NODE_REG FindNextMemoryNodeReg;
-
- FDT_CLIENT_GET_OR_INSERT_CHOSEN_NODE GetOrInsertChosenNode;
-};
-
-extern EFI_GUID gFdtClientProtocolGuid;
-
-#endif
diff --git a/ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf b/ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf
index 43fcb0b73b..23cc64ab93 100644
--- a/ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf
+++ b/ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf
@@ -30,6 +30,7 @@
[Packages]
ArmPkg/ArmPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
[Protocols]
diff --git a/ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf b/ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf
index 52027d5101..2cfb2b6af5 100644
--- a/ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf
+++ b/ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf
@@ -22,6 +22,7 @@
[Packages]
ArmPlatformPkg/ArmPlatformPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
[LibraryClasses]
diff --git a/ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf b/ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf
index 954a6ac8a6..4fde5e443f 100644
--- a/ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf
+++ b/ArmVirtPkg/Library/ArmVirtPsciResetSystemLib/ArmVirtPsciResetSystemLib.inf
@@ -24,6 +24,7 @@
[Packages]
ArmPkg/ArmPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdeModulePkg/MdeModulePkg.dec
MdePkg/MdePkg.dec
diff --git a/ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf b/ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
index 382e3004e1..9e6f6f63a5 100644
--- a/ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
+++ b/ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
@@ -23,6 +23,7 @@
[Packages]
ArmPkg/ArmPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
[LibraryClasses]
diff --git a/ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf b/ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
index b813a0851d..1549f9d884 100644
--- a/ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
+++ b/ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
@@ -29,6 +29,7 @@
[Packages]
ArmPkg/ArmPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdeModulePkg/MdeModulePkg.dec
MdePkg/MdePkg.dec
OvmfPkg/OvmfPkg.dec
diff --git a/ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf b/ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
index 337a5488fc..bb055a5beb 100644
--- a/ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
+++ b/ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
@@ -22,6 +22,7 @@
[Packages]
ArmPkg/ArmPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdeModulePkg/MdeModulePkg.dec
MdePkg/MdePkg.dec
diff --git a/ArmVirtPkg/Library/KvmtoolRtcFdtClientLib/KvmtoolRtcFdtClientLib.inf b/ArmVirtPkg/Library/KvmtoolRtcFdtClientLib/KvmtoolRtcFdtClientLib.inf
index deb3bf635c..f0a7c19ca5 100644
--- a/ArmVirtPkg/Library/KvmtoolRtcFdtClientLib/KvmtoolRtcFdtClientLib.inf
+++ b/ArmVirtPkg/Library/KvmtoolRtcFdtClientLib/KvmtoolRtcFdtClientLib.inf
@@ -21,6 +21,7 @@
[Packages]
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
PcAtChipsetPkg/PcAtChipsetPkg.dec
diff --git a/ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtoolLib.inf b/ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtoolLib.inf
index 95e4ba89a4..04d6723295 100644
--- a/ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtoolLib.inf
+++ b/ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtoolLib.inf
@@ -22,6 +22,7 @@
ArmPkg/ArmPkg.dec
ArmPlatformPkg/ArmPlatformPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
diff --git a/ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf b/ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
index 9aad84ca6d..4c3683bf5d 100644
--- a/ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
+++ b/ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
@@ -24,6 +24,7 @@
ArmPlatformPkg/ArmPlatformPkg.dec
ArmPkg/ArmPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
[LibraryClasses]
BaseLib
diff --git a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
index feceed5f93..f3cc827907 100644
--- a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
+++ b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
@@ -32,6 +32,7 @@
[Packages]
MdePkg/MdePkg.dec
OvmfPkg/OvmfPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
ArmVirtPkg/ArmVirtPkg.dec
[LibraryClasses]
diff --git a/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf b/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
index 8fd92f17df..9d5ae7b12f 100644
--- a/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
+++ b/ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
@@ -21,6 +21,7 @@
[Packages]
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
OvmfPkg/OvmfPkg.dec
diff --git a/ArmVirtPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf b/ArmVirtPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf
index 5881d6b515..9bd31790ca 100644
--- a/ArmVirtPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf
+++ b/ArmVirtPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf
@@ -26,6 +26,7 @@
[Packages]
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
diff --git a/ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf b/ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf
index 59e53cad80..10038d5625 100644
--- a/ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf
+++ b/ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf
@@ -21,6 +21,7 @@
[Packages]
ArmVirtPkg/ArmVirtPkg.dec
+ EmbeddedPkg/EmbeddedPkg.dec
MdePkg/MdePkg.dec
OvmfPkg/OvmfPkg.dec