Message ID | 1409918214-29584-14-git-send-email-ard.biesheuvel@linaro.org |
---|---|
State | New |
Headers | show |
On 09/05/14 13:56, Ard Biesheuvel wrote: > 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 --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 > This appears to be: - new header & new inf - cut n'paste from old header/inf to new ones - functionality existed in separate C file anyway, moved it over - FILE_GUID is unique, OK I checked the tree for callers of InstallFdtFromSemihosting() and InstallFdtFromFv() -- the library dependencies of those modules should be updated. However, I found no callers at all, so this should be fine as-is. I don't know if Olivier uses git-am to apply patches (or if he pulls from remotes) before forwarding changes to the SVN repo. Unfortunately, SVN doesn't support patches that contain rename instructions, so I usually set diff.renames=false (which is BTW very annoying because it makes review harder). If the rename in this patch turns out to be an issue, we should ask Jordan (CC'd, thanks) to pull your branch. Reviewed-by: Laszlo Ersek <lersek@redhat.com> ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/
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
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