On 08/28/14 16:14, Ard Biesheuvel wrote: > This is a fork of the ARM PlatformPeiLib for virtual machines. The main > purpose of having this specific implementation is that it allows us to > preserve the device tree blob if it was passed to us in system DRAM. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > .../Library/PlatformPeiLib/PlatformPeiLib.c | 48 > ++++++++++++++++++++++ > .../Library/PlatformPeiLib/PlatformPeiLib.inf | 47 +++++++++++++++++++++ > 2 files changed, 95 insertions(+) > create mode 100644 > ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c > create mode 100644 > ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.inf > > diff --git > a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c > b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c > new file mode 100644 > index 000000000000..d08eb0d0e45e > --- /dev/null > +++ > b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c > @@ -0,0 +1,48 @@ > +/** @file > +* > +* Copyright (c) 2011-2012, ARM Limited. All rights reserved. > +* 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. > +* > +**/ > + > +#include <PiPei.h> > + > +#include <Library/MemoryAllocationLib.h> > +#include <Library/ArmPlatformLib.h> > +#include <Library/DebugLib.h> > +#include <Library/HobLib.h> > +#include <Library/PcdLib.h> > +#include <libfdt.h> > + > +EFI_STATUS > +EFIAPI > +PlatformPeim ( > + VOID > + ) > +{ > + VOID *Base; > + VOID *NewBase; > + UINTN FdtSize; > + > + Base = (VOID*)(UINTN)PcdGet64 (PcdDeviceTreeBaseAddress); > + ASSERT (fdt_check_header (Base) == 0); > + > + FdtSize = fdt_totalsize (Base); > + NewBase = AllocatePages (EFI_SIZE_TO_PAGES (FdtSize)); > + ASSERT (NewBase != NULL); > + > + CopyMem (NewBase, Base, FdtSize); > + PcdSet64 (PcdDeviceTreeBaseAddress, (UINT64)(UINTN)NewBase); > + > + BuildFvHob (PcdGet32(PcdFvBaseAddress), PcdGet32(PcdFvSize)); > + > + return EFI_SUCCESS; > +} > diff --git > a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.inf > > b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.inf > new file mode 100644 > index 000000000000..f8a168ae6923 > --- /dev/null > +++ > b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.inf > @@ -0,0 +1,47 @@ > +#/** @file > +# > +# Copyright (c) 2011-2012, ARM Limited. All rights reserved. > +# 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 = PlatformPeiLib > + FILE_GUID = 59C11815-F8DA-4F49-B4FB-EC1E41ED1F06 > + MODULE_TYPE = SEC > + VERSION_STRING = 1.0 > + LIBRARY_CLASS = PlatformPeiLib > + > +[Sources] > + PlatformPeiLib.c > + > +[Packages] > + ArmPkg/ArmPkg.dec > + ArmPlatformPkg/ArmPlatformPkg.dec > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + EmbeddedPkg/EmbeddedPkg.dec > + > +[LibraryClasses] > + DebugLib > + HobLib > + FdtLib > + > +[FixedPcd] > + gArmTokenSpaceGuid.PcdFvBaseAddress > + gArmTokenSpaceGuid.PcdFvSize > + > +[Pcd] > + gArmTokenSpaceGuid.PcdDeviceTreeBaseAddress > + > +[Depex] > + gEfiPeiMemoryDiscoveredPpiGuid >
Reviewed-by: Laszlo Ersek <[email protected]> ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
