+++ /dev/null
-/** @file\r
- PEI Services Table Pointer Library.\r
-\r
- This library is used for PEIM which does executed from flash device directly but\r
- executed in memory.\r
-\r
- Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
- 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
-**/\r
-\r
-#include <PiPei.h>\r
-#include <Library/ArmPlatformGlobalVariableLib.h>\r
-#include <Library/PeiServicesTablePointerLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/PcdLib.h>\r
-\r
-/**\r
- Caches a pointer PEI Services Table.\r
-\r
- Caches the pointer to the PEI Services Table specified by PeiServicesTablePointer\r
- in a platform specific manner.\r
-\r
- If PeiServicesTablePointer is NULL, then ASSERT().\r
-\r
- @param PeiServicesTablePointer The address of PeiServices pointer.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetPeiServicesTablePointer (\r
- IN CONST EFI_PEI_SERVICES **PeiServicesTablePointer\r
- )\r
-{\r
- ASSERT (PeiServicesTablePointer != NULL);\r
-\r
- ArmPlatformSetGlobalVariable (PcdGet32 (PcdPeiServicePtrGlobalOffset), sizeof(EFI_PEI_SERVICES **), &PeiServicesTablePointer);\r
-}\r
-\r
-/**\r
- Retrieves the cached value of the PEI Services Table pointer.\r
-\r
- Returns the cached value of the PEI Services Table pointer in a CPU specific manner\r
- as specified in the CPU binding section of the Platform Initialization Pre-EFI\r
- Initialization Core Interface Specification.\r
-\r
- If the cached PEI Services Table pointer is NULL, then ASSERT().\r
-\r
- @return The pointer to PeiServices.\r
-\r
-**/\r
-CONST EFI_PEI_SERVICES**\r
-EFIAPI\r
-GetPeiServicesTablePointer (\r
- VOID\r
- )\r
-{\r
- EFI_PEI_SERVICES **PeiServicesTablePointer;\r
-\r
- ArmPlatformGetGlobalVariable (PcdGet32 (PcdPeiServicePtrGlobalOffset), sizeof(EFI_PEI_SERVICES **), &PeiServicesTablePointer);\r
-\r
- return (CONST EFI_PEI_SERVICES**)PeiServicesTablePointer;\r
-}\r
-\r
-/**\r
- Perform CPU specific actions required to migrate the PEI Services Table\r
- pointer from temporary RAM to permanent RAM.\r
-\r
- For IA32 CPUs, the PEI Services Table pointer is stored in the 4 bytes\r
- immediately preceding the Interrupt Descriptor Table (IDT) in memory.\r
- For X64 CPUs, the PEI Services Table pointer is stored in the 8 bytes\r
- immediately preceding the Interrupt Descriptor Table (IDT) in memory.\r
- For Itanium and ARM CPUs, a the PEI Services Table Pointer is stored in\r
- a dedicated CPU register. This means that there is no memory storage\r
- associated with storing the PEI Services Table pointer, so no additional\r
- migration actions are required for Itanium or ARM CPUs.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-MigratePeiServicesTablePointer (\r
- VOID\r
- )\r
-{\r
- return;\r
-}\r
+++ /dev/null
-## @file\r
-# Instance of PEI Services Table Pointer Library using global variable for the table pointer.\r
-#\r
-# PEI Services Table Pointer Library implementation that retrieves a pointer to the\r
-# PEI Services Table from a global variable. Not available to modules that execute from\r
-# read-only memory.\r
-#\r
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
-#\r
-# 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
-# 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
-#\r
-##\r
-\r
-[Defines]\r
- INF_VERSION = 0x00010005\r
- BASE_NAME = PeiServicesTablePointerLib\r
- FILE_GUID = 1c747f6b-0a58-49ae-8ea3-0327a4fa10e3\r
- MODULE_TYPE = BASE\r
- VERSION_STRING = 1.0\r
- LIBRARY_CLASS = PeiServicesTablePointerLib|PEIM PEI_CORE SEC\r
-\r
-#\r
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC (EBC is for build only)\r
-#\r
-\r
-[Sources]\r
- PeiServicesTablePointer.c\r
-\r
-[Packages]\r
- MdePkg/MdePkg.dec\r
- ArmPlatformPkg/ArmPlatformPkg.dec\r
-\r
-[LibraryClasses]\r
- ArmPlatformGlobalVariableLib\r
-\r
-[Pcd]\r
- gArmPlatformTokenSpaceGuid.PcdPeiServicePtrGlobalOffset\r
-\r