50 OldHeap = (
VOID *)(
UINTN)TemporaryMemoryBase;
51 NewHeap = (
VOID *)((
UINTN)PermanentMemoryBase + (CopySize - HeapSize));
53 OldStack = (
VOID *)((
UINTN)TemporaryMemoryBase + HeapSize);
54 NewStack = (
VOID *)(
UINTN)PermanentMemoryBase;
59 CopyMem (NewStack, OldStack, CopySize - HeapSize);
64 CopyMem (NewHeap, OldHeap, HeapSize);
77 EFI_PEI_PPI_DESCRIPTOR_PPI,
78 &gEfiTemporaryRamSupportPpiGuid,
79 (
VOID *)&mTemporaryRamSupportPpi
100 UINTN PlatformPpiListSize;
105 PlatformPpiListSize = 0;
109 ListBase =
PcdGet64 (PcdCPUCoresStackBase);
110 CopyMem ((
VOID *)ListBase, gCommonPpiTable,
sizeof (gCommonPpiTable));
111 CopyMem ((
VOID *)(ListBase +
sizeof (gCommonPpiTable)), PlatformPpiList, PlatformPpiListSize);
116 *PpiListSize =
sizeof (gCommonPpiTable) + PlatformPpiListSize;
119 if (TransferListBase !=
NULL) {
121 LastPpi->
Flags = EFI_PEI_PPI_DESCRIPTOR_PPI;
122 LastPpi->
Guid = &gArmTransferListPpiGuid;
123 LastPpi->
Ppi = TransferListBase;
127 LastPpi->
Flags |= EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;
149 "UEFI firmware (version %s built at %a on %a)\n\r",
150 (CHAR16 *)
PcdGetPtr (PcdFirmwareVersionString),
180 UINTN TemporaryRamBase;
181 UINTN TemporaryRamSize;
182 VOID *TransferListBase;
185 TransferListBase = (
VOID *)TransferListBaseAddr;
186 if (TransferListBase !=
NULL) {
192 TransferListBase =
NULL;
193 DEBUG ((DEBUG_ERROR,
"%a: No valid operations possible on TransferList found @ 0x%p\n", __func__, TransferListBase));
196 DEBUG ((DEBUG_INFO,
"%a: No TransferList found, continuing boot\n", __func__));
204 TemporaryRamBase = (
UINTN)
PcdGet64 (PcdCPUCoresStackBase) + PpiListSize;
205 TemporaryRamSize = (
UINTN)
PcdGet32 (PcdCPUCorePrimaryStackSize) - PpiListSize;
223 (PeiCoreEntryPoint)(&SecCoreData, PpiList);
240 if (!ArmMmuEnabled ()) {
242 ArmDisableDataCache ();
244 ArmInvalidateInstructionCache ();
246 ArmEnableInstructionCache ();
250 PcdGet32 (PcdCPUCorePrimaryStackSize)
274 SecMain (PeiCoreEntryPoint, TransferListBaseAddr);
#define CPU_STACK_ALIGNMENT
VOID *EFIAPI InvalidateDataCacheRange(IN VOID *Address, IN UINTN Length)
RETURN_STATUS EFIAPI SerialPortInitialize(VOID)
UINTN EFIAPI SerialPortWrite(IN UINT8 *Buffer, IN UINTN NumberOfBytes)
VOID EFIAPI ProcessLibraryConstructorList(IN EFI_HANDLE ImageHandle, IN EFI_MM_SYSTEM_TABLE *MmSystemTable)
VOID EFIAPI TransferListDump(IN TRANSFER_LIST_HEADER *TransferListHeader)
TRANSFER_LIST_OPS EFIAPI TransferListCheckHeader(IN TRANSFER_LIST_HEADER *TransferListHeader)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
BOOLEAN EFIAPI SaveAndSetDebugTimerInterrupt(IN BOOLEAN EnableStatus)
VOID EFIAPI InitializeDebugAgent(IN UINT32 InitFlag, IN VOID *Context OPTIONAL, IN DEBUG_AGENT_CONTINUE Function OPTIONAL)
UINTN EFIAPI AsciiSPrint(OUT CHAR8 *StartOfBuffer, IN UINTN BufferSize, IN CONST CHAR8 *FormatString,...)
#define ALIGN_VALUE(Value, Alignment)
#define DEBUG_CODE_BEGIN()
#define DEBUG(Expression)
#define PcdGet64(TokenName)
#define PcdGet32(TokenName)
#define PcdGetPtr(TokenName)
VOID(EFIAPI * EFI_PEI_CORE_ENTRY_POINT)(IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList)
struct _EFI_SEC_PEI_HAND_OFF EFI_SEC_PEI_HAND_OFF
UINT64 EFI_PHYSICAL_ADDRESS
UINTN PeiTemporaryRamSize
VOID * BootFirmwareVolumeBase
UINTN BootFirmwareVolumeSize
VOID * PeiTemporaryRamBase