+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006 - 2007, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-Module Name:\r
-\r
- IpfDxeLoad.c\r
-\r
-Abstract:\r
-\r
- Ipf-specifc functionality for DxeLoad.\r
-\r
---*/\r
-\r
-#include "DxeIpl.h"\r
-\r
-VOID\r
-HandOffToDxeCore (\r
- IN EFI_PHYSICAL_ADDRESS DxeCoreEntryPoint,\r
- IN EFI_PEI_HOB_POINTERS HobList,\r
- IN EFI_PEI_PPI_DESCRIPTOR *EndOfPeiSignal\r
- )\r
-{\r
- VOID *BaseOfStack;\r
- VOID *TopOfStack;\r
- VOID *BspStore;\r
- EFI_STATUS Status;\r
-\r
- //\r
- // Allocate 128KB for the Stack\r
- //\r
- BaseOfStack = AllocatePages (EFI_SIZE_TO_PAGES (STACK_SIZE));\r
- ASSERT (BaseOfStack != NULL);\r
-\r
- //\r
- // Allocate 16KB for the BspStore\r
- //\r
- BspStore = AllocatePages (EFI_SIZE_TO_PAGES (BSP_STORE_SIZE));\r
- ASSERT (BspStore != NULL);\r
- //\r
- // Build BspStoreHob\r
- //\r
- BuildBspStoreHob ((EFI_PHYSICAL_ADDRESS) (UINTN) BspStore, BSP_STORE_SIZE, EfiBootServicesData);\r
-\r
- //\r
- // Compute the top of the stack we were allocated. Pre-allocate a UINTN\r
- // for safety.\r
- //\r
- TopOfStack = (VOID *) ((UINTN) BaseOfStack + EFI_SIZE_TO_PAGES (STACK_SIZE) * EFI_PAGE_SIZE - CPU_STACK_ALIGNMENT);\r
- TopOfStack = ALIGN_POINTER (TopOfStack, CPU_STACK_ALIGNMENT);\r
-\r
- //\r
- // End of PEI phase singal\r
- //\r
- Status = PeiServicesInstallPpi (EndOfPeiSignal);\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- SwitchStack (\r
- (SWITCH_STACK_ENTRY_POINT)(UINTN)DxeCoreEntryPoint,\r
- HobList.Raw,\r
- NULL,\r
- TopOfStack,\r
- BspStore\r
- );\r
-}\r