diff mbox

[edk2,v6,13/23] EmbeddedPkg: split off FDT loading functionality from FdtLib

Message ID 1409743096-14919-14-git-send-email-ard.biesheuvel@linaro.org
State New
Headers show

Commit Message

Ard Biesheuvel Sept. 3, 2014, 11:18 a.m. UTC
Split off the recently added functionality to load device tree images and
install them as configuration tables, as it introduces a dependency on
UefiBootServicesTableLib, preventing FdtLib from being used during SEC and
PEI phases.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 EmbeddedPkg/Include/FdtLoadLib.h                   | 51 ++++++++++++++++++++++
 EmbeddedPkg/Include/libfdt_env.h                   | 31 -------------
 EmbeddedPkg/Library/FdtLib/FdtLib.inf              | 13 ------
 .../{FdtLib => FdtLoadLib}/FdtConfigurationTable.c |  2 +-
 EmbeddedPkg/Library/FdtLoadLib/FdtLoadLib.inf      | 44 +++++++++++++++++++
 5 files changed, 96 insertions(+), 45 deletions(-)
 create mode 100644 EmbeddedPkg/Include/FdtLoadLib.h
 rename EmbeddedPkg/Library/{FdtLib => FdtLoadLib}/FdtConfigurationTable.c (96%)
 create mode 100644 EmbeddedPkg/Library/FdtLoadLib/FdtLoadLib.inf
diff mbox

Patch

diff --git a/EmbeddedPkg/Include/FdtLoadLib.h b/EmbeddedPkg/Include/FdtLoadLib.h
new file mode 100644
index 000000000000..b5f6dfc8fbc6
--- /dev/null
+++ b/EmbeddedPkg/Include/FdtLoadLib.h
@@ -0,0 +1,51 @@ 
+/** @file
+*
+*  Copyright (c) 2011-2014, ARM Limited. All rights reserved.
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#ifndef _FDTLOADLIB_ENV_H
+#define _FDTLOADLIB_ENV_H
+
+#include <Uefi.h>
+#include <libfdt.h>
+
+/**
+  Load and Install FDT from Semihosting
+
+  @param Filename   Name of the file to load from semihosting
+
+  @return EFI_SUCCESS           Fdt Blob was successfully installed into the configuration table
+                                from semihosting
+  @return EFI_NOT_FOUND         Fail to locate the file in semihosting
+  @return EFI_OUT_OF_RESOURCES  Fail to allocate memory to contain the blob
+**/
+EFI_STATUS
+InstallFdtFromSemihosting (
+  IN  CONST CHAR16*   FileName
+  );
+
+/**
+  Load and Install FDT from Firmware Volume
+
+  @param Filename   Guid of the FDT blob to load from firmware volume
+
+  @return EFI_SUCCESS           Fdt Blob was successfully installed into the configuration table
+                                from firmware volume
+  @return EFI_NOT_FOUND         Failed to locate the file in firmware volume
+  @return EFI_OUT_OF_RESOURCES  Failed to allocate memory to contain the blob
+**/
+EFI_STATUS
+InstallFdtFromFv (
+  IN  CONST EFI_GUID *FileName
+  );
+
+#endif
diff --git a/EmbeddedPkg/Include/libfdt_env.h b/EmbeddedPkg/Include/libfdt_env.h
index c4dc83c02494..3e24db94098c 100644
--- a/EmbeddedPkg/Include/libfdt_env.h
+++ b/EmbeddedPkg/Include/libfdt_env.h
@@ -15,7 +15,6 @@ 
 #ifndef _LIBFDT_ENV_H
 #define _LIBFDT_ENV_H
 
-#include <Uefi.h>
 #include <Library/BaseLib.h>
 #include <Library/BaseMemoryLib.h>
 
@@ -79,34 +78,4 @@  static inline char *strchr(const char *s, int c) {
   return AsciiStrStr (s, pattern);
 }
 
-/**
-  Load and Install FDT from Semihosting
-
-  @param Filename   Name of the file to load from semihosting
-
-  @return EFI_SUCCESS           Fdt Blob was successfully installed into the configuration table
-                                from semihosting
-  @return EFI_NOT_FOUND         Fail to locate the file in semihosting
-  @return EFI_OUT_OF_RESOURCES  Fail to allocate memory to contain the blob
-**/
-EFI_STATUS
-InstallFdtFromSemihosting (
-  IN  CONST CHAR16*   FileName
-  );
-
-/**
-  Load and Install FDT from Firmware Volume
-
-  @param Filename   Guid of the FDT blob to load from firmware volume
-
-  @return EFI_SUCCESS           Fdt Blob was successfully installed into the configuration table
-                                from firmware volume
-  @return EFI_NOT_FOUND         Failed to locate the file in firmware volume
-  @return EFI_OUT_OF_RESOURCES  Failed to allocate memory to contain the blob
-**/
-EFI_STATUS
-InstallFdtFromFv (
-  IN  CONST EFI_GUID *FileName
-  );
-
 #endif /* _LIBFDT_ENV_H */
diff --git a/EmbeddedPkg/Library/FdtLib/FdtLib.inf b/EmbeddedPkg/Library/FdtLib/FdtLib.inf
index d18caa67ea3f..f3da231143a0 100644
--- a/EmbeddedPkg/Library/FdtLib/FdtLib.inf
+++ b/EmbeddedPkg/Library/FdtLib/FdtLib.inf
@@ -26,7 +26,6 @@ 
 #
 
 [Sources]
-  FdtConfigurationTable.c
   fdt_ro.c
   fdt_rw.c
   fdt_strerror.c
@@ -37,15 +36,3 @@ 
 [Packages]
   MdePkg/MdePkg.dec
   EmbeddedPkg/EmbeddedPkg.dec
-
-[LibraryClasses]
-  UefiBootServicesTableLib
-
-[Protocols]
-  gEfiDevicePathProtocolGuid
-  gEfiSimpleFileSystemProtocolGuid
-  gEfiFirmwareVolume2ProtocolGuid
-
-[Guids]
-  gEfiFileInfoGuid
-  gFdtTableGuid
diff --git a/EmbeddedPkg/Library/FdtLib/FdtConfigurationTable.c b/EmbeddedPkg/Library/FdtLoadLib/FdtConfigurationTable.c
similarity index 96%
rename from EmbeddedPkg/Library/FdtLib/FdtConfigurationTable.c
rename to EmbeddedPkg/Library/FdtLoadLib/FdtConfigurationTable.c
index aece1df1cc79..fd15a0b0ceb9 100644
--- a/EmbeddedPkg/Library/FdtLib/FdtConfigurationTable.c
+++ b/EmbeddedPkg/Library/FdtLoadLib/FdtConfigurationTable.c
@@ -24,7 +24,7 @@ 
 #include <Guid/Fdt.h>
 #include <Guid/FileInfo.h>
 
-#include <libfdt.h>
+#include <FdtLoadLib.h>
 
 //
 // Device path for SemiHosting
diff --git a/EmbeddedPkg/Library/FdtLoadLib/FdtLoadLib.inf b/EmbeddedPkg/Library/FdtLoadLib/FdtLoadLib.inf
new file mode 100644
index 000000000000..4d870fa6939e
--- /dev/null
+++ b/EmbeddedPkg/Library/FdtLoadLib/FdtLoadLib.inf
@@ -0,0 +1,44 @@ 
+#/* @file
+#  Copyright (c) 2014, Linaro Limited. All rights reserved.
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#*/
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = FdtLoadLib
+  FILE_GUID                      = F00298C1-BBC3-445F-8906-AAEAFE7729A4
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = FdtLoadLib
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES           = ARM AARCH64
+#
+
+[Sources]
+  FdtConfigurationTable.c
+
+[Packages]
+  EmbeddedPkg/EmbeddedPkg.dec
+
+[LibraryClasses]
+  FdtLib
+
+[Protocols]
+  gEfiDevicePathProtocolGuid
+  gEfiSimpleFileSystemProtocolGuid
+  gEfiFirmwareVolume2ProtocolGuid
+
+[Guids]
+  gEfiFileInfoGuid
+  gFdtTableGuid