EmbeddedPkg: Split off FDT loading functionality from FdtLib

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
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16080 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ard Biesheuvel 2014-09-09 17:59:19 +00:00 committed by oliviermartin
parent f8d7d6e151
commit 1e9b2bddff
6 changed files with 97 additions and 44 deletions

View File

@ -262,6 +262,9 @@
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
# FDT Support
EmbeddedPkg/Library/FdtLoadLib/FdtLoadLib.inf
EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf
EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
EmbeddedPkg/Drivers/AndroidFastbootTransportTcpDxe/FastbootTransportTcpDxe.inf EmbeddedPkg/Drivers/AndroidFastbootTransportTcpDxe/FastbootTransportTcpDxe.inf

View File

@ -0,0 +1,48 @@
/** @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 _FDT_LOAD_LIB_H_
#define _FDT_LOAD_LIB_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

View File

@ -15,7 +15,6 @@
#ifndef _LIBFDT_ENV_H #ifndef _LIBFDT_ENV_H
#define _LIBFDT_ENV_H #define _LIBFDT_ENV_H
#include <Uefi.h>
#include <Library/BaseLib.h> #include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h> #include <Library/BaseMemoryLib.h>
@ -79,34 +78,4 @@ static inline char *strchr(const char *s, int c) {
return AsciiStrStr (s, pattern); 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 */ #endif /* _LIBFDT_ENV_H */

View File

@ -26,7 +26,6 @@
# #
[Sources] [Sources]
FdtConfigurationTable.c
fdt_ro.c fdt_ro.c
fdt_rw.c fdt_rw.c
fdt_strerror.c fdt_strerror.c
@ -37,15 +36,3 @@
[Packages] [Packages]
MdePkg/MdePkg.dec MdePkg/MdePkg.dec
EmbeddedPkg/EmbeddedPkg.dec EmbeddedPkg/EmbeddedPkg.dec
[LibraryClasses]
UefiBootServicesTableLib
[Protocols]
gEfiDevicePathProtocolGuid
gEfiSimpleFileSystemProtocolGuid
gEfiFirmwareVolume2ProtocolGuid
[Guids]
gEfiFileInfoGuid
gFdtTableGuid

View File

@ -14,6 +14,7 @@
#include <PiDxe.h> #include <PiDxe.h>
#include <Library/DebugLib.h> #include <Library/DebugLib.h>
#include <Library/FdtLoadLib.h>
#include <Library/MemoryAllocationLib.h> #include <Library/MemoryAllocationLib.h>
#include <Library/UefiBootServicesTableLib.h> #include <Library/UefiBootServicesTableLib.h>

View File

@ -0,0 +1,45 @@
#/* @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]
MdePkg/MdePkg.dec
EmbeddedPkg/EmbeddedPkg.dec
[LibraryClasses]
FdtLib
[Protocols]
gEfiDevicePathProtocolGuid
gEfiSimpleFileSystemProtocolGuid
gEfiFirmwareVolume2ProtocolGuid
[Guids]
gEfiFileInfoGuid
gFdtTableGuid