+++ /dev/null
-/** @file\r
-\r
- Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _SEC_CORE_H_\r
-#define _SEC_CORE_H_\r
-\r
-\r
-#include <PiPei.h>\r
-#include <Ppi/TemporaryRamSupport.h>\r
-\r
-#include <Library/BaseLib.h>\r
-#include <Library/IoLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/PciCf8Lib.h>\r
-#include <Library/SerialPortLib.h>\r
-#include <Library/FspSwitchStackLib.h>\r
-#include <Library/FspCommonLib.h>\r
-#include <FspApi.h>\r
-\r
-#define SEC_IDT_ENTRY_COUNT 34\r
-\r
-typedef VOID (*PEI_CORE_ENTRY) ( \\r
- IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, \\r
- IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList \\r
-);\r
-\r
-typedef struct _SEC_IDT_TABLE {\r
- EFI_PEI_SERVICES *PeiService;\r
- UINT64 IdtTable[SEC_IDT_ENTRY_COUNT];\r
-} SEC_IDT_TABLE;\r
-\r
-/**\r
- Switch the stack in the temporary memory to the one in the permanent memory.\r
-\r
- This function must be invoked after the memory migration immediately. The relative\r
- position of the stack in the temporary and permanent memory is same.\r
-\r
- @param[in] TemporaryMemoryBase Base address of the temporary memory.\r
- @param[in] PermenentMemoryBase Base address of the permanent memory.\r
-**/\r
-VOID\r
-EFIAPI\r
-SecSwitchStack (\r
- IN UINT32 TemporaryMemoryBase,\r
- IN UINT32 PermenentMemoryBase\r
- );\r
-\r
-/**\r
- This service of the TEMPORARY_RAM_SUPPORT_PPI that migrates temporary RAM into\r
- permanent memory.\r
-\r
- @param[in] PeiServices Pointer to the PEI Services Table.\r
- @param[in] TemporaryMemoryBase Source Address in temporary memory from which the SEC or PEIM will copy the\r
- Temporary RAM contents.\r
- @param[in] PermanentMemoryBase Destination Address in permanent memory into which the SEC or PEIM will copy the\r
- Temporary RAM contents.\r
- @param[in] CopySize Amount of memory to migrate from temporary to permanent memory.\r
-\r
- @retval EFI_SUCCESS The data was successfully returned.\r
- @retval EFI_INVALID_PARAMETER PermanentMemoryBase + CopySize > TemporaryMemoryBase when\r
- TemporaryMemoryBase > PermanentMemoryBase.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SecTemporaryRamSupport (\r
- IN CONST EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,\r
- IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,\r
- IN UINTN CopySize\r
- );\r
-\r
-/**\r
- Initializes floating point units for requirement of UEFI specification.\r
-\r
- This function initializes floating-point control word to 0x027F (all exceptions\r
- masked,double-precision, round-to-nearest) and multimedia-extensions control word\r
- (if supported) to 0x1F80 (all exceptions masked, round-to-nearest, flush to zero\r
- for masked underflow).\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-InitializeFloatingPointUnits (\r
- VOID\r
- );\r
-\r
-/**\r
-\r
- Entry point to the C language phase of SEC. After the SEC assembly\r
- code has initialized some temporary memory and set up the stack,\r
- the control is transferred to this function.\r
-\r
-\r
- @param[in] SizeOfRam Size of the temporary memory available for use.\r
- @param[in] TempRamBase Base address of temporary ram\r
- @param[in] BootFirmwareVolume Base address of the Boot Firmware Volume.\r
- @param[in] PeiCore PeiCore entry point.\r
- @param[in] BootLoaderStack BootLoader stack.\r
- @param[in] ApiIdx the index of API.\r
-\r
- @return This function never returns.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SecStartup (\r
- IN UINT32 SizeOfRam,\r
- IN UINT32 TempRamBase,\r
- IN VOID *BootFirmwareVolume,\r
- IN PEI_CORE_ENTRY PeiCore,\r
- IN UINT32 BootLoaderStack,\r
- IN UINT32 ApiIdx\r
- );\r
-\r
-/**\r
- Autogenerated function that calls the library constructors for all of the module's\r
- dependent libraries. This function must be called by the SEC Core once a stack has\r
- been established.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-ProcessLibraryConstructorList (\r
- VOID\r
- );\r
-\r
-#endif\r