1 /** @file 2 * 3 * Copyright (c) 2011-2012, ARM Limited. All rights reserved. 4 * 5 * This program and the accompanying materials 6 * are licensed and made available under the terms and conditions of the BSD License 7 * which accompanies this distribution. The full text of the license may be found at 8 * http://opensource.org/licenses/bsd-license.php 9 * 10 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 * 13 **/ 14 15 #ifndef _PREPI_H_ 16 #define _PREPI_H_ 17 18 #include <PiPei.h> 19 20 #include <Library/PcdLib.h> 21 #include <Library/ArmLib.h> 22 #include <Library/BaseMemoryLib.h> 23 #include <Library/DebugLib.h> 24 #include <Library/IoLib.h> 25 #include <Library/MemoryAllocationLib.h> 26 #include <Library/HobLib.h> 27 #include <Library/SerialPortLib.h> 28 #include <Library/ArmPlatformLib.h> 29 30 #define SerialPrint(txt) SerialPortWrite (txt, AsciiStrLen(txt)+1); 31 32 extern UINT64 mSystemMemoryEnd; 33 34 RETURN_STATUS 35 EFIAPI 36 TimerConstructor ( 37 VOID 38 ); 39 40 VOID 41 PrePiMain ( 42 IN UINTN UefiMemoryBase, 43 IN UINTN StacksBase, 44 IN UINT64 StartTimeStamp 45 ); 46 47 EFI_STATUS 48 EFIAPI 49 MemoryPeim ( 50 IN EFI_PHYSICAL_ADDRESS UefiMemoryBase, 51 IN UINT64 UefiMemorySize 52 ); 53 54 EFI_STATUS 55 EFIAPI 56 PlatformPeim ( 57 VOID 58 ); 59 60 // Either implemented by PrePiLib or by MemoryInitPei 61 VOID 62 BuildMemoryTypeInformationHob ( 63 VOID 64 ); 65 66 EFI_STATUS 67 GetPlatformPpi ( 68 IN EFI_GUID *PpiGuid, 69 OUT VOID **Ppi 70 ); 71 72 // Initialize the Architecture specific controllers 73 VOID 74 ArchInitialize ( 75 VOID 76 ); 77 78 #endif /* _PREPI_H_ */ 79