IntelFspPkg&IntelFspWrapperPkg: Remove them
authorRay Ni <ray.ni@intel.com>
Tue, 11 Jun 2019 08:59:11 +0000 (16:59 +0800)
committerRay Ni <ray.ni@intel.com>
Tue, 11 Jun 2019 08:59:36 +0000 (16:59 +0800)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1819

Since there are V2 FSP packages (IntelFsp2Pkg, IntelFsp2WrapperPkg),
this patch removes IntelFspPkg, IntelFspWrapperPkg to remove obsolete
code in edk2 repo.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
132 files changed:
IntelFspPkg/FspDxeIpl/DxeIpl.c [deleted file]
IntelFspPkg/FspDxeIpl/DxeIpl.h [deleted file]
IntelFspPkg/FspDxeIpl/FspDxeIpl.inf [deleted file]
IntelFspPkg/FspSecCore/FspSecCore.inf [deleted file]
IntelFspPkg/FspSecCore/Ia32/FspApiEntry.asm [deleted file]
IntelFspPkg/FspSecCore/Ia32/FspApiEntry.s [deleted file]
IntelFspPkg/FspSecCore/Ia32/FspHelper.asm [deleted file]
IntelFspPkg/FspSecCore/Ia32/FspHelper.s [deleted file]
IntelFspPkg/FspSecCore/Ia32/InitializeFpu.asm [deleted file]
IntelFspPkg/FspSecCore/Ia32/InitializeFpu.s [deleted file]
IntelFspPkg/FspSecCore/Ia32/MicrocodeLoad.inc [deleted file]
IntelFspPkg/FspSecCore/Ia32/ResetVec.asm16 [deleted file]
IntelFspPkg/FspSecCore/Ia32/SaveRestoreSse.inc [deleted file]
IntelFspPkg/FspSecCore/Ia32/Stack.asm [deleted file]
IntelFspPkg/FspSecCore/Ia32/Stacks.s [deleted file]
IntelFspPkg/FspSecCore/SecFsp.c [deleted file]
IntelFspPkg/FspSecCore/SecFsp.h [deleted file]
IntelFspPkg/FspSecCore/SecMain.c [deleted file]
IntelFspPkg/FspSecCore/SecMain.h [deleted file]
IntelFspPkg/FspSecCore/Vtf0/Bin/ResetVec.ia32.raw [deleted file]
IntelFspPkg/FspSecCore/Vtf0/Build.py [deleted file]
IntelFspPkg/FspSecCore/Vtf0/Ia16/ResetVec.asm16 [deleted file]
IntelFspPkg/FspSecCore/Vtf0/ResetVectorCode.asm [deleted file]
IntelFspPkg/FspSecCore/Vtf0/Tools/FixupForRawSection.py [deleted file]
IntelFspPkg/Include/FspApi.h [deleted file]
IntelFspPkg/Include/FspInfoHeader.h [deleted file]
IntelFspPkg/Include/Guid/FspHeaderFile.h [deleted file]
IntelFspPkg/Include/Guid/GuidHobFsp.h [deleted file]
IntelFspPkg/Include/Guid/GuidHobFspEas.h [deleted file]
IntelFspPkg/Include/Library/CacheAsRamLib.h [deleted file]
IntelFspPkg/Include/Library/CacheLib.h [deleted file]
IntelFspPkg/Include/Library/DebugDeviceLib.h [deleted file]
IntelFspPkg/Include/Library/FspCommonLib.h [deleted file]
IntelFspPkg/Include/Library/FspPlatformLib.h [deleted file]
IntelFspPkg/Include/Library/FspSecPlatformLib.h [deleted file]
IntelFspPkg/Include/Library/FspSwitchStackLib.h [deleted file]
IntelFspPkg/Include/Private/FspGlobalData.h [deleted file]
IntelFspPkg/Include/Private/FspMeasurePointId.h [deleted file]
IntelFspPkg/Include/Private/FspPatchTable.h [deleted file]
IntelFspPkg/Include/Private/GuidHobFspGfx.h [deleted file]
IntelFspPkg/Include/Private/GuidHobFspMisc.h [deleted file]
IntelFspPkg/Include/Private/GuidHobFspTseg.h [deleted file]
IntelFspPkg/IntelFspPkg.dec [deleted file]
IntelFspPkg/IntelFspPkg.dsc [deleted file]
IntelFspPkg/Library/BaseCacheAsRamLibNull/BaseCacheAsRamLibNull.inf [deleted file]
IntelFspPkg/Library/BaseCacheAsRamLibNull/DisableCacheAsRamNull.c [deleted file]
IntelFspPkg/Library/BaseCacheLib/BaseCacheLib.inf [deleted file]
IntelFspPkg/Library/BaseCacheLib/CacheLib.c [deleted file]
IntelFspPkg/Library/BaseCacheLib/CacheLibInternal.h [deleted file]
IntelFspPkg/Library/BaseDebugDeviceLibNull/BaseDebugDeviceLibNull.inf [deleted file]
IntelFspPkg/Library/BaseDebugDeviceLibNull/DebugDeviceLibNull.c [deleted file]
IntelFspPkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf [deleted file]
IntelFspPkg/Library/BaseFspCommonLib/FspCommonLib.c [deleted file]
IntelFspPkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSerialPort.inf [deleted file]
IntelFspPkg/Library/BaseFspDebugLibSerialPort/DebugLib.c [deleted file]
IntelFspPkg/Library/BaseFspDebugLibSerialPort/Ia32/FspDebug.asm [deleted file]
IntelFspPkg/Library/BaseFspDebugLibSerialPort/Ia32/FspDebug.s [deleted file]
IntelFspPkg/Library/BaseFspPlatformLib/BaseFspPlatformLib.inf [deleted file]
IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformMemory.c [deleted file]
IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c [deleted file]
IntelFspPkg/Library/BaseFspSwitchStackLib/BaseFspSwitchStackLib.inf [deleted file]
IntelFspPkg/Library/BaseFspSwitchStackLib/FspSwitchStackLib.c [deleted file]
IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.asm [deleted file]
IntelFspPkg/Library/BaseFspSwitchStackLib/Ia32/Stack.s [deleted file]
IntelFspPkg/Library/SecFspSecPlatformLibNull/Ia32/Flat32.asm [deleted file]
IntelFspPkg/Library/SecFspSecPlatformLibNull/Ia32/Flat32.s [deleted file]
IntelFspPkg/Library/SecFspSecPlatformLibNull/Ia32/SecCarInit.asm [deleted file]
IntelFspPkg/Library/SecFspSecPlatformLibNull/Ia32/SecCarInit.s [deleted file]
IntelFspPkg/Library/SecFspSecPlatformLibNull/PlatformSecLibNull.c [deleted file]
IntelFspPkg/Library/SecFspSecPlatformLibNull/SecFspSecPlatformLibNull.inf [deleted file]
IntelFspPkg/Tools/GenCfgOpt.py [deleted file]
IntelFspPkg/Tools/PatchFv.py [deleted file]
IntelFspPkg/Tools/UserManuals/GenCfgOptUserManual.docx [deleted file]
IntelFspPkg/Tools/UserManuals/PatchFvUserManual.docx [deleted file]
IntelFspWrapperPkg/FspInitPei/FindPeiCore.c [deleted file]
IntelFspWrapperPkg/FspInitPei/FspInitPei.c [deleted file]
IntelFspWrapperPkg/FspInitPei/FspInitPei.h [deleted file]
IntelFspWrapperPkg/FspInitPei/FspInitPei.inf [deleted file]
IntelFspWrapperPkg/FspInitPei/FspInitPeiV1.c [deleted file]
IntelFspWrapperPkg/FspInitPei/FspInitPeiV2.c [deleted file]
IntelFspWrapperPkg/FspInitPei/FspNotifyS3.c [deleted file]
IntelFspWrapperPkg/FspInitPei/SecMain.c [deleted file]
IntelFspWrapperPkg/FspInitPei/SecMain.h [deleted file]
IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.c [deleted file]
IntelFspWrapperPkg/FspNotifyDxe/FspNotifyDxe.inf [deleted file]
IntelFspWrapperPkg/FspNotifyDxe/LoadBelow4G.c [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/FindPeiCore.c [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/FspWrapperSecCore.inf [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/Ia32/Dummy.asm [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/Ia32/ResetVec.asm16 [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/SecMain.c [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/SecMain.h [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Bin/ResetVec.ia32.raw [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Build.py [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Ia16/ResetVec.asm16 [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/ResetVectorCode.asm [deleted file]
IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Tools/FixupForRawSection.py [deleted file]
IntelFspWrapperPkg/Include/Library/FspApiLib.h [deleted file]
IntelFspWrapperPkg/Include/Library/FspHobProcessLib.h [deleted file]
IntelFspWrapperPkg/Include/Library/FspPlatformInfoLib.h [deleted file]
IntelFspWrapperPkg/Include/Library/FspPlatformSecLib.h [deleted file]
IntelFspWrapperPkg/Include/Ppi/FspInitDone.h [deleted file]
IntelFspWrapperPkg/Include/Ppi/TopOfTemporaryRam.h [deleted file]
IntelFspWrapperPkg/IntelFspWrapperPkg.dec [deleted file]
IntelFspWrapperPkg/IntelFspWrapperPkg.dsc [deleted file]
IntelFspWrapperPkg/Library/BaseFspApiLib/BaseFspApiLib.inf [deleted file]
IntelFspWrapperPkg/Library/BaseFspApiLib/FspApiLib.c [deleted file]
IntelFspWrapperPkg/Library/BaseFspApiLib/IA32/DispatchExecute.c [deleted file]
IntelFspWrapperPkg/Library/BaseFspApiLib/X64/DispatchExecute.c [deleted file]
IntelFspWrapperPkg/Library/BaseFspApiLib/X64/Thunk64To32.S [deleted file]
IntelFspWrapperPkg/Library/BaseFspApiLib/X64/Thunk64To32.asm [deleted file]
IntelFspWrapperPkg/Library/BaseFspPlatformInfoLibSample/BaseFspPlatformInfoLibSample.inf [deleted file]
IntelFspWrapperPkg/Library/BaseFspPlatformInfoLibSample/FspPlatformInfoLibSample.c [deleted file]
IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/FspHobProcessLibSample.c [deleted file]
IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/PeiFspHobProcessLibSample.inf [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/FspPlatformSecLibSample.c [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/AsmSaveSecContext.S [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/AsmSaveSecContext.asm [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/Fsp.h [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/PeiCoreEntry.S [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/PeiCoreEntry.asm [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/SecEntry.S [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/SecEntry.asm [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/Stack.S [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/Ia32/Stack.asm [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/PlatformInit.c [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/SaveSecContext.c [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/SecGetPerformance.c [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/SecPeiFspPlatformSecLibSample.inf [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/SecPlatformInformation.c [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/SecRamInitData.c [deleted file]
IntelFspWrapperPkg/Library/SecPeiFspPlatformSecLibSample/SecTempRamSupport.c [deleted file]

diff --git a/IntelFspPkg/FspDxeIpl/DxeIpl.c b/IntelFspPkg/FspDxeIpl/DxeIpl.c
deleted file mode 100644 (file)
index 22719cf..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-/** @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
-#include "DxeIpl.h"\r
-\r
-\r
-//\r
-// Module Globals used in the DXE to PEI hand off\r
-// These must be module globals, so the stack can be switched\r
-//\r
-CONST EFI_DXE_IPL_PPI mDxeIplPpi = {\r
-  DxeLoadCore\r
-};\r
-\r
-CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI mCustomGuidedSectionExtractionPpi = {\r
-  CustomGuidedSectionExtract\r
-};\r
-\r
-CONST EFI_PEI_DECOMPRESS_PPI mDecompressPpi = {\r
-  Decompress\r
-};\r
-\r
-CONST EFI_PEI_PPI_DESCRIPTOR mPpiList[] = {\r
-  {\r
-    EFI_PEI_PPI_DESCRIPTOR_PPI,\r
-    &gEfiDxeIplPpiGuid,\r
-    (VOID *) &mDxeIplPpi\r
-  },\r
-  {\r
-    (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
-    &gEfiPeiDecompressPpiGuid,\r
-    (VOID *) &mDecompressPpi\r
-  }\r
-};\r
-\r
-CONST EFI_PEI_PPI_DESCRIPTOR gEndOfPeiSignalPpi = {\r
-  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
-  &gEfiEndOfPeiSignalPpiGuid,\r
-  NULL\r
-};\r
-\r
-/**\r
-  Entry point of DXE IPL PEIM.\r
-\r
-  This function installs DXE IPL PPI and Decompress PPI.  It also reloads\r
-  itself to memory on non-S3 resume boot path.\r
-\r
-  @param[in] FileHandle  Handle of the file being invoked.\r
-  @param[in] PeiServices Describes the list of possible PEI Services.\r
-\r
-  @retval EFI_SUCESS  The entry point of DXE IPL PEIM executes successfully.\r
-  @retval Others      Some error occurs during the execution of this function.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PeimInitializeDxeIpl (\r
-  IN       EFI_PEI_FILE_HANDLE  FileHandle,\r
-  IN CONST EFI_PEI_SERVICES     **PeiServices\r
-  )\r
-{\r
-  EFI_STATUS                                Status;\r
-  EFI_GUID                                  *ExtractHandlerGuidTable;\r
-  UINTN                                     ExtractHandlerNumber;\r
-  EFI_PEI_PPI_DESCRIPTOR                    *GuidPpi;\r
-\r
-  //\r
-  // Get custom extract guided section method guid list\r
-  //\r
-  ExtractHandlerNumber = ExtractGuidedSectionGetGuidList (&ExtractHandlerGuidTable);\r
-\r
-  //\r
-  // Install custom extraction guid PPI\r
-  //\r
-  if (ExtractHandlerNumber > 0) {\r
-    GuidPpi = (EFI_PEI_PPI_DESCRIPTOR *) AllocatePool (ExtractHandlerNumber * sizeof (EFI_PEI_PPI_DESCRIPTOR));\r
-    ASSERT (GuidPpi != NULL);\r
-    while (ExtractHandlerNumber-- > 0) {\r
-      GuidPpi->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;\r
-      GuidPpi->Ppi   = (VOID *) &mCustomGuidedSectionExtractionPpi;\r
-      GuidPpi->Guid  = &ExtractHandlerGuidTable[ExtractHandlerNumber];\r
-      Status = PeiServicesInstallPpi (GuidPpi++);\r
-      ASSERT_EFI_ERROR(Status);\r
-    }\r
-  }\r
-\r
-  //\r
-  // Install DxeIpl and Decompress PPIs.\r
-  //\r
-  Status = PeiServicesInstallPpi (mPpiList);\r
-  ASSERT_EFI_ERROR(Status);\r
-\r
-  return Status;\r
-}\r
-\r
-/**\r
-  The ExtractSection() function processes the input section and\r
-  returns a pointer to the section contents. If the section being\r
-  extracted does not require processing (if the section\r
-  GuidedSectionHeader.Attributes has the\r
-  EFI_GUIDED_SECTION_PROCESSING_REQUIRED field cleared), then\r
-  OutputBuffer is just updated to point to the start of the\r
-  section's contents. Otherwise, *Buffer must be allocated\r
-  from PEI permanent memory.\r
-\r
-  @param[in]  This                   Indicates the\r
-                                     EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI instance.\r
-                                     Buffer containing the input GUIDed section to be\r
-                                     processed. OutputBuffer OutputBuffer is\r
-                                     allocated from PEI permanent memory and contains\r
-                                     the new section stream.\r
-  @param[in]  InputSection           A pointer to the input buffer, which contains\r
-                                     the input section to be processed.\r
-  @param[out] OutputBuffer           A pointer to a caller-allocated buffer, whose\r
-                                     size is specified by the contents of OutputSize.\r
-  @param[out] OutputSize             A pointer to a caller-allocated\r
-                                     UINTN in which the size of *OutputBuffer\r
-                                     allocation is stored. If the function\r
-                                     returns anything other than EFI_SUCCESS,\r
-                                     the value of OutputSize is undefined.\r
-  @param[out] AuthenticationStatus   A pointer to a caller-allocated\r
-                                     UINT32 that indicates the\r
-                                     authentication status of the\r
-                                     output buffer. If the input\r
-                                     section's GuidedSectionHeader.\r
-                                     Attributes field has the\r
-                                     EFI_GUIDED_SECTION_AUTH_STATUS_VALID\r
-                                     bit as clear,\r
-                                     AuthenticationStatus must return\r
-                                     zero. These bits reflect the\r
-                                     status of the extraction\r
-                                     operation. If the function\r
-                                     returns anything other than\r
-                                     EFI_SUCCESS, the value of\r
-                                     AuthenticationStatus is\r
-                                     undefined.\r
-\r
-  @retval EFI_SUCCESS           The InputSection was\r
-                                successfully processed and the\r
-                                section contents were returned.\r
-\r
-  @retval EFI_OUT_OF_RESOURCES  The system has insufficient\r
-                                resources to process the request.\r
-\r
-  @retval EFI_INVALID_PARAMETER The GUID in InputSection does\r
-                                not match this instance of the\r
-                                GUIDed Section Extraction PPI.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-CustomGuidedSectionExtract (\r
-  IN CONST  EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,\r
-  IN CONST  VOID                                  *InputSection,\r
-  OUT       VOID                                  **OutputBuffer,\r
-  OUT       UINTN                                 *OutputSize,\r
-  OUT       UINT32                                *AuthenticationStatus\r
-)\r
-{\r
-  EFI_STATUS      Status;\r
-  UINT8           *ScratchBuffer;\r
-  UINT32          ScratchBufferSize;\r
-  UINT32          OutputBufferSize;\r
-  UINT16          SectionAttribute;\r
-\r
-  //\r
-  // Init local variable\r
-  //\r
-  ScratchBuffer = NULL;\r
-\r
-  //\r
-  // Call GetInfo to get the size and attribute of input guided section data.\r
-  //\r
-  Status = ExtractGuidedSectionGetInfo (\r
-             InputSection,\r
-             &OutputBufferSize,\r
-             &ScratchBufferSize,\r
-             &SectionAttribute\r
-             );\r
-\r
-  if (EFI_ERROR (Status)) {\r
-    DEBUG ((DEBUG_ERROR, "GetInfo from guided section Failed - %r\n", Status));\r
-    return Status;\r
-  }\r
-\r
-  if (ScratchBufferSize != 0) {\r
-    //\r
-    // Allocate scratch buffer\r
-    //\r
-    ScratchBuffer = AllocatePages (EFI_SIZE_TO_PAGES (ScratchBufferSize));\r
-    if (ScratchBuffer == NULL) {\r
-      return EFI_OUT_OF_RESOURCES;\r
-    }\r
-  }\r
-\r
-  if (((SectionAttribute & EFI_GUIDED_SECTION_PROCESSING_REQUIRED) != 0) && OutputBufferSize > 0) {\r
-    //\r
-    // Allocate output buffer\r
-    //\r
-    *OutputBuffer = AllocatePages (EFI_SIZE_TO_PAGES (OutputBufferSize) + 1);\r
-    if (*OutputBuffer == NULL) {\r
-      return EFI_OUT_OF_RESOURCES;\r
-    }\r
-    DEBUG ((DEBUG_INFO, "Customized Guided section Memory Size required is 0x%x and address is 0x%p\n", OutputBufferSize, *OutputBuffer));\r
-    //\r
-    // *OutputBuffer still is one section. Adjust *OutputBuffer offset,\r
-    // skip EFI section header to make section data at page alignment.\r
-    //\r
-    *OutputBuffer = (VOID *)((UINT8 *) *OutputBuffer + EFI_PAGE_SIZE - sizeof (EFI_COMMON_SECTION_HEADER));\r
-  }\r
-\r
-  Status = ExtractGuidedSectionDecode (\r
-             InputSection,\r
-             OutputBuffer,\r
-             ScratchBuffer,\r
-             AuthenticationStatus\r
-             );\r
-  if (EFI_ERROR (Status)) {\r
-    //\r
-    // Decode failed\r
-    //\r
-    DEBUG ((DEBUG_ERROR, "Extract guided section Failed - %r\n", Status));\r
-    return Status;\r
-  }\r
-\r
-  *OutputSize = (UINTN) OutputBufferSize;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-\r
-\r
-/**\r
-   Decompresses a section to the output buffer.\r
-\r
-   This function looks up the compression type field in the input section and\r
-   applies the appropriate compression algorithm to compress the section to a\r
-   callee allocated buffer.\r
-\r
-   @param[in]  This                  Points to this instance of the\r
-                                     EFI_PEI_DECOMPRESS_PEI PPI.\r
-   @param[in]  CompressionSection    Points to the compressed section.\r
-   @param[out] OutputBuffer          Holds the returned pointer to the decompressed\r
-                                     sections.\r
-   @param[out] OutputSize            Holds the returned size of the decompress\r
-                                     section streams.\r
-\r
-   @retval EFI_SUCCESS           The section was decompressed successfully.\r
-                                 OutputBuffer contains the resulting data and\r
-                                 OutputSize contains the resulting size.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-Decompress (\r
-  IN CONST  EFI_PEI_DECOMPRESS_PPI  *This,\r
-  IN CONST  EFI_COMPRESSION_SECTION *CompressionSection,\r
-  OUT       VOID                    **OutputBuffer,\r
-  OUT       UINTN                   *OutputSize\r
- )\r
-{\r
-  EFI_STATUS                      Status;\r
-  UINT8                           *DstBuffer;\r
-  UINT8                           *ScratchBuffer;\r
-  UINT32                          DstBufferSize;\r
-  UINT32                          ScratchBufferSize;\r
-  VOID                            *CompressionSource;\r
-  UINT32                          CompressionSourceSize;\r
-  UINT32                          UncompressedLength;\r
-  UINT8                           CompressionType;\r
-\r
-  if (CompressionSection->CommonHeader.Type != EFI_SECTION_COMPRESSION) {\r
-    ASSERT (FALSE);\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (IS_SECTION2 (CompressionSection)) {\r
-    CompressionSource = (VOID *) ((UINT8 *) CompressionSection + sizeof (EFI_COMPRESSION_SECTION2));\r
-    CompressionSourceSize = (UINT32) (SECTION2_SIZE (CompressionSection) - sizeof (EFI_COMPRESSION_SECTION2));\r
-    UncompressedLength = ((EFI_COMPRESSION_SECTION2 *) CompressionSection)->UncompressedLength;\r
-    CompressionType = ((EFI_COMPRESSION_SECTION2 *) CompressionSection)->CompressionType;\r
-  } else {\r
-    CompressionSource = (VOID *) ((UINT8 *) CompressionSection + sizeof (EFI_COMPRESSION_SECTION));\r
-    CompressionSourceSize = (UINT32) (SECTION_SIZE (CompressionSection) - sizeof (EFI_COMPRESSION_SECTION));\r
-    UncompressedLength = CompressionSection->UncompressedLength;\r
-    CompressionType = CompressionSection->CompressionType;\r
-  }\r
-\r
-  //\r
-  // This is a compression set, expand it\r
-  //\r
-  switch (CompressionType) {\r
-  case EFI_STANDARD_COMPRESSION:\r
-    //\r
-    // Load EFI standard compression.\r
-    // For compressed data, decompress them to destination buffer.\r
-    //\r
-    Status = UefiDecompressGetInfo (\r
-               CompressionSource,\r
-               CompressionSourceSize,\r
-               &DstBufferSize,\r
-               &ScratchBufferSize\r
-               );\r
-    if (EFI_ERROR (Status)) {\r
-      //\r
-      // GetInfo failed\r
-      //\r
-      DEBUG ((DEBUG_ERROR, "Decompress GetInfo Failed - %r\n", Status));\r
-      return EFI_NOT_FOUND;\r
-    }\r
-    //\r
-    // Allocate scratch buffer\r
-    //\r
-    ScratchBuffer = AllocatePages (EFI_SIZE_TO_PAGES (ScratchBufferSize));\r
-    if (ScratchBuffer == NULL) {\r
-      return EFI_OUT_OF_RESOURCES;\r
-    }\r
-    //\r
-    // Allocate destination buffer, extra one page for adjustment\r
-    //\r
-    DstBuffer = AllocatePages (EFI_SIZE_TO_PAGES (DstBufferSize) + 1);\r
-    if (DstBuffer == NULL) {\r
-      return EFI_OUT_OF_RESOURCES;\r
-    }\r
-    //\r
-    // DstBuffer still is one section. Adjust DstBuffer offset, skip EFI section header\r
-    // to make section data at page alignment.\r
-    //\r
-    DstBuffer = DstBuffer + EFI_PAGE_SIZE - sizeof (EFI_COMMON_SECTION_HEADER);\r
-    //\r
-    // Call decompress function\r
-    //\r
-    Status = UefiDecompress (\r
-                CompressionSource,\r
-                DstBuffer,\r
-                ScratchBuffer\r
-                );\r
-    if (EFI_ERROR (Status)) {\r
-      //\r
-      // Decompress failed\r
-      //\r
-      DEBUG ((DEBUG_ERROR, "Decompress Failed - %r\n", Status));\r
-      return EFI_NOT_FOUND;\r
-    }\r
-    break;\r
-\r
-  case EFI_NOT_COMPRESSED:\r
-    //\r
-    // Allocate destination buffer\r
-    //\r
-    DstBufferSize = UncompressedLength;\r
-    DstBuffer     = AllocatePages (EFI_SIZE_TO_PAGES (DstBufferSize) + 1);\r
-    if (DstBuffer == NULL) {\r
-      return EFI_OUT_OF_RESOURCES;\r
-    }\r
-    //\r
-    // Adjust DstBuffer offset, skip EFI section header\r
-    // to make section data at page alignment.\r
-    //\r
-    DstBuffer = DstBuffer + EFI_PAGE_SIZE - sizeof (EFI_COMMON_SECTION_HEADER);\r
-    //\r
-    // stream is not actually compressed, just encapsulated.  So just copy it.\r
-    //\r
-    CopyMem (DstBuffer, CompressionSource, DstBufferSize);\r
-    break;\r
-\r
-  default:\r
-    //\r
-    // Don't support other unknown compression type.\r
-    //\r
-    ASSERT (FALSE);\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  *OutputSize = DstBufferSize;\r
-  *OutputBuffer = DstBuffer;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-   Main entry point to last PEIM.\r
-\r
-   This function finds DXE Core in the firmware volume and transfer the control to\r
-   DXE core.\r
-\r
-   @param[in] This          Entry point for DXE IPL PPI.\r
-   @param[in] PeiServices   General purpose services available to every PEIM.\r
-   @param[in] HobList       Address to the Pei HOB list.\r
-\r
-   @return EFI_SUCCESS              DXE core was successfully loaded.\r
-   @return EFI_OUT_OF_RESOURCES     There are not enough resources to load DXE core.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-DxeLoadCore (\r
-  IN CONST EFI_DXE_IPL_PPI *This,\r
-  IN EFI_PEI_SERVICES      **PeiServices,\r
-  IN EFI_PEI_HOB_POINTERS  HobList\r
-  )\r
-{\r
-  EFI_STATUS   Status;\r
-\r
-  DEBUG ((DEBUG_INFO | DEBUG_INIT, "FSP HOB is located at 0x%08X\n", HobList));\r
-\r
-  //\r
-  // End of PEI phase signal\r
-  //\r
-  Status = PeiServicesInstallPpi (&gEndOfPeiSignalPpi);\r
-  ASSERT_EFI_ERROR (Status);\r
-\r
-  //\r
-  // Give control back to BootLoader after FspInit\r
-  //\r
-  DEBUG ((DEBUG_INFO | DEBUG_INIT, "FSP is waiting for NOTIFY\n"));\r
-  FspInitDone ();\r
-\r
-  //\r
-  // BootLoader called FSP again through NotifyPhase\r
-  //\r
-  FspWaitForNotify ();\r
-\r
-\r
-  //\r
-  // Give control back to the boot loader framework caller\r
-  //\r
-  DEBUG ((DEBUG_INFO | DEBUG_INIT,   "============= PEIM FSP is Completed =============\n\n"));\r
-\r
-  SetFspApiReturnStatus(EFI_SUCCESS);\r
-\r
-  SetFspMeasurePoint (FSP_PERF_ID_API_NOTIFY_RDYBOOT_EXIT);\r
-\r
-  Pei2LoaderSwitchStack();\r
-\r
-  //\r
-  // Should not come here\r
-  //\r
-  while (TRUE) {\r
-    DEBUG ((DEBUG_ERROR, "No FSP API should be called after FSP is DONE!\n"));\r
-    SetFspApiReturnStatus(EFI_UNSUPPORTED);\r
-    Pei2LoaderSwitchStack();\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
-}\r
diff --git a/IntelFspPkg/FspDxeIpl/DxeIpl.h b/IntelFspPkg/FspDxeIpl/DxeIpl.h
deleted file mode 100644 (file)
index aa49deb..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __PEI_DXEIPL_H__\r
-#define __PEI_DXEIPL_H__\r
-\r
-#include <PiPei.h>\r
-#include <Ppi/DxeIpl.h>\r
-#include <Ppi/EndOfPeiPhase.h>\r
-#include <Ppi/MemoryDiscovered.h>\r
-#include <Ppi/Decompress.h>\r
-#include <Ppi/FirmwareVolumeInfo.h>\r
-#include <Ppi/GuidedSectionExtraction.h>\r
-\r
-#include <Library/DebugLib.h>\r
-#include <Library/PeimEntryPoint.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/HobLib.h>\r
-#include <Library/PeiServicesLib.h>\r
-#include <Library/ReportStatusCodeLib.h>\r
-#include <Library/UefiDecompressLib.h>\r
-#include <Library/ExtractGuidedSectionLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/FspSwitchStackLib.h>\r
-#include <Library/FspCommonLib.h>\r
-#include <Library/FspPlatformLib.h>\r
-\r
-/**\r
-   Main entry point to last PEIM.\r
-\r
-   This function finds DXE Core in the firmware volume and transfer the control to\r
-   DXE core.\r
-\r
-   @param[in] This          Entry point for DXE IPL PPI.\r
-   @param[in] PeiServices   General purpose services available to every PEIM.\r
-   @param[in] HobList       Address to the Pei HOB list.\r
-\r
-   @return EFI_SUCCESS              DXE core was successfully loaded.\r
-   @return EFI_OUT_OF_RESOURCES     There are not enough resources to load DXE core.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-DxeLoadCore (\r
-  IN CONST EFI_DXE_IPL_PPI *This,\r
-  IN EFI_PEI_SERVICES      **PeiServices,\r
-  IN EFI_PEI_HOB_POINTERS  HobList\r
-  );\r
-\r
-\r
-\r
-/**\r
-   Transfers control to DxeCore.\r
-\r
-   This function performs a CPU architecture specific operations to execute\r
-   the entry point of DxeCore with the parameters of HobList.\r
-   It also installs EFI_END_OF_PEI_PPI to signal the end of PEI phase.\r
-\r
-   @param[in] DxeCoreEntryPoint         The entry point of DxeCore.\r
-   @param[in] HobList                   The start of HobList passed to DxeCore.\r
-\r
-**/\r
-VOID\r
-HandOffToDxeCore (\r
-  IN EFI_PHYSICAL_ADDRESS   DxeCoreEntryPoint,\r
-  IN EFI_PEI_HOB_POINTERS   HobList\r
-  );\r
-\r
-\r
-\r
-/**\r
-   Updates the Stack HOB passed to DXE phase.\r
-\r
-   This function traverses the whole HOB list and update the stack HOB to\r
-   reflect the real stack that is used by DXE core.\r
-\r
-   @param[in] BaseAddress           The lower address of stack used by DxeCore.\r
-   @param[in] Length                The length of stack used by DxeCore.\r
-\r
-**/\r
-VOID\r
-UpdateStackHob (\r
-  IN EFI_PHYSICAL_ADDRESS        BaseAddress,\r
-  IN UINT64                      Length\r
-  );\r
-\r
-/**\r
-  The ExtractSection() function processes the input section and\r
-  returns a pointer to the section contents. If the section being\r
-  extracted does not require processing (if the section\r
-  GuidedSectionHeader.Attributes has the\r
-  EFI_GUIDED_SECTION_PROCESSING_REQUIRED field cleared), then\r
-  OutputBuffer is just updated to point to the start of the\r
-  section's contents. Otherwise, *Buffer must be allocated\r
-  from PEI permanent memory.\r
-\r
-  @param[in]  This                   Indicates the\r
-                                     EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI instance.\r
-                                     Buffer containing the input GUIDed section to be\r
-                                     processed. OutputBuffer OutputBuffer is\r
-                                     allocated from PEI permanent memory and contains\r
-                                     the new section stream.\r
-  @param[in]  InputSection           A pointer to the input buffer, which contains\r
-                                     the input section to be processed.\r
-  @param[out] OutputBuffer           A pointer to a caller-allocated buffer, whose\r
-                                     size is specified by the contents of OutputSize.\r
-  @param[out] OutputSize             A pointer to a caller-allocated\r
-                                     UINTN in which the size of *OutputBuffer\r
-                                     allocation is stored. If the function\r
-                                     returns anything other than EFI_SUCCESS,\r
-                                     the value of OutputSize is undefined.\r
-  @param[out] AuthenticationStatus   A pointer to a caller-allocated\r
-                                     UINT32 that indicates the\r
-                                     authentication status of the\r
-                                     output buffer. If the input\r
-                                     section's GuidedSectionHeader.\r
-                                     Attributes field has the\r
-                                     EFI_GUIDED_SECTION_AUTH_STATUS_VALID\r
-                                     bit as clear,\r
-                                     AuthenticationStatus must return\r
-                                     zero. These bits reflect the\r
-                                     status of the extraction\r
-                                     operation. If the function\r
-                                     returns anything other than\r
-                                     EFI_SUCCESS, the value of\r
-                                     AuthenticationStatus is\r
-                                     undefined.\r
-\r
-  @retval EFI_SUCCESS           The InputSection was\r
-                                successfully processed and the\r
-                                section contents were returned.\r
-\r
-  @retval EFI_OUT_OF_RESOURCES  The system has insufficient\r
-                                resources to process the request.\r
-\r
-  @retval EFI_INVALID_PARAMETER The GUID in InputSection does\r
-                                not match this instance of the\r
-                                GUIDed Section Extraction PPI.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-CustomGuidedSectionExtract (\r
-  IN CONST  EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,\r
-  IN CONST  VOID                                  *InputSection,\r
-  OUT       VOID                                  **OutputBuffer,\r
-  OUT       UINTN                                 *OutputSize,\r
-  OUT       UINT32                                *AuthenticationStatus\r
-  );\r
-\r
-/**\r
-   Decompresses a section to the output buffer.\r
-\r
-   This function looks up the compression type field in the input section and\r
-   applies the appropriate compression algorithm to compress the section to a\r
-   callee allocated buffer.\r
-\r
-   @param[in]  This                  Points to this instance of the\r
-                                     EFI_PEI_DECOMPRESS_PEI PPI.\r
-   @param[in]  CompressionSection    Points to the compressed section.\r
-   @param[out] OutputBuffer          Holds the returned pointer to the decompressed\r
-                                     sections.\r
-   @param[out] OutputSize            Holds the returned size of the decompress\r
-                                     section streams.\r
-\r
-   @retval EFI_SUCCESS           The section was decompressed successfully.\r
-                                 OutputBuffer contains the resulting data and\r
-                                 OutputSize contains the resulting size.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-Decompress (\r
-  IN CONST  EFI_PEI_DECOMPRESS_PPI  *This,\r
-  IN CONST  EFI_COMPRESSION_SECTION *CompressionSection,\r
-  OUT       VOID                    **OutputBuffer,\r
-  OUT       UINTN                   *OutputSize\r
-  );\r
-\r
-#endif\r
diff --git a/IntelFspPkg/FspDxeIpl/FspDxeIpl.inf b/IntelFspPkg/FspDxeIpl/FspDxeIpl.inf
deleted file mode 100644 (file)
index 0310431..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-## @file\r
-#  PEIM for DXE IPL\r
-#\r
-#  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = FspDxeIpl\r
-  FILE_GUID                      = 98C8588C-640A-4bb4-AEA0-3F81CDE17524\r
-  MODULE_TYPE                    = PEIM\r
-  VERSION_STRING                 = 1.0\r
-  ENTRY_POINT                    = PeimInitializeDxeIpl\r
-\r
-#\r
-# The following information is for reference only and not required by the build tools.\r
-#\r
-#  VALID_ARCHITECTURES           = IA32\r
-#\r
-\r
-[Sources]\r
-  DxeIpl.h\r
-  DxeIpl.c\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  IntelFspPkg/IntelFspPkg.dec\r
-\r
-[LibraryClasses]\r
-  PcdLib\r
-  MemoryAllocationLib\r
-  BaseMemoryLib\r
-  ExtractGuidedSectionLib\r
-  UefiDecompressLib\r
-  ReportStatusCodeLib\r
-  PeiServicesLib\r
-  HobLib\r
-  BaseLib\r
-  PeimEntryPoint\r
-  DebugLib\r
-  FspSwitchStackLib\r
-  UefiDecompressLib\r
-  FspCommonLib\r
-  FspPlatformLib\r
-\r
-[Ppis]\r
-  gEfiDxeIplPpiGuid                       ## PRODUCES\r
-  gEfiEndOfPeiSignalPpiGuid               ## SOMETIMES_PRODUCES(Not produced on S3 boot path)\r
-  gEfiPeiDecompressPpiGuid                ## CONSUMES\r
-\r
-[Protocols]\r
-  gEfiPciEnumerationCompleteProtocolGuid  ## PRODUCES\r
-\r
-[Guids]\r
-  gEfiEventReadyToBootGuid                ## PRODUCES ## Event\r
-\r
-[FixedPcd]\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPatchEntry    ## CONSUMES \r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPerfEntry     ## CONSUMES  \r
-\r
-[Depex]\r
-  gEfiPeiMemoryDiscoveredPpiGuid AND gEfiPeiLoadFilePpiGuid\r
diff --git a/IntelFspPkg/FspSecCore/FspSecCore.inf b/IntelFspPkg/FspSecCore/FspSecCore.inf
deleted file mode 100644 (file)
index ec0aaa6..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-## @file\r
-#  Sec Core for FSP\r
-#\r
-#  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = FspSecCore\r
-  FILE_GUID                      = 1BA0062E-C779-4582-8566-336AE8F78F09\r
-  MODULE_TYPE                    = SEC\r
-  VERSION_STRING                 = 1.0\r
-\r
-#\r
-# The following information is for reference only and not required by the build tools.\r
-#\r
-#  VALID_ARCHITECTURES           = IA32\r
-#\r
-\r
-[Sources]\r
-  SecMain.c\r
-  SecMain.h\r
-  SecFsp.c\r
-  SecFsp.h\r
-\r
-[Sources.IA32]\r
-  Ia32/ResetVec.asm16 | MSFT\r
-  Ia32/Stack.asm  | MSFT\r
-  Ia32/InitializeFpu.asm  | MSFT\r
-  Ia32/FspApiEntry.asm  | MSFT\r
-  Ia32/FspHelper.asm  | MSFT\r
-\r
-  Ia32/Stacks.s | GCC\r
-  Ia32/InitializeFpu.s | GCC\r
-  Ia32/FspApiEntry.s | GCC\r
-  Ia32/FspHelper.s | GCC\r
-\r
-[Binaries.Ia32]\r
-  RAW|Vtf0/Bin/ResetVec.ia32.raw |GCC\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  IntelFspPkg/IntelFspPkg.dec\r
-\r
-[LibraryClasses]\r
-  BaseMemoryLib\r
-  DebugLib\r
-  BaseLib\r
-  PciCf8Lib\r
-  SerialPortLib\r
-  FspSwitchStackLib\r
-  FspCommonLib\r
-  FspSecPlatformLib\r
-\r
-[Pcd]\r
-  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress           ## UNDEFINED\r
-  gIntelFspPkgTokenSpaceGuid.PcdGlobalDataPointerAddress      ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdTemporaryRamBase              ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdTemporaryRamSize              ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspTemporaryRamSize           ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspBootFirmwareVolumeBase     ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspAreaBaseAddress            ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspAreaSize                   ## CONSUMES\r
-\r
-[FixedPcd]\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPatchEntry              ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPerfEntry               ## CONSUMES\r
-\r
-[Ppis]\r
-  gEfiTemporaryRamSupportPpiGuid                ## PRODUCES \r
-\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.asm b/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.asm
deleted file mode 100644 (file)
index f425ede..0000000
+++ /dev/null
@@ -1,595 +0,0 @@
-;; @file\r
-;  Provide FSP API entry points.\r
-;\r
-; Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;;\r
-\r
-    .586p\r
-    .model  flat,C\r
-    .code\r
-    .xmm\r
-\r
-INCLUDE    SaveRestoreSse.inc\r
-INCLUDE    MicrocodeLoad.inc\r
-\r
-;\r
-; Following are fixed PCDs\r
-;\r
-EXTERN   PcdGet32(PcdTemporaryRamBase):DWORD\r
-EXTERN   PcdGet32(PcdTemporaryRamSize):DWORD\r
-EXTERN   PcdGet32(PcdFspTemporaryRamSize):DWORD\r
-EXTERN   PcdGet32(PcdFspAreaSize):DWORD\r
-\r
-;\r
-; Following functions will be provided in C\r
-;\r
-\r
-EXTERN   SecStartup:PROC\r
-EXTERN   FspApiCallingCheck:PROC\r
-\r
-;\r
-; Following functions will be provided in PlatformSecLib\r
-;\r
-EXTERN   AsmGetFspBaseAddress:PROC\r
-EXTERN   AsmGetFspInfoHeader:PROC\r
-EXTERN   GetBootFirmwareVolumeOffset:PROC\r
-EXTERN   Loader2PeiSwitchStack:PROC\r
-EXTERN   LoadMicrocode(LoadMicrocodeDefault):PROC\r
-EXTERN   SecPlatformInit(SecPlatformInitDefault):PROC\r
-EXTERN   SecCarInit:PROC\r
-\r
-;\r
-; Define the data length that we saved on the stack top\r
-;\r
-DATA_LEN_OF_PER0         EQU   18h\r
-DATA_LEN_OF_MCUD         EQU   18h\r
-DATA_LEN_AT_STACK_TOP    EQU   (DATA_LEN_OF_PER0 + DATA_LEN_OF_MCUD + 4)\r
-\r
-;\r
-; Define SSE macros\r
-;\r
-LOAD_MMX_EXT MACRO   ReturnAddress, MmxRegister\r
-  mov     esi, ReturnAddress\r
-  movd    MmxRegister, esi              ; save ReturnAddress into MMX\r
-ENDM\r
-\r
-CALL_MMX_EXT MACRO   RoutineLabel, MmxRegister\r
-  local   ReturnAddress\r
-  mov     esi, offset ReturnAddress\r
-  movd    MmxRegister, esi              ; save ReturnAddress into MMX\r
-  jmp     RoutineLabel\r
-ReturnAddress:\r
-ENDM\r
-\r
-RET_ESI_EXT  MACRO   MmxRegister\r
-  movd    esi, MmxRegister              ; move ReturnAddress from MMX to ESI\r
-  jmp     esi\r
-ENDM\r
-\r
-CALL_MMX MACRO   RoutineLabel\r
-         CALL_MMX_EXT  RoutineLabel, mm7\r
-ENDM\r
-\r
-RET_ESI  MACRO\r
-         RET_ESI_EXT   mm7\r
-ENDM\r
-\r
-;------------------------------------------------------------------------------\r
-SecPlatformInitDefault PROC NEAR PUBLIC\r
-   ; Inputs:\r
-   ;   mm7 -> Return address\r
-   ; Outputs:\r
-   ;   eax -> 0 - Successful, Non-zero - Failed.\r
-   ; Register Usage:\r
-   ;   eax is cleared and ebp is used for return address.\r
-   ;   All others reserved.\r
-   \r
-   ; Save return address to EBP\r
-   movd  ebp, mm7\r
-\r
-   xor   eax, eax\r
-exit:\r
-   jmp   ebp\r
-SecPlatformInitDefault   ENDP\r
-\r
-;------------------------------------------------------------------------------\r
-LoadMicrocodeDefault   PROC  NEAR PUBLIC\r
-   ; Inputs:\r
-   ;   esp -> LoadMicrocodeParams pointer\r
-   ; Register Usage:\r
-   ;   esp  Preserved\r
-   ;   All others destroyed\r
-   ; Assumptions:\r
-   ;   No memory available, stack is hard-coded and used for return address\r
-   ;   Executed by SBSP and NBSP\r
-   ;   Beginning of microcode update region starts on paragraph boundary\r
-\r
-   ;\r
-   ;\r
-   ; Save return address to EBP\r
-   movd   ebp, mm7\r
-\r
-   cmp    esp, 0\r
-   jz     paramerror\r
-   mov    eax, dword ptr [esp + 4]    ; Parameter pointer\r
-   cmp    eax, 0\r
-   jz     paramerror\r
-   mov    esp, eax\r
-   mov    esi, [esp].LoadMicrocodeParams.MicrocodeCodeAddr\r
-   cmp    esi, 0\r
-   jnz    check_main_header\r
-\r
-paramerror:\r
-   mov    eax, 080000002h\r
-   jmp    exit\r
-\r
-   mov    esi, [esp].LoadMicrocodeParams.MicrocodeCodeAddr\r
-\r
-check_main_header:\r
-   ; Get processor signature and platform ID from the installed processor\r
-   ; and save into registers for later use\r
-   ; ebx = processor signature\r
-   ; edx = platform ID\r
-   mov   eax, 1\r
-   cpuid\r
-   mov   ebx, eax\r
-   mov   ecx, MSR_IA32_PLATFORM_ID\r
-   rdmsr\r
-   mov   ecx, edx\r
-   shr   ecx, 50-32                          ; shift (50d-32d=18d=0x12) bits\r
-   and   ecx, 7h                             ; platform id at bit[52..50]\r
-   mov   edx, 1\r
-   shl   edx, cl\r
-\r
-   ; Current register usage\r
-   ; esp -> stack with paramters\r
-   ; esi -> microcode update to check\r
-   ; ebx = processor signature\r
-   ; edx = platform ID\r
-\r
-   ; Check for valid microcode header\r
-   ; Minimal test checking for header version and loader version as 1\r
-   mov   eax, dword ptr 1\r
-   cmp   [esi].MicrocodeHdr.MicrocodeHdrVersion, eax\r
-   jne   advance_fixed_size\r
-   cmp   [esi].MicrocodeHdr.MicrocodeHdrLoader, eax\r
-   jne   advance_fixed_size\r
-\r
-   ; Check if signature and plaform ID match\r
-   cmp   ebx, [esi].MicrocodeHdr.MicrocodeHdrProcessor\r
-   jne   @f\r
-   test  edx, [esi].MicrocodeHdr.MicrocodeHdrFlags\r
-   jnz   load_check  ; Jif signature and platform ID match\r
-\r
-@@:\r
-   ; Check if extended header exists\r
-   ; First check if MicrocodeHdrTotalSize and MicrocodeHdrDataSize are valid\r
-   xor   eax, eax\r
-   cmp   [esi].MicrocodeHdr.MicrocodeHdrTotalSize, eax\r
-   je    next_microcode\r
-   cmp   [esi].MicrocodeHdr.MicrocodeHdrDataSize, eax\r
-   je    next_microcode\r
-\r
-   ; Then verify total size - sizeof header > data size\r
-   mov   ecx, [esi].MicrocodeHdr.MicrocodeHdrTotalSize\r
-   sub   ecx, sizeof MicrocodeHdr\r
-   cmp   ecx, [esi].MicrocodeHdr.MicrocodeHdrDataSize\r
-   jng   next_microcode    ; Jif extended header does not exist\r
-\r
-   ; Set edi -> extended header\r
-   mov   edi, esi\r
-   add   edi, sizeof MicrocodeHdr\r
-   add   edi, [esi].MicrocodeHdr.MicrocodeHdrDataSize\r
-\r
-   ; Get count of extended structures\r
-   mov   ecx, [edi].ExtSigHdr.ExtSigHdrCount\r
-\r
-   ; Move pointer to first signature structure\r
-   add   edi, sizeof ExtSigHdr\r
-\r
-check_ext_sig:\r
-   ; Check if extended signature and platform ID match\r
-   cmp   [edi].ExtSig.ExtSigProcessor, ebx\r
-   jne   @f\r
-   test  [edi].ExtSig.ExtSigFlags, edx\r
-   jnz   load_check     ; Jif signature and platform ID match\r
-@@:\r
-   ; Check if any more extended signatures exist\r
-   add   edi, sizeof ExtSig\r
-   loop  check_ext_sig\r
-\r
-next_microcode:\r
-   ; Advance just after end of this microcode\r
-   xor   eax, eax\r
-   cmp   [esi].MicrocodeHdr.MicrocodeHdrTotalSize, eax\r
-   je    @f\r
-   add   esi, [esi].MicrocodeHdr.MicrocodeHdrTotalSize\r
-   jmp   check_address\r
-@@:\r
-   add   esi, dword ptr 2048\r
-   jmp   check_address\r
-\r
-advance_fixed_size:\r
-   ; Advance by 4X dwords\r
-   add   esi, dword ptr 1024\r
-\r
-check_address:\r
-   ; Is valid Microcode start point ?\r
-   cmp   dword ptr [esi].MicrocodeHdr.MicrocodeHdrVersion, 0ffffffffh\r
-   jz    done\r
-\r
-   ; Is automatic size detection ?\r
-   mov   eax, [esp].LoadMicrocodeParams.MicrocodeCodeSize\r
-   cmp   eax, 0ffffffffh\r
-   jz    @f\r
-\r
-   ; Address >= microcode region address + microcode region size?\r
-   add   eax, [esp].LoadMicrocodeParams.MicrocodeCodeAddr\r
-   cmp   esi, eax\r
-   jae   done        ;Jif address is outside of microcode region\r
-   jmp   check_main_header\r
-\r
-@@:\r
-load_check:\r
-   ; Get the revision of the current microcode update loaded\r
-   mov   ecx, MSR_IA32_BIOS_SIGN_ID\r
-   xor   eax, eax               ; Clear EAX\r
-   xor   edx, edx               ; Clear EDX\r
-   wrmsr                        ; Load 0 to MSR at 8Bh\r
-\r
-   mov   eax, 1\r
-   cpuid\r
-   mov   ecx, MSR_IA32_BIOS_SIGN_ID\r
-   rdmsr                         ; Get current microcode signature\r
-\r
-   ; Verify this microcode update is not already loaded\r
-   cmp   [esi].MicrocodeHdr.MicrocodeHdrRevision, edx\r
-   je    continue\r
-\r
-load_microcode:\r
-   ; EAX contains the linear address of the start of the Update Data\r
-   ; EDX contains zero\r
-   ; ECX contains 79h (IA32_BIOS_UPDT_TRIG)\r
-   ; Start microcode load with wrmsr\r
-   mov   eax, esi\r
-   add   eax, sizeof MicrocodeHdr\r
-   xor   edx, edx\r
-   mov   ecx, MSR_IA32_BIOS_UPDT_TRIG\r
-   wrmsr\r
-   mov   eax, 1\r
-   cpuid\r
-\r
-continue:\r
-   jmp   next_microcode\r
-\r
-done:\r
-   mov   eax, 1\r
-   cpuid\r
-   mov   ecx, MSR_IA32_BIOS_SIGN_ID\r
-   rdmsr                         ; Get current microcode signature\r
-   xor   eax, eax\r
-   cmp   edx, 0\r
-   jnz   exit\r
-   mov   eax, 08000000Eh\r
-\r
-exit:\r
-   jmp   ebp\r
-\r
-LoadMicrocodeDefault   ENDP\r
-\r
-EstablishStackFsp    PROC    NEAR    PRIVATE\r
-  ;\r
-  ; Save parameter pointer in edx\r
-  ;\r
-  mov       edx, dword ptr [esp + 4]\r
-\r
-  ;\r
-  ; Enable FSP STACK\r
-  ;\r
-  mov       esp, PcdGet32 (PcdTemporaryRamBase)\r
-  add       esp, PcdGet32 (PcdTemporaryRamSize)\r
-\r
-  push      DATA_LEN_OF_MCUD     ; Size of the data region\r
-  push      4455434Dh            ; Signature of the  data region 'MCUD'\r
-  push      dword ptr [edx + 12] ; Code size\r
-  push      dword ptr [edx + 8]  ; Code base\r
-  push      dword ptr [edx + 4]  ; Microcode size\r
-  push      dword ptr [edx]      ; Microcode base\r
-\r
-  ;\r
-  ; Save API entry/exit timestamp into stack\r
-  ;\r
-  push      DATA_LEN_OF_PER0     ; Size of the data region \r
-  push      30524550h            ; Signature of the  data region 'PER0'\r
-  LOAD_EDX\r
-  push      edx\r
-  LOAD_EAX\r
-  push      eax\r
-  rdtsc\r
-  push      edx\r
-  push      eax\r
-\r
-  ;\r
-  ; Terminator for the data on stack\r
-  ; \r
-  push      0\r
-\r
-  ;\r
-  ; Set ECX/EDX to the BootLoader temporary memory range\r
-  ;\r
-  mov       ecx, PcdGet32 (PcdTemporaryRamBase)\r
-  mov       edx, ecx\r
-  add       edx, PcdGet32 (PcdTemporaryRamSize)\r
-  sub       edx, PcdGet32 (PcdFspTemporaryRamSize)\r
-\r
-  xor       eax, eax\r
-\r
-  RET_ESI\r
-\r
-EstablishStackFsp    ENDP\r
-\r
-\r
-;----------------------------------------------------------------------------\r
-; TempRamInit API\r
-;\r
-; This FSP API will load the microcode update, enable code caching for the\r
-; region specified by the boot loader and also setup a temporary stack to be\r
-; used till main memory is initialized.\r
-;\r
-;----------------------------------------------------------------------------\r
-TempRamInitApi   PROC    NEAR    PUBLIC\r
-  ;\r
-  ; Ensure SSE is enabled\r
-  ;\r
-  ENABLE_SSE\r
-\r
-  ;\r
-  ; Save EBP, EBX, ESI, EDI & ESP in XMM7 & XMM6\r
-  ;\r
-  SAVE_REGS\r
-\r
-  ;\r
-  ; Save timestamp into XMM6\r
-  ;\r
-  rdtsc\r
-  SAVE_EAX\r
-  SAVE_EDX\r
-\r
-  ;\r
-  ; Check Parameter\r
-  ;\r
-  mov       eax, dword ptr [esp + 4]\r
-  cmp       eax, 0\r
-  mov       eax, 80000002h\r
-  jz        TempRamInitExit\r
-\r
-  ;\r
-  ; Sec Platform Init\r
-  ;\r
-  CALL_MMX  SecPlatformInit\r
-  cmp       eax, 0\r
-  jnz       TempRamInitExit\r
-\r
-  ; Load microcode\r
-  LOAD_ESP\r
-  CALL_MMX  LoadMicrocode\r
-  SXMMN     xmm6, 3, eax            ;Save microcode return status in ECX-SLOT 3 in xmm6.\r
-  ;@note If return value eax is not 0, microcode did not load, but continue and attempt to boot.\r
-\r
-  ; Call Sec CAR Init\r
-  LOAD_ESP\r
-  CALL_MMX  SecCarInit\r
-  cmp       eax, 0\r
-  jnz       TempRamInitExit\r
-\r
-  LOAD_ESP\r
-  CALL_MMX  EstablishStackFsp\r
-\r
-  LXMMN      xmm6, eax, 3  ;Restore microcode status if no CAR init error from ECX-SLOT 3 in xmm6.\r
-\r
-TempRamInitExit:\r
-  ;\r
-  ; Load EBP, EBX, ESI, EDI & ESP from XMM7 & XMM6\r
-  ;\r
-  LOAD_REGS\r
-  ret\r
-TempRamInitApi   ENDP\r
-\r
-;----------------------------------------------------------------------------\r
-; FspInit API\r
-;\r
-; This FSP API will perform the processor and chipset initialization.\r
-; This API will not return.  Instead, it transfers the control to the\r
-; ContinuationFunc provided in the parameter.\r
-;\r
-;----------------------------------------------------------------------------\r
-FspInitApi   PROC    NEAR    PUBLIC\r
-  mov    eax,  1\r
-  jmp    FspApiCommon\r
-  FspInitApi   ENDP\r
-\r
-;----------------------------------------------------------------------------\r
-; NotifyPhase API\r
-;\r
-; This FSP API will notify the FSP about the different phases in the boot\r
-; process\r
-;\r
-;----------------------------------------------------------------------------\r
-NotifyPhaseApi   PROC C PUBLIC\r
-  mov    eax,  2\r
-  jmp    FspApiCommon\r
-NotifyPhaseApi   ENDP\r
-\r
-;----------------------------------------------------------------------------\r
-; FspMemoryInit API\r
-;\r
-; This FSP API is called after TempRamInit and initializes the memory.\r
-;\r
-;----------------------------------------------------------------------------\r
-FspMemoryInitApi   PROC    NEAR    PUBLIC\r
-  mov    eax,  3\r
-  jmp    FspApiCommon\r
-FspMemoryInitApi   ENDP\r
-\r
-\r
-;----------------------------------------------------------------------------\r
-; TempRamExitApi API\r
-;\r
-; This API tears down temporary RAM\r
-;\r
-;----------------------------------------------------------------------------\r
-TempRamExitApi   PROC C PUBLIC\r
-  mov    eax,  4\r
-  jmp    FspApiCommon\r
-TempRamExitApi   ENDP\r
-\r
-\r
-;----------------------------------------------------------------------------\r
-; FspSiliconInit API\r
-;\r
-; This FSP API initializes the CPU and the chipset including the IO\r
-; controllers in the chipset to enable normal operation of these devices.\r
-;\r
-;----------------------------------------------------------------------------\r
-FspSiliconInitApi   PROC C PUBLIC\r
-  mov    eax,  5\r
-  jmp    FspApiCommon\r
-FspSiliconInitApi   ENDP\r
-\r
-;----------------------------------------------------------------------------\r
-; FspApiCommon API\r
-;\r
-; This is the FSP API common entry point to resume the FSP execution\r
-;\r
-;----------------------------------------------------------------------------\r
-FspApiCommon   PROC C PUBLIC\r
-  ;\r
-  ; EAX holds the API index\r
-  ;\r
-\r
-  ;\r
-  ; Stack must be ready\r
-  ;  \r
-  push   eax\r
-  add    esp, 4\r
-  cmp    eax, dword ptr [esp - 4]\r
-  jz     @F\r
-  mov    eax, 080000003h\r
-  jmp    exit\r
-\r
-@@:\r
-  ;\r
-  ; Verify the calling condition\r
-  ;\r
-  pushad\r
-  push   [esp + 4 * 8 + 4]  ; push ApiParam\r
-  push   eax                ; push ApiIdx\r
-  call   FspApiCallingCheck\r
-  add    esp, 8\r
-  cmp    eax, 0\r
-  jz     @F\r
-  mov    dword ptr [esp + 4 * 7], eax\r
-  popad\r
-  ret\r
-\r
-@@:\r
-  popad\r
-  cmp    eax, 1   ; FspInit API\r
-  jz     @F\r
-  cmp    eax, 3   ; FspMemoryInit API\r
-  jz     @F\r
-\r
-  call   AsmGetFspInfoHeader\r
-  jmp    Loader2PeiSwitchStack\r
-\r
-@@:\r
-  ;\r
-  ; FspInit and FspMemoryInit APIs, setup the initial stack frame\r
-  ;\r
-  \r
-  ;\r
-  ; Place holder to store the FspInfoHeader pointer\r
-  ;\r
-  push   eax\r
-\r
-  ;\r
-  ; Update the FspInfoHeader pointer\r
-  ;\r
-  push   eax\r
-  call   AsmGetFspInfoHeader\r
-  mov    [esp + 4], eax\r
-  pop    eax\r
-\r
-  ;\r
-  ; Create a Task Frame in the stack for the Boot Loader\r
-  ;\r
-  pushfd     ; 2 pushf for 4 byte alignment\r
-  cli\r
-  pushad\r
-\r
-  ; Reserve 8 bytes for IDT save/restore\r
-  sub     esp, 8\r
-  sidt    fword ptr [esp]\r
-\r
-  ;\r
-  ; Setup new FSP stack\r
-  ;\r
-  mov     edi, esp\r
-  mov     esp, PcdGet32(PcdTemporaryRamBase)\r
-  add     esp, PcdGet32(PcdTemporaryRamSize)\r
-  sub     esp, (DATA_LEN_AT_STACK_TOP + 40h)\r
-\r
-  ;\r
-  ; Pass the API Idx to SecStartup\r
-  ;\r
-  push    eax\r
-  \r
-  ;\r
-  ; Pass the BootLoader stack to SecStartup\r
-  ;\r
-  push    edi\r
-\r
-  ;\r
-  ; Pass entry point of the PEI core\r
-  ;\r
-  call    AsmGetFspBaseAddress\r
-  mov     edi, eax\r
-  add     edi, PcdGet32 (PcdFspAreaSize) \r
-  sub     edi, 20h\r
-  add     eax, DWORD PTR ds:[edi]\r
-  push    eax\r
-\r
-  ;\r
-  ; Pass BFV into the PEI Core\r
-  ; It uses relative address to calucate the actual boot FV base\r
-  ; For FSP implementation with single FV, PcdFspBootFirmwareVolumeBase and\r
-  ; PcdFspAreaBaseAddress are the same. For FSP with mulitple FVs,\r
-  ; they are different. The code below can handle both cases.\r
-  ;\r
-  call    AsmGetFspBaseAddress\r
-  mov     edi, eax\r
-  call    GetBootFirmwareVolumeOffset\r
-  add     eax, edi\r
-  push    eax\r
-\r
-  ;\r
-  ; Pass stack base and size into the PEI Core\r
-  ;\r
-  mov     eax,  PcdGet32(PcdTemporaryRamBase)\r
-  add     eax,  PcdGet32(PcdTemporaryRamSize)\r
-  sub     eax,  PcdGet32(PcdFspTemporaryRamSize)\r
-  push    eax\r
-  push    PcdGet32(PcdFspTemporaryRamSize)\r
-\r
-  ;\r
-  ; Pass Control into the PEI Core\r
-  ;\r
-  call    SecStartup\r
-  add     esp, 4\r
-exit:\r
-  ret\r
-\r
-FspApiCommon   ENDP\r
-\r
-END\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.s b/IntelFspPkg/FspSecCore/Ia32/FspApiEntry.s
deleted file mode 100644 (file)
index 08fa08f..0000000
+++ /dev/null
@@ -1,807 +0,0 @@
-#------------------------------------------------------------------------------\r
-#\r
-# Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-# SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-# Abstract:\r
-#\r
-#   Provide FSP API entry points.\r
-#\r
-#------------------------------------------------------------------------------\r
-\r
-\r
-.equ MSR_IA32_PLATFORM_ID,                   0x00000017\r
-.equ MSR_IA32_BIOS_UPDT_TRIG,                0x00000079\r
-.equ MSR_IA32_BIOS_SIGN_ID,                  0x0000008b\r
-\r
-\r
-MicrocodeHdr:\r
-.equ        MicrocodeHdrVersion,                 0x0000\r
-.equ        MicrocodeHdrRevision,                0x0004\r
-.equ        MicrocodeHdrDate,                    0x0008\r
-.equ        MicrocodeHdrProcessor,               0x000c\r
-.equ        MicrocodeHdrChecksum,                0x0010\r
-.equ        MicrocodeHdrLoader,                  0x0014\r
-.equ        MicrocodeHdrFlags,                   0x0018\r
-.equ        MicrocodeHdrDataSize,                0x001C\r
-.equ        MicrocodeHdrTotalSize,               0x0020\r
-.equ        MicrocodeHdrRsvd,                    0x0024\r
-MicrocodeHdrEnd:\r
-.equ        MicrocodeHdrLength,                  0x0030  # MicrocodeHdrLength = MicrocodeHdrEnd - MicrocodeHdr\r
-\r
-\r
-ExtSigHdr:\r
-.equ        ExtSigHdrCount,                  0x0000\r
-.equ        ExtSigHdrChecksum,               0x0004\r
-.equ        ExtSigHdrRsvd,                   0x0008\r
-ExtSigHdrEnd:\r
-.equ        ExtSigHdrLength,                 0x0014  #ExtSigHdrLength = ExtSigHdrEnd - ExtSigHdr\r
-\r
-ExtSig:\r
-.equ        ExtSigProcessor,                 0x0000\r
-.equ        ExtSigFlags,                     0x0004\r
-.equ        ExtSigChecksum,                  0x0008\r
-ExtSigEnd:\r
-.equ        ExtSigLength,                    0x000C  #ExtSigLength = ExtSigEnd - ExtSig\r
-\r
-LoadMicrocodeParams:\r
-.equ        MicrocodeCodeAddr,               0x0000\r
-.equ        MicrocodeCodeSize,               0x0004\r
-LoadMicrocodeParamsEnd:\r
-\r
-\r
-\r
-.macro SAVE_REGS\r
-  pinsrw     $0x00, %ebp, %xmm7\r
-  ror        $0x10, %ebp\r
-  pinsrw     $0x01, %ebp, %xmm7\r
-  ror        $0x10, %ebp\r
-#\r
-  pinsrw     $0x02, %ebx, %xmm7\r
-  ror        $0x10, %ebx\r
-  pinsrw     $0x03, %ebx, %xmm7\r
-  ror        $0x10, %ebx\r
-#\r
-  pinsrw     $0x04, %esi, %xmm7\r
-  ror        $0x10, %esi\r
-  pinsrw     $0x05, %esi, %xmm7\r
-  ror        $0x10, %esi\r
-#\r
-  pinsrw     $0x06, %edi, %xmm7\r
-  ror        $0x10, %edi\r
-  pinsrw     $0x07, %edi, %xmm7\r
-  ror        $0x10, %edi\r
-#\r
-  pinsrw     $0x00, %esp, %xmm6\r
-  ror        $0x10, %esp\r
-  pinsrw     $0x01, %esp, %xmm6\r
-  ror        $0x10, %esp\r
-.endm\r
-\r
-.macro LOAD_REGS\r
-  pshufd     $0xe4, %xmm7, %xmm7\r
-  movd       %xmm7, %ebp \r
-  pshufd     $0xe4, %xmm7, %xmm7\r
-#\r
-  pshufd     $0x39, %xmm7, %xmm7\r
-  movd       %xmm7, %ebx\r
-  pshufd     $0x93, %xmm7, %xmm7\r
-#\r
-  pshufd     $0x4e, %xmm7, %xmm7\r
-  movd       %xmm7, %esi\r
-  pshufd     $0x4e, %xmm7, %xmm7\r
-#\r
-  pshufd     $0x93, %xmm7, %xmm7\r
-  movd       %xmm7, %edi\r
-  pshufd     $0x39, %xmm7, %xmm7\r
-#\r
-  movd       %xmm6, %esp\r
-.endm\r
-\r
-.macro LOAD_EAX\r
-  pshufd     $0x39, %xmm6, %xmm6\r
-  movd       %xmm6, %eax\r
-  pshufd     $0x93, %xmm6, %xmm6\r
-.endm\r
-\r
-.macro LOAD_EDX\r
-  pshufd     $0xe4, %xmm6, %xmm6\r
-  movd       %xmm6, %edx\r
-  pshufd     $0xe4, %xmm6, %xmm6\r
-.endm\r
-\r
-.macro SAVE_EAX\r
-  pinsrw     $0x02, %eax, %xmm6\r
-  ror        $0x10, %eax\r
-  pinsrw     $0x03, %eax, %xmm6\r
-  ror        $0x10, %eax\r
-.endm\r
-\r
-.macro SAVE_EDX\r
-  pinsrw     $0x04, %edx, %xmm6\r
-  ror        $0x10, %edx\r
-  pinsrw     $0x05, %edx, %xmm6\r
-  ror        $0x10, %edx\r
-.endm\r
-\r
-.macro LOAD_ESP\r
-  movd       %xmm6, %esp\r
-.endm\r
-\r
-.macro ENABLE_SSE\r
-    jmp     NextAddress\r
-.align 4\r
-    #\r
-    # Float control word initial value:\r
-    # all exceptions masked, double-precision, round-to-nearest\r
-    #\r
-ASM_PFX(mFpuControlWord): .word     0x027F\r
-    #\r
-    # Multimedia-extensions control word:\r
-    # all exceptions masked, round-to-nearest, flush to zero for masked underflow\r
-    #\r
-ASM_PFX(mMmxControlWord): .long     0x01F80\r
-SseError:      \r
-    #\r
-    # Processor has to support SSE\r
-    #\r
-    jmp     SseError      \r
-NextAddress:            \r
-    #\r
-    # Initialize floating point units\r
-    #\r
-    finit\r
-    fldcw   ASM_PFX(mFpuControlWord)\r
-\r
-    #\r
-    # Use CpuId instructuion (CPUID.01H:EDX.SSE[bit 25] = 1) to test\r
-    # whether the processor supports SSE instruction.\r
-    #\r
-    movl    $1,  %eax\r
-    cpuid\r
-    btl     $25, %edx\r
-    jnc     SseError\r
-\r
-    #\r
-    # Set OSFXSR bit (bit #9) & OSXMMEXCPT bit (bit #10)\r
-    #\r
-    movl    %cr4, %eax\r
-    orl     $BIT9, %eax\r
-    movl    %eax, %cr4\r
-\r
-    #\r
-    # The processor should support SSE instruction and we can use\r
-    # ldmxcsr instruction\r
-    #\r
-    ldmxcsr ASM_PFX(mMmxControlWord)\r
-.endm\r
-\r
-#Save in ECX-SLOT 3 in xmm6.\r
-.macro SAVE_EAX_MICROCODE_RET_STATUS\r
-  pinsrw     $0x6, %eax, %xmm6\r
-  ror        $0x10, %eax\r
-  pinsrw     $0x7, %eax, %xmm6\r
-  rol        $0x10, %eax\r
-.endm\r
-\r
-#Restore from ECX-SLOT 3 in xmm6.\r
-.macro LOAD_EAX_MICROCODE_RET_STATUS\r
-  pshufd     $0x93, %xmm6, %xmm6\r
-  movd       %xmm6, %eax\r
-  pshufd     $0x39, %xmm6, %xmm6\r
-.endm\r
-\r
-\r
-\r
-#\r
-# Following are fixed PCDs\r
-#\r
-ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdTemporaryRamBase)\r
-ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdTemporaryRamSize)\r
-ASM_GLOBAL    ASM_PFX(_gPcd_FixedAtBuild_PcdFspTemporaryRamSize)\r
-\r
-#\r
-# Following functions will be provided in C\r
-#\r
-ASM_GLOBAL    ASM_PFX(SecStartup)\r
-ASM_GLOBAL    ASM_PFX(FspApiCallingCheck)\r
-\r
-#\r
-# Following functions will be provided in PlatformSecLib\r
-#\r
-ASM_GLOBAL    ASM_PFX(AsmGetFspBaseAddress)\r
-ASM_GLOBAL    ASM_PFX(AsmGetFspInfoHeader)\r
-ASM_GLOBAL    ASM_PFX(GetBootFirmwareVolumeOffset)\r
-ASM_GLOBAL    ASM_PFX(Loader2PeiSwitchStack)\r
-\r
-\r
-#\r
-# Define the data length that we saved on the stack top\r
-#\r
-.equ          DATA_LEN_OF_PER0, 0x018\r
-.equ          DATA_LEN_OF_MCUD, 0x018\r
-.equ          DATA_LEN_AT_STACK_TOP, (DATA_LEN_OF_PER0 + DATA_LEN_OF_MCUD + 4)\r
-\r
-#------------------------------------------------------------------------------\r
-# SecPlatformInitDefault\r
-# Inputs:\r
-#   mm7 -> Return address\r
-# Outputs:\r
-#   eax -> 0 - Successful, Non-zero - Failed.\r
-# Register Usage:\r
-#   eax is cleared and ebp is used for return address.\r
-#   All others reserved.\r
-#------------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(SecPlatformInitDefault)\r
-ASM_PFX(SecPlatformInitDefault):\r
-   #\r
-   # Save return address to EBP\r
-   #\r
-   movd   %mm7, %ebp\r
-   xorl   %eax, %eax\r
-\r
-SecPlatformInitDefaultExit:\r
-   jmp   *%ebp\r
-\r
-\r
-#------------------------------------------------------------------------------\r
-# LoadMicrocodeDefault\r
-#\r
-# Inputs:\r
-#   esp -> LoadMicrocodeParams pointer\r
-# Register Usage:\r
-#   esp  Preserved\r
-#   All others destroyed\r
-# Assumptions:\r
-#   No memory available, stack is hard-coded and used for return address\r
-#   Executed by SBSP and NBSP\r
-#   Beginning of microcode update region starts on paragraph boundary\r
-#------------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(LoadMicrocodeDefault)\r
-ASM_PFX(LoadMicrocodeDefault):\r
-   #\r
-   # Save return address to EBP\r
-   #\r
-   movd   %mm7, %ebp\r
-\r
-   cmpl   $0x00, %esp\r
-   jz     ParamError\r
-   movl   4(%esp), %eax                       #dword ptr []     Parameter pointer\r
-   cmpl   $0x00, %eax\r
-   jz     ParamError\r
-   movl   %eax, %esp\r
-   movl   MicrocodeCodeAddr(%esp), %esi\r
-   cmpl   $0x00, %esi\r
-   jnz    CheckMainHeader\r
-\r
-ParamError:\r
-   movl   $0x080000002, %eax\r
-   jmp    LoadMicrocodeExit\r
-\r
-CheckMainHeader:\r
-   #\r
-   # Get processor signature and platform ID from the installed processor\r
-   # and save into registers for later use\r
-   # ebx = processor signature\r
-   # edx = platform ID\r
-   #\r
-   movl   $0x01, %eax\r
-   cpuid\r
-   movl   %eax, %ebx\r
-   movl   $MSR_IA32_PLATFORM_ID, %ecx\r
-   rdmsr\r
-   movl   %edx, %ecx\r
-   shrl   $0x12, %ecx                        # shift (50d-32d=18d=0x12) bits\r
-   andl   $0x07, %ecx                        # platform id at bit[52..50]\r
-   movl   $0x01, %edx\r
-   shll   %cl,%edx\r
-\r
-   #\r
-   # Current register usage\r
-   # esp -> stack with paramters\r
-   # esi -> microcode update to check\r
-   # ebx = processor signature\r
-   # edx = platform ID\r
-   #\r
-\r
-   #\r
-   # Check for valid microcode header\r
-   # Minimal test checking for header version and loader version as 1\r
-   #\r
-   movl   $0x01, %eax\r
-   cmpl   %eax, MicrocodeHdrVersion(%esi)\r
-   jne    AdvanceFixedSize\r
-   cmpl   %eax, MicrocodeHdrLoader(%esi)\r
-   jne    AdvanceFixedSize\r
-\r
-   #\r
-   # Check if signature and plaform ID match\r
-   #\r
-   cmpl   MicrocodeHdrProcessor(%esi), %ebx\r
-   jne    LoadMicrocodeL0\r
-   testl  MicrocodeHdrFlags(%esi), %edx\r
-   jnz    LoadCheck                          #Jif signature and platform ID match\r
-\r
-LoadMicrocodeL0:\r
-   #\r
-   # Check if extended header exists\r
-   # First check if MicrocodeHdrTotalSize and MicrocodeHdrDataSize are valid\r
-   #\r
-   xorl   %eax, %eax\r
-   cmpl   %eax, MicrocodeHdrTotalSize(%esi)\r
-   je     NextMicrocode\r
-   cmpl   %eax, MicrocodeHdrDataSize(%esi)\r
-   je     NextMicrocode\r
-\r
-   #\r
-   # Then verify total size - sizeof header > data size\r
-   #\r
-   movl   MicrocodeHdrTotalSize(%esi), %ecx\r
-   subl   $MicrocodeHdrLength, %ecx\r
-   cmpl   MicrocodeHdrDataSize(%esi), %ecx\r
-   jle NextMicrocode\r
-\r
-   #\r
-   # Set edi -> extended header\r
-   #\r
-   movl   %esi, %edi\r
-   addl   $MicrocodeHdrLength, %edi\r
-   addl   MicrocodeHdrDataSize(%esi), %edi\r
-\r
-   #\r
-   # Get count of extended structures\r
-   #\r
-   movl   ExtSigHdrCount(%edi), %ecx\r
-\r
-   #\r
-   # Move pointer to first signature structure\r
-   #\r
-   addl   ExtSigHdrLength, %edi\r
-\r
-CheckExtSig:\r
-   #\r
-   # Check if extended signature and platform ID match\r
-   #\r
-   cmpl   %ebx, ExtSigProcessor(%edi)\r
-   jne    LoadMicrocodeL1\r
-   test   %edx, ExtSigFlags(%edi)\r
-   jnz    LoadCheck                          # Jif signature and platform ID match\r
-LoadMicrocodeL1:\r
-   #\r
-   # Check if any more extended signatures exist\r
-   #\r
-   addl   $ExtSigLength, %edi\r
-   loop   CheckExtSig\r
-\r
-NextMicrocode:\r
-   #\r
-   # Advance just after end of this microcode\r
-   #\r
-   xorl   %eax, %eax\r
-   cmpl   %eax, MicrocodeHdrTotalSize(%esi)\r
-   je     LoadMicrocodeL2\r
-   addl   MicrocodeHdrTotalSize(%esi), %esi\r
-   jmp    CheckAddress\r
-LoadMicrocodeL2:\r
-   addl   $0x800, %esi                       #add   esi, dword ptr 2048\r
-   jmp    CheckAddress\r
-\r
-AdvanceFixedSize:\r
-   #\r
-   # Advance by 4X dwords\r
-   #\r
-   addl   $0x400, %esi                       #add   esi, dword ptr 1024\r
-\r
-CheckAddress:\r
-   #\r
-   # Is valid Microcode start point ?\r
-   #\r
-   cmpl   $0x0ffffffff, MicrocodeHdrVersion(%esi)\r
-\r
-   #\r
-   # Is automatic size detection ?\r
-   #\r
-   movl   MicrocodeCodeSize(%esp), %eax\r
-   cmpl   $0x0ffffffff, %eax\r
-   jz     LoadMicrocodeL3\r
-   #\r
-   # Address >= microcode region address + microcode region size?\r
-   #\r
-   addl   MicrocodeCodeAddr(%esp), %eax\r
-\r
-   cmpl   %eax, %esi\r
-   jae    Done                               #Jif address is outside of microcode region\r
-   jmp    CheckMainHeader\r
-\r
-LoadMicrocodeL3:\r
-LoadCheck:\r
-   #\r
-   # Get the revision of the current microcode update loaded\r
-   #\r
-   movl   $MSR_IA32_BIOS_SIGN_ID, %ecx\r
-   xorl   %eax, %eax                         # Clear EAX\r
-   xorl   %edx, %edx                         # Clear EDX\r
-   wrmsr                                     # Load 0 to MSR at 8Bh\r
-\r
-   movl   $0x01, %eax\r
-   cpuid\r
-   movl   $MSR_IA32_BIOS_SIGN_ID, %ecx\r
-   rdmsr                                     # Get current microcode signature\r
-\r
-   #\r
-   # Verify this microcode update is not already loaded\r
-   #\r
-   cmpl   %edx, MicrocodeHdrRevision(%esi)\r
-   je     Continue\r
-\r
-LoadMicrocode0:\r
-   #\r
-   # EAX contains the linear address of the start of the Update Data\r
-   # EDX contains zero\r
-   # ECX contains 79h (IA32_BIOS_UPDT_TRIG)\r
-   # Start microcode load with wrmsr\r
-   #\r
-   movl   %esi, %eax\r
-   addl   $MicrocodeHdrLength, %eax\r
-   xorl   %edx, %edx\r
-   movl   $MSR_IA32_BIOS_UPDT_TRIG, %ecx\r
-   wrmsr\r
-   movl   $0x01, %eax\r
-   cpuid\r
-\r
-Continue:\r
-   jmp    NextMicrocode\r
-\r
-Done:\r
-   movl   $0x01, %eax\r
-   cpuid\r
-   movl   $MSR_IA32_BIOS_SIGN_ID, %ecx\r
-   rdmsr                                     # Get current microcode signature\r
-   xorl   %eax, %eax\r
-   cmpl   $0x00, %edx\r
-   jnz    LoadMicrocodeExit\r
-   movl   $0x08000000E, %eax\r
-\r
-LoadMicrocodeExit:\r
-   jmp   *%ebp\r
-\r
-\r
-#----------------------------------------------------------------------------\r
-# EstablishStackFsp\r
-#\r
-#----------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(EstablishStackFsp)\r
-ASM_PFX(EstablishStackFsp):\r
-  #\r
-  # Save parameter pointer in edx\r
-  #\r
-  movl    4(%esp), %edx\r
-\r
-  #\r
-  # Enable FSP STACK\r
-  #\r
-  movl    PcdGet32(PcdTemporaryRamBase), %esp\r
-  addl    PcdGet32(PcdTemporaryRamSize), %esp\r
-\r
-  pushl   $DATA_LEN_OF_MCUD                  # Size of the data region\r
-  pushl   $0x4455434D                        # Signature of the  data region 'MCUD'\r
-  pushl   12(%edx)                           # Code size\r
-  pushl   8(%edx)                            # Code base\r
-  pushl   4(%edx)                            # Microcode size\r
-  pushl   (%edx)                             # Microcode base\r
-\r
-  #\r
-  # Save API entry/exit timestamp into stack\r
-  #\r
-  pushl   $DATA_LEN_OF_PER0                  # Size of the data region\r
-  pushl   $0x30524550                        # Signature of the  data region 'PER0'\r
-  LOAD_EDX\r
-  pushl   %edx\r
-  LOAD_EAX\r
-  pushl   %eax\r
-  rdtsc\r
-  pushl   %edx\r
-  pushl   %eax\r
-\r
-  #\r
-  # Terminator for the data on stack\r
-  #\r
-  push    $0x00\r
-\r
-  #\r
-  # Set ECX/EDX to the BootLoader temporary memory range\r
-  #\r
-  movl       PcdGet32 (PcdTemporaryRamBase), %ecx\r
-  movl       %ecx, %edx\r
-  addl       PcdGet32 (PcdTemporaryRamSize), %edx\r
-  subl       PcdGet32 (PcdFspTemporaryRamSize), %edx\r
-\r
-  xorl       %eax, %eax\r
-\r
-  movd       %mm7, %esi                      #RET_ESI\r
-  jmp        *%esi\r
-\r
-#----------------------------------------------------------------------------\r
-# TempRamInit API\r
-#\r
-# This FSP API will load the microcode update, enable code caching for the\r
-# region specified by the boot loader and also setup a temporary stack to be\r
-# used till main memory is initialized.\r
-#\r
-#----------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(TempRamInitApi)\r
-ASM_PFX(TempRamInitApi):\r
-  #\r
-  # Ensure SSE is enabled\r
-  #\r
-  ENABLE_SSE\r
-\r
-  #\r
-  # Save EBP, EBX, ESI, EDI & ESP in XMM7 & XMM6\r
-  #\r
-  SAVE_REGS\r
-\r
-  #\r
-  # Save timestamp into XMM6\r
-  #\r
-  rdtsc\r
-  SAVE_EAX\r
-  SAVE_EDX\r
-\r
-  #\r
-  # Check Parameter\r
-  #\r
-  movl    4(%esp), %eax\r
-  cmpl    $0x00, %eax\r
-  movl    $0x80000002, %eax\r
-  jz      NemInitExit\r
-\r
-  #\r
-  # Sec Platform Init\r
-  #\r
-  movl    $TempRamInitApiL1, %esi            #CALL_MMX  SecPlatformInit\r
-  movd    %esi, %mm7\r
-  .weak   ASM_PFX(SecPlatformInit)\r
-  .set    ASM_PFX(SecPlatformInit), ASM_PFX(SecPlatformInitDefault)\r
-  jmp     ASM_PFX(SecPlatformInit)\r
-TempRamInitApiL1:\r
-  cmpl    $0x00, %eax\r
-  jnz     NemInitExit\r
-\r
-  #\r
-  # Load microcode\r
-  #\r
-  LOAD_ESP\r
-  movl    $TempRamInitApiL2, %esi            #CALL_MMX  LoadMicrocode\r
-  movd    %esi, %mm7\r
-  .weak   ASM_PFX(LoadMicrocode)\r
-  .set    ASM_PFX(LoadMicrocode), ASM_PFX(LoadMicrocodeDefault)\r
-  jmp     ASM_PFX(LoadMicrocode)\r
-TempRamInitApiL2:\r
-  SAVE_EAX_MICROCODE_RET_STATUS              #Save microcode return status in ECX-SLOT 3 in xmm6.\r
-  #@note If return value eax is not 0, microcode did not load, but continue and attempt to boot from ECX-SLOT 3 in xmm6.\r
-\r
-  #\r
-  # Call Sec CAR Init\r
-  #\r
-  LOAD_ESP\r
-  movl    $TempRamInitApiL3, %esi            #CALL_MMX  SecCarInit\r
-  movd    %esi, %mm7\r
-  jmp     ASM_PFX(SecCarInit)\r
-TempRamInitApiL3:\r
-  cmpl    $0x00, %eax\r
-  jnz     NemInitExit\r
-\r
-  #\r
-  # EstablishStackFsp\r
-  #\r
-  LOAD_ESP\r
-  movl    $TempRamInitApiL4, %esi            #CALL_MMX  EstablishStackFsp\r
-  movd    %esi, %mm7\r
-  jmp     ASM_PFX(EstablishStackFsp)\r
-TempRamInitApiL4:\r
-\r
-  LOAD_EAX_MICROCODE_RET_STATUS              #Restore microcode status if no CAR init error.\r
-\r
-NemInitExit:\r
-  #\r
-  # Load EBP, EBX, ESI, EDI & ESP from XMM7 & XMM6\r
-  #\r
-  LOAD_REGS\r
-  ret\r
-\r
-\r
-#----------------------------------------------------------------------------\r
-# FspInit API\r
-#\r
-# This FSP API will perform the processor and chipset initialization.\r
-# This API will not return.  Instead, it transfers the control to the\r
-# ContinuationFunc provided in the parameter.\r
-#\r
-#----------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(FspInitApi)\r
-ASM_PFX(FspInitApi):\r
-  movl   $0x01, %eax\r
-  jmp    FspApiCommon\r
-\r
-#----------------------------------------------------------------------------\r
-# NotifyPhase API\r
-#\r
-# This FSP API will notify the FSP about the different phases in the boot\r
-# process\r
-#\r
-#----------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(NotifyPhaseApi)\r
-ASM_PFX(NotifyPhaseApi):\r
-  movl   $0x02, %eax\r
-  jmp    FspApiCommon\r
-\r
-#----------------------------------------------------------------------------\r
-# FspMemoryInit API\r
-#\r
-# This FSP API is called after TempRamInit and initializes the memory.\r
-#\r
-#----------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(FspMemoryInitApi)\r
-ASM_PFX(FspMemoryInitApi):\r
-  movl   $0x03, %eax\r
-  jmp    FspApiCommon\r
-\r
-#----------------------------------------------------------------------------\r
-# TempRamExitApi API\r
-#\r
-# This API tears down temporary RAM\r
-#\r
-#----------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(TempRamExitApi)\r
-ASM_PFX(TempRamExitApi):\r
-  movl   $0x04, %eax\r
-  jmp    FspApiCommon\r
-\r
-#----------------------------------------------------------------------------\r
-# FspSiliconInit API\r
-#\r
-# This FSP API initializes the CPU and the chipset including the IO\r
-# controllers in the chipset to enable normal operation of these devices.\r
-#\r
-#----------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(FspSiliconInitApi)\r
-ASM_PFX(FspSiliconInitApi):\r
-  movl   $0x05, %eax\r
-  jmp    FspApiCommon\r
-\r
-#----------------------------------------------------------------------------\r
-# FspApiCommon API\r
-#\r
-# This is the FSP API common entry point to resume the FSP execution\r
-#\r
-#----------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(FspApiCommon)\r
-ASM_PFX(FspApiCommon):\r
-  #\r
-  # EAX holds the API index\r
-  #\r
-\r
-  #\r
-  # Stack must be ready\r
-  #  \r
-  pushl   %eax\r
-  addl    $0x04, %esp\r
-  cmpl    -4(%esp), %eax\r
-  jz      FspApiCommonL0\r
-  movl    $0x080000003, %eax\r
-  jmp     FspApiCommonExit\r
-\r
-FspApiCommonL0:\r
-  #\r
-  # Verify the calling condition\r
-  #\r
-  pushal\r
-  pushl   36(%esp)  #push ApiParam  [esp + 4 * 8 + 4]\r
-  pushl   %eax      #push ApiIdx\r
-  call    ASM_PFX(FspApiCallingCheck)\r
-  addl    $0x08, %esp\r
-  cmpl    $0x00, %eax\r
-  jz      FspApiCommonL1\r
-  movl    %eax, 0x1C(%esp)                   # mov    dword ptr [esp + 4 * 7], eax\r
-  popal\r
-  ret\r
-\r
-FspApiCommonL1:\r
-  popal\r
-  cmpl    $0x01, %eax                        # FspInit API\r
-  jz      FspApiCommonL2\r
-  cmpl    $0x03, %eax                        # FspMemoryInit API\r
-  jz      FspApiCommonL2\r
-  call    ASM_PFX(AsmGetFspInfoHeader)\r
-  jmp     Loader2PeiSwitchStack\r
-\r
-FspApiCommonL2:\r
-  #\r
-  # FspInit and FspMemoryInit APIs, setup the initial stack frame\r
-  #  \r
-  \r
-  #\r
-  # Place holder to store the FspInfoHeader pointer\r
-  #\r
-  pushl  %eax\r
-\r
-  #\r
-  # Update the FspInfoHeader pointer\r
-  #\r
-  pushl  %eax\r
-  call   ASM_PFX(AsmGetFspInfoHeader)\r
-  movl   %eax, 4(%esp)\r
-  popl   %eax\r
-\r
-  #\r
-  # Create a Task Frame in the stack for the Boot Loader\r
-  #\r
-  pushfl                                     # 2 pushf for 4 byte alignment\r
-  cli\r
-  pushal\r
-\r
-  #\r
-  # Reserve 8 bytes for IDT save/restore\r
-  #\r
-  subl    $0x08, %esp\r
-  sidt    (%esp)\r
-\r
-  #\r
-  # Setup new FSP stack\r
-  #\r
-  movl    %esp, %edi\r
-  movl    PcdGet32(PcdTemporaryRamBase), %esp\r
-  addl    PcdGet32(PcdTemporaryRamSize), %esp\r
-  subl    $(DATA_LEN_AT_STACK_TOP + 0x40), %esp\r
-\r
-  #\r
-  # Pass the API Idx to SecStartup\r
-  #\r
-  pushl   %eax\r
-  \r
-  #\r
-  # Pass the BootLoader stack to SecStartup\r
-  #\r
-  pushl   %edi\r
-\r
-  #\r
-  # Pass entry point of the PEI core\r
-  #\r
-  call    ASM_PFX(AsmGetFspBaseAddress)\r
-  movl    %eax, %edi\r
-  addl    PcdGet32(PcdFspAreaSize), %edi\r
-  subl    $0x20, %edi\r
-  addl    %ds:(%edi), %eax\r
-  pushl   %eax\r
-\r
-  #\r
-  # Pass BFV into the PEI Core\r
-  # It uses relative address to calucate the actual boot FV base\r
-  # For FSP implementation with single FV, PcdFspBootFirmwareVolumeBase and\r
-  # PcdFspAreaBaseAddress are the same. For FSP with mulitple FVs,\r
-  # they are different. The code below can handle both cases.\r
-  #\r
-  call    ASM_PFX(AsmGetFspBaseAddress)\r
-  movl    %eax, %edi\r
-  call    ASM_PFX(GetBootFirmwareVolumeOffset)\r
-  addl    %edi, %eax\r
-  pushl   %eax\r
-\r
-  #\r
-  # Pass stack base and size into the PEI Core\r
-  #\r
-  movl    PcdGet32(PcdTemporaryRamBase), %eax\r
-  addl    PcdGet32(PcdTemporaryRamSize), %eax\r
-  subl    PcdGet32(PcdFspTemporaryRamSize), %eax\r
-  pushl   %eax\r
-  pushl   PcdGet32(PcdFspTemporaryRamSize)\r
-\r
-  #\r
-  # Pass Control into the PEI Core\r
-  #\r
-  call    ASM_PFX(SecStartup)\r
-  addl    $4, %esp\r
-FspApiCommonExit:\r
-  ret\r
-\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/FspHelper.asm b/IntelFspPkg/FspSecCore/Ia32/FspHelper.asm
deleted file mode 100644 (file)
index 9e6799d..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-;; @file\r
-;  Provide FSP helper function.\r
-;\r
-; Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;;\r
-\r
-    .586p\r
-    .model  flat,C\r
-    .code\r
-\r
-;\r
-; FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the  AsmGetFspBaseAddress \r
-; from the FSP Info header. \r
-;\r
-FspInfoHeaderRelativeOff    PROC      NEAR    PUBLIC\r
-   ;\r
-   ; This value will be pached by the build script\r
-   ;\r
-   DD    012345678h\r
-FspInfoHeaderRelativeOff    ENDP\r
-\r
-;\r
-; Returns FSP Base Address. \r
-;\r
-; This function gets the FSP Info Header using relative addressing and returns the FSP Base from the header structure\r
-;\r
-AsmGetFspBaseAddress        PROC      NEAR    PUBLIC\r
-   mov   eax, AsmGetFspBaseAddress\r
-   sub   eax, dword ptr [FspInfoHeaderRelativeOff]\r
-   add   eax, 01Ch\r
-   mov   eax, dword ptr [eax]\r
-   ret\r
-AsmGetFspBaseAddress        ENDP\r
-\r
-;\r
-; No stack counter part of AsmGetFspBaseAddress. Return address is in edi.\r
-;\r
-AsmGetFspBaseAddressNoStack    PROC      NEAR    PUBLIC\r
-   mov   eax, AsmGetFspBaseAddress\r
-   sub   eax, dword ptr [FspInfoHeaderRelativeOff]\r
-   add   eax, 01Ch   \r
-   mov   eax, dword ptr [eax]\r
-   jmp   edi\r
-AsmGetFspBaseAddressNoStack    ENDP\r
-\r
-;\r
-; Returns FSP Info Header. \r
-;\r
-; This function gets the FSP Info Header using relative addressing and returns it\r
-;\r
-AsmGetFspInfoHeader         PROC      NEAR    PUBLIC\r
-   mov   eax, AsmGetFspBaseAddress\r
-   sub   eax, dword ptr [FspInfoHeaderRelativeOff]\r
-   ret\r
-AsmGetFspInfoHeader         ENDP\r
-\r
-;\r
-; No stack counter part of AsmGetFspInfoHeader. Return address is in edi.\r
-;\r
-AsmGetFspInfoHeaderNoStack         PROC      NEAR    PUBLIC\r
-   mov   eax, AsmGetFspBaseAddress\r
-   sub   eax, dword ptr [FspInfoHeaderRelativeOff]\r
-   jmp   edi\r
-AsmGetFspInfoHeaderNoStack         ENDP\r
-\r
-     END
\ No newline at end of file
diff --git a/IntelFspPkg/FspSecCore/Ia32/FspHelper.s b/IntelFspPkg/FspSecCore/Ia32/FspHelper.s
deleted file mode 100644 (file)
index 4fac9d1..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#------------------------------------------------------------------------------\r
-#\r
-# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
-# SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-# Abstract:\r
-#\r
-#   Provide FSP helper function.\r
-#\r
-#------------------------------------------------------------------------------\r
-\r
-#\r
-# FspInfoHeaderRelativeOff is patched during build process and initialized to offset of the  AsmGetFspBaseAddress \r
-# from the FSP Info header. \r
-#\r
-ASM_GLOBAL ASM_PFX(FspInfoHeaderRelativeOff)\r
-ASM_PFX(FspInfoHeaderRelativeOff):\r
-   #\r
-   # This value will be pached by the build script\r
-   #\r
-   .long    0x012345678\r
-\r
-#\r
-# Returns FSP Base Address. \r
-#\r
-# This function gets the FSP Info Header using relative addressing and returns the FSP Base from the header structure\r
-#\r
-ASM_GLOBAL ASM_PFX(AsmGetFspBaseAddress)\r
-ASM_PFX(AsmGetFspBaseAddress):\r
-   mov    $AsmGetFspBaseAddress, %eax\r
-   sub    FspInfoHeaderRelativeOff, %eax\r
-   add    $0x01C, %eax\r
-   mov    (%eax), %eax\r
-   ret\r
-\r
-#\r
-# No stack counter part of AsmGetFspBaseAddress. Return address is in edi.\r
-#\r
-ASM_GLOBAL ASM_PFX(AsmGetFspBaseAddressNoStack)\r
-ASM_PFX(AsmGetFspBaseAddressNoStack):\r
-   mov    $AsmGetFspBaseAddress, %eax\r
-   sub    FspInfoHeaderRelativeOff, %eax\r
-   add    $0x01C, %eax \r
-   mov    (%eax), %eax\r
-   jmp    *%edi\r
-\r
-#\r
-# Returns FSP Info Header. \r
-#\r
-# This function gets the FSP Info Header using relative addressing and returns it\r
-#\r
-ASM_GLOBAL ASM_PFX(AsmGetFspInfoHeader)\r
-ASM_PFX(AsmGetFspInfoHeader):\r
-   mov    $AsmGetFspBaseAddress, %eax\r
-   sub    FspInfoHeaderRelativeOff, %eax\r
-   ret\r
-   \r
-#\r
-# No stack counter part of AsmGetFspInfoHeader. Return address is in edi.\r
-#\r
-ASM_GLOBAL ASM_PFX(AsmGetFspInfoHeaderNoStack)\r
-ASM_PFX(AsmGetFspInfoHeaderNoStack):\r
-   mov    $AsmGetFspBaseAddress, %eax\r
-   sub    FspInfoHeaderRelativeOff, %eax\r
-   jmp    *%edi\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/InitializeFpu.asm b/IntelFspPkg/FspSecCore/Ia32/InitializeFpu.asm
deleted file mode 100644 (file)
index d0a3597..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-; Abstract:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .686\r
-    .model  flat,C\r
-    .const\r
-;\r
-; Float control word initial value:\r
-; all exceptions masked, double-precision, round-to-nearest\r
-;\r
-mFpuControlWord       DW      027Fh\r
-;\r
-; Multimedia-extensions control word:\r
-; all exceptions masked, round-to-nearest, flush to zero for masked underflow\r
-;\r
-mMmxControlWord       DD      01F80h\r
-\r
-    .xmm\r
-    .code\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
-InitializeFloatingPointUnits PROC PUBLIC\r
-\r
-    push    ebx\r
-\r
-    ;\r
-    ; Initialize floating point units\r
-    ;\r
-    finit\r
-    fldcw   mFpuControlWord\r
-\r
-    ;\r
-    ; Use CpuId instructuion (CPUID.01H:EDX.SSE[bit 25] = 1) to test\r
-    ; whether the processor supports SSE instruction.\r
-    ;\r
-    mov     eax, 1\r
-    cpuid\r
-    bt      edx, 25\r
-    jnc     Done\r
-\r
-    ;\r
-    ; Set OSFXSR bit 9 in CR4\r
-    ;\r
-    mov     eax, cr4\r
-    or      eax, BIT9\r
-    mov     cr4, eax\r
-\r
-    ;\r
-    ; The processor should support SSE instruction and we can use\r
-    ; ldmxcsr instruction\r
-    ;\r
-    ldmxcsr mMmxControlWord\r
-Done:\r
-    pop     ebx\r
-\r
-    ret\r
-\r
-InitializeFloatingPointUnits ENDP\r
-\r
-END\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/InitializeFpu.s b/IntelFspPkg/FspSecCore/Ia32/InitializeFpu.s
deleted file mode 100644 (file)
index 7bedb59..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#------------------------------------------------------------------------------\r
-#\r
-# Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-# SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-# Abstract:\r
-#\r
-#------------------------------------------------------------------------------\r
-\r
-#\r
-# Float control word initial value:\r
-# all exceptions masked, double-precision, round-to-nearest\r
-#\r
-ASM_PFX(mFpuControlWord): .word     0x027F\r
-#\r
-# Multimedia-extensions control word:\r
-# all exceptions masked, round-to-nearest, flush to zero for masked underflow\r
-#\r
-ASM_PFX(mMmxControlWord): .long     0x01F80\r
-\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
-ASM_GLOBAL ASM_PFX(InitializeFloatingPointUnits)\r
-ASM_PFX(InitializeFloatingPointUnits):\r
-\r
-    pushl   %ebx\r
-\r
-    #\r
-    # Initialize floating point units\r
-    #\r
-    finit\r
-    fldcw   ASM_PFX(mFpuControlWord)\r
-\r
-    #\r
-    # Use CpuId instructuion (CPUID.01H:EDX.SSE[bit 25] = 1) to test\r
-    # whether the processor supports SSE instruction.\r
-    #\r
-    movl    $1,  %eax\r
-    cpuid\r
-    btl     $25, %edx\r
-    jnc     Done\r
-\r
-    #\r
-    # Set OSFXSR bit 9 in CR4\r
-    #\r
-    movl    %cr4, %eax\r
-    orl     $BIT9, %eax\r
-    movl    %eax, %cr4\r
-\r
-    #\r
-    # The processor should support SSE instruction and we can use\r
-    # ldmxcsr instruction\r
-    #\r
-    ldmxcsr ASM_PFX(mMmxControlWord)\r
-\r
-Done:\r
-    popl    %ebx\r
-\r
-    ret\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/MicrocodeLoad.inc b/IntelFspPkg/FspSecCore/Ia32/MicrocodeLoad.inc
deleted file mode 100644 (file)
index b73c1d6..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-; Abstract:\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-MSR_IA32_PLATFORM_ID        EQU     000000017h\r
-MSR_IA32_BIOS_UPDT_TRIG     EQU     000000079h\r
-MSR_IA32_BIOS_SIGN_ID       EQU     00000008bh\r
-\r
-\r
-MicrocodeHdr                    STRUCT 1t\r
-    MicrocodeHdrVersion     DWORD     ?\r
-    MicrocodeHdrRevision    DWORD     ?\r
-    MicrocodeHdrDate        DWORD     ?\r
-    MicrocodeHdrProcessor   DWORD     ?\r
-    MicrocodeHdrChecksum    DWORD     ?\r
-    MicrocodeHdrLoader      DWORD     ?\r
-    MicrocodeHdrFlags       DWORD     ?\r
-    MicrocodeHdrDataSize    DWORD     ?\r
-    MicrocodeHdrTotalSize   DWORD     ?\r
-    MicrocodeHdrRsvd        DWORD     3t DUP (?)\r
-MicrocodeHdr                   ENDS\r
-\r
-ExtSigHdr                       STRUCT 1t\r
-    ExtSigHdrCount          DWORD     ?\r
-    ExtSigHdrChecksum       DWORD     ?\r
-    ExtSigHdrRsvd           DWORD     3t DUP (?)\r
-ExtSigHdr                       ENDS\r
-\r
-ExtSig                          STRUCT 1t\r
-    ExtSigProcessor         DWORD     ?\r
-    ExtSigFlags             DWORD     ?\r
-    ExtSigChecksum          DWORD     ?\r
-ExtSig                          ENDS\r
-\r
-LoadMicrocodeParams             STRUCT 1t\r
-    MicrocodeCodeAddr       DWORD          ?\r
-    MicrocodeCodeSize       DWORD          ?\r
-LoadMicrocodeParams             ENDS\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/ResetVec.asm16 b/IntelFspPkg/FspSecCore/Ia32/ResetVec.asm16
deleted file mode 100644 (file)
index 63ebf2d..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-; Abstract:\r
-;\r
-;  Reset Vector Data structure\r
-;  This structure is located at 0xFFFFFFC0\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .model  tiny\r
-    .686p\r
-    .stack  0h\r
-    .code\r
-\r
-;\r
-; The layout of this file is fixed. The build tool makes assumption of the layout.\r
-;\r
-\r
-    ORG     0h\r
-;\r
-; Reserved\r
-;\r
-ReservedData         DD 0eeeeeeeeh, 0eeeeeeeeh\r
-\r
-    ORG     10h\r
-;\r
-; This is located at 0xFFFFFFD0h\r
-;\r
-    mov     di, "AP"\r
-    jmp     ApStartup\r
-\r
-    ORG     20h\r
-;\r
-; Pointer to the entry point of the PEI core\r
-; It is located at 0xFFFFFFE0, and is fixed up by some build tool\r
-; So if the value 8..1 appears in the final FD image, tool failure occurs.\r
-;\r
-PeiCoreEntryPoint       DD      12345678h\r
-\r
-;\r
-; This is the handler for all kinds of exceptions. Since it's for debugging\r
-; purpose only, nothing except a deadloop would be done here. Developers could\r
-; analyze the cause of the exception if a debugger had been attached.\r
-;\r
-InterruptHandler    PROC\r
-    jmp     $\r
-    iret\r
-InterruptHandler    ENDP\r
-\r
-    ORG     30h\r
-;\r
-; For IA32, the reset vector must be at 0xFFFFFFF0, i.e., 4G-16 byte\r
-; Execution starts here upon power-on/platform-reset.\r
-;\r
-ResetHandler:\r
-    nop\r
-    nop\r
-\r
-ApStartup:\r
-    ;\r
-    ; Jmp Rel16 instruction\r
-    ; Use machine code directly in case of the assembler optimization\r
-    ; SEC entry point relatvie address will be fixed up by some build tool.\r
-    ;\r
-    ; Typically, SEC entry point is the function _ModuleEntryPoint() defined in\r
-    ; SecEntry.asm\r
-    ;\r
-    DB      0e9h\r
-    DW      -3\r
-\r
-\r
-    ORG     38h\r
-;\r
-; Ap reset vector segment address is at 0xFFFFFFF8\r
-; This will be fixed up by some build tool,\r
-; so if the value 1..8 appears in the final FD image,\r
-; tool failure occurs\r
-;\r
-ApSegAddress    dd      12345678h\r
-\r
-    ORG     3ch\r
-;\r
-; BFV Base is at 0xFFFFFFFC\r
-; This will be fixed up by some build tool,\r
-; so if the value 1..8 appears in the final FD image,\r
-; tool failure occurs.\r
-;\r
-BfvBase     DD      12345678h\r
-\r
-;\r
-; Nothing can go here, otherwise the layout of this file would change.\r
-;\r
-\r
-    END\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/SaveRestoreSse.inc b/IntelFspPkg/FspSecCore/Ia32/SaveRestoreSse.inc
deleted file mode 100644 (file)
index 6cbc3dd..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-; Abstract:\r
-;\r
-;   Provide macro for register save/restore using SSE registers\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-;\r
-; Define SSE instruction set\r
-;\r
-IFDEF USE_SSE41_FLAG\r
-;\r
-; Define SSE macros using SSE 4.1 instructions\r
-;\r
-SXMMN        MACRO   XMM, IDX, REG\r
-             pinsrd  XMM, REG, (IDX AND 3)\r
-             ENDM\r
-\r
-LXMMN        MACRO   XMM, REG, IDX\r
-             pextrd  REG, XMM, (IDX AND 3)\r
-             ENDM\r
-ELSE\r
-;\r
-; Define SSE macros using SSE 2 instructions\r
-;\r
-SXMMN        MACRO   XMM, IDX, REG\r
-             pinsrw  XMM, REG, (IDX AND 3) * 2\r
-             ror     REG, 16\r
-             pinsrw  XMM, REG, (IDX AND 3) * 2 + 1\r
-             rol     REG, 16\r
-             ENDM\r
-\r
-LXMMN        MACRO   XMM, REG, IDX\r
-             pshufd  XMM, XMM,  (0E4E4E4h SHR (IDX * 2))  AND 0FFh\r
-             movd    REG, XMM\r
-             pshufd  XMM, XMM,  (0E4E4E4h SHR (IDX * 2 + (IDX AND 1) * 4)) AND 0FFh\r
-             ENDM\r
-ENDIF\r
-\r
-;\r
-; XMM7 to save/restore EBP, EBX, ESI, EDI\r
-; \r
-SAVE_REGS    MACRO\r
-  SXMMN      xmm7, 0, ebp\r
-  SXMMN      xmm7, 1, ebx\r
-  SXMMN      xmm7, 2, esi\r
-  SXMMN      xmm7, 3, edi\r
-  SAVE_ESP\r
-             ENDM\r
-\r
-LOAD_REGS    MACRO\r
-  LXMMN      xmm7, ebp, 0\r
-  LXMMN      xmm7, ebx, 1\r
-  LXMMN      xmm7, esi, 2\r
-  LXMMN      xmm7, edi, 3\r
-  LOAD_ESP\r
-             ENDM\r
-\r
-;\r
-; XMM6 to save/restore EAX, EDX, ECX, ESP\r
-; \r
-LOAD_EAX     MACRO\r
-  LXMMN      xmm6, eax, 1\r
-             ENDM\r
-\r
-SAVE_EAX     MACRO\r
-  SXMMN      xmm6, 1, eax\r
-             ENDM\r
-\r
-LOAD_EDX     MACRO\r
-  LXMMN      xmm6, edx, 2\r
-             ENDM\r
-\r
-SAVE_EDX     MACRO\r
-  SXMMN      xmm6, 2, edx\r
-             ENDM\r
-\r
-SAVE_ECX     MACRO\r
-  SXMMN      xmm6, 3, ecx\r
-             ENDM\r
-\r
-LOAD_ECX     MACRO\r
-  LXMMN      xmm6, ecx, 3\r
-             ENDM\r
-\r
-SAVE_ESP     MACRO\r
-  SXMMN      xmm6, 0, esp\r
-             ENDM\r
-\r
-LOAD_ESP     MACRO\r
-  movd       esp,  xmm6\r
-             ENDM\r
-             \r
-;\r
-; XMM5 for calling stack\r
-;\r
-CALL_XMM     MACRO  Entry\r
-             local   ReturnAddress\r
-             mov     esi, offset ReturnAddress\r
-             pslldq  xmm5, 4\r
-IFDEF USE_SSE41_FLAG\r
-             pinsrd  xmm5, esi, 0\r
-ELSE             \r
-             pinsrw  xmm5, esi, 0\r
-             ror     esi,  16\r
-             pinsrw  xmm5, esi, 1                        \r
-ENDIF             \r
-             mov     esi,  Entry\r
-             jmp     esi\r
-ReturnAddress:             \r
-             ENDM\r
-            \r
-RET_XMM      MACRO               \r
-             movd    esi, xmm5\r
-             psrldq  xmm5, 4\r
-             jmp     esi\r
-             ENDM\r
-             \r
-ENABLE_SSE   MACRO\r
-            ;\r
-            ; Initialize floating point units\r
-            ;\r
-            local   NextAddress            \r
-            jmp     NextAddress\r
-ALIGN 4\r
-            ;\r
-            ; Float control word initial value:\r
-            ; all exceptions masked, double-precision, round-to-nearest\r
-            ;\r
-FpuControlWord       DW      027Fh\r
-            ;\r
-            ; Multimedia-extensions control word:\r
-            ; all exceptions masked, round-to-nearest, flush to zero for masked underflow\r
-            ;\r
-MmxControlWord       DD      01F80h \r
-SseError:      \r
-            ;\r
-            ; Processor has to support SSE\r
-            ;\r
-            jmp     SseError      \r
-NextAddress:            \r
-            finit\r
-            fldcw   FpuControlWord\r
-\r
-            ;\r
-            ; Use CpuId instructuion (CPUID.01H:EDX.SSE[bit 25] = 1) to test\r
-            ; whether the processor supports SSE instruction.\r
-            ;\r
-            mov     eax, 1\r
-            cpuid\r
-            bt      edx, 25\r
-            jnc     SseError\r
-\r
-IFDEF USE_SSE41_FLAG\r
-            ;\r
-            ; SSE 4.1 support\r
-            ;\r
-            bt      ecx, 19   \r
-            jnc     SseError\r
-ENDIF\r
-\r
-            ;\r
-            ; Set OSFXSR bit (bit #9) & OSXMMEXCPT bit (bit #10)\r
-            ;\r
-            mov     eax, cr4\r
-            or      eax, 00000600h\r
-            mov     cr4, eax\r
-\r
-            ;\r
-            ; The processor should support SSE instruction and we can use\r
-            ; ldmxcsr instruction\r
-            ;\r
-            ldmxcsr MmxControlWord\r
-            ENDM\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/Stack.asm b/IntelFspPkg/FspSecCore/Ia32/Stack.asm
deleted file mode 100644 (file)
index 95e56ce..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-; Abstract:\r
-;\r
-;   Switch the stack from temporary memory to permenent memory.\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .586p\r
-    .model  flat,C\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-; VOID\r
-; EFIAPI\r
-; SecSwitchStack (\r
-;   UINT32   TemporaryMemoryBase,\r
-;   UINT32   PermenentMemoryBase\r
-;   );\r
-;------------------------------------------------------------------------------\r
-SecSwitchStack   PROC\r
-    ;\r
-    ; Save three register: eax, ebx, ecx\r
-    ;\r
-    push  eax\r
-    push  ebx\r
-    push  ecx\r
-    push  edx\r
-\r
-    ;\r
-    ; !!CAUTION!! this function address's is pushed into stack after\r
-    ; migration of whole temporary memory, so need save it to permenent\r
-    ; memory at first!\r
-    ;\r
-\r
-    mov   ebx, [esp + 20]          ; Save the first parameter\r
-    mov   ecx, [esp + 24]          ; Save the second parameter\r
-\r
-    ;\r
-    ; Save this function's return address into permenent memory at first.\r
-    ; Then, Fixup the esp point to permenent memory\r
-    ;\r
-    mov   eax, esp\r
-    sub   eax, ebx\r
-    add   eax, ecx\r
-    mov   edx, dword ptr [esp]         ; copy pushed register's value to permenent memory\r
-    mov   dword ptr [eax], edx\r
-    mov   edx, dword ptr [esp + 4]\r
-    mov   dword ptr [eax + 4], edx\r
-    mov   edx, dword ptr [esp + 8]\r
-    mov   dword ptr [eax + 8], edx\r
-    mov   edx, dword ptr [esp + 12]\r
-    mov   dword ptr [eax + 12], edx\r
-    mov   edx, dword ptr [esp + 16]    ; Update this function's return address into permenent memory\r
-    mov   dword ptr [eax + 16], edx\r
-    mov   esp, eax                     ; From now, esp is pointed to permenent memory\r
-\r
-    ;\r
-    ; Fixup the ebp point to permenent memory\r
-    ;\r
-    mov   eax, ebp\r
-    sub   eax, ebx\r
-    add   eax, ecx\r
-    mov   ebp, eax                ; From now, ebp is pointed to permenent memory\r
-\r
-    pop   edx\r
-    pop   ecx\r
-    pop   ebx\r
-    pop   eax\r
-    ret\r
-SecSwitchStack   ENDP\r
-\r
-    END\r
diff --git a/IntelFspPkg/FspSecCore/Ia32/Stacks.s b/IntelFspPkg/FspSecCore/Ia32/Stacks.s
deleted file mode 100644 (file)
index c62a8fe..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#------------------------------------------------------------------------------\r
-#\r
-# Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-# SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-# Abstract:\r
-#\r
-#   Switch the stack from temporary memory to permenent memory.\r
-#\r
-#------------------------------------------------------------------------------\r
-\r
-ASM_GLOBAL ASM_PFX(SecSwitchStack)\r
-\r
-#------------------------------------------------------------------------------\r
-# VOID\r
-# EFIAPI\r
-# SecSwitchStack (\r
-#   UINT32   TemporaryMemoryBase,\r
-#   UINT32   PermenentMemoryBase\r
-#   )\r
-#------------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(SecSwitchStack)\r
-ASM_PFX(SecSwitchStack):\r
-#\r
-# Save four registers: eax, ebx, ecx, edx\r
-#\r
-    pushl  %eax\r
-    pushl  %ebx\r
-    pushl  %ecx\r
-    pushl  %edx\r
-\r
-#\r
-# !!CAUTION!! this function address's is pushed into stack after\r
-# migration of whole temporary memory, so need save it to permenent\r
-# memory at first!\r
-#\r
-\r
-    movl  20(%esp), %ebx            # Save the first parameter\r
-    movl  24(%esp), %ecx            # Save the second parameter\r
-\r
-#\r
-# Save this function's return address into permenent memory at first.\r
-# Then, Fixup the esp point to permenent memory\r
-#\r
-\r
-    movl  %esp, %eax\r
-    subl  %ebx, %eax\r
-    addl  %ecx, %eax\r
-    movl  (%esp), %edx                 # copy pushed register's value to permenent memory\r
-    movl  %edx, (%eax)\r
-    movl  4(%esp), %edx\r
-    movl  %edx, 4(%eax)\r
-    movl  8(%esp), %edx\r
-    movl  %edx, 8(%eax)\r
-    movl  12(%esp), %edx\r
-    movl  %edx, 12(%eax)\r
-    movl  16(%esp), %edx               # Update this function's return address into permenent memory\r
-    movl  %edx, 16(%eax)\r
-    movl  %eax, %esp                   # From now, esp is pointed to permenent memory\r
-\r
-#\r
-# Fixup the ebp point to permenent memory\r
-#\r
-    movl   %ebp, %eax\r
-    subl   %ebx, %eax\r
-    addl   %ecx, %eax\r
-    movl   %eax, %ebp                  # From now, ebp is pointed to permenent memory\r
-\r
-#\r
-# Fixup callee's ebp point for PeiDispatch\r
-#\r
-#    movl   %ebp, %eax\r
-#    subl   %ebx, %eax\r
-#    addl   %ecx, %eax\r
-#    movl   %eax, %ebp                #  From now, ebp is pointed to permenent memory\r
-    popl   %edx\r
-    popl   %ecx\r
-    popl   %ebx\r
-    popl   %eax    \r
-    ret
\ No newline at end of file
diff --git a/IntelFspPkg/FspSecCore/SecFsp.c b/IntelFspPkg/FspSecCore/SecFsp.c
deleted file mode 100644 (file)
index 94b908e..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-/** @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
-#include "SecFsp.h"\r
-\r
-/**\r
-\r
-  Calculate the FSP IDT gate descriptor.\r
-\r
-  @param[in] IdtEntryTemplate     IDT gate descriptor template.\r
-\r
-  @return                     FSP specific IDT gate descriptor.\r
-\r
-**/\r
-UINT64\r
-FspGetExceptionHandler(\r
-  IN  UINT64  IdtEntryTemplate\r
-  )\r
-{\r
-  UINT32                    Entry;\r
-  UINT64                    ExceptionHandler;\r
-  IA32_IDT_GATE_DESCRIPTOR *IdtGateDescriptor;\r
-  FSP_INFO_HEADER          *FspInfoHeader;\r
-\r
-  FspInfoHeader     = (FSP_INFO_HEADER *)AsmGetFspInfoHeader();\r
-  ExceptionHandler  = IdtEntryTemplate;\r
-  IdtGateDescriptor = (IA32_IDT_GATE_DESCRIPTOR *)&ExceptionHandler;\r
-  Entry = (IdtGateDescriptor->Bits.OffsetHigh << 16) | IdtGateDescriptor->Bits.OffsetLow;\r
-  Entry = FspInfoHeader->ImageBase + FspInfoHeader->ImageSize - (~Entry + 1);\r
-  IdtGateDescriptor->Bits.OffsetHigh = (UINT16)(Entry >> 16);\r
-  IdtGateDescriptor->Bits.OffsetLow  = (UINT16)Entry;\r
-\r
-  return ExceptionHandler;\r
-}\r
-\r
-/**\r
-  This function gets the FSP UPD region offset in flash.\r
-\r
-  @return the offset of the UPD region.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-GetFspUpdRegionOffset (\r
-  VOID\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA                   *FspData;\r
-  UINT32                            *Offset;\r
-\r
-  FspData       = GetFspGlobalDataPointer ();\r
-\r
-  //\r
-  // It is required to put PcdUpdRegionOffset at offset 0x000C\r
-  // for all FSPs.\r
-  // gPlatformFspPkgTokenSpaceGuid.PcdUpdRegionOffset       | 0x000C | 0x12345678\r
-  //\r
-  Offset        = (UINT32 *)(FspData->FspInfoHeader->ImageBase + \\r
-                             FspData->FspInfoHeader->CfgRegionOffset + 0x0C);\r
-\r
-  return  *Offset;\r
-}\r
-\r
-/**\r
-  This interface fills platform specific data.\r
-\r
-  @param[in,out]  FspData           Pointer to the FSP global data.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SecGetPlatformData (\r
-  IN OUT  FSP_GLOBAL_DATA    *FspData\r
-  )\r
-{\r
-  FSP_PLAT_DATA    *FspPlatformData;\r
-  UINT32            TopOfCar;\r
-  UINT32           *StackPtr;\r
-  UINT32            DwordSize;\r
-\r
-  FspPlatformData = &FspData->PlatformData;\r
-\r
-  //\r
-  // The entries of platform information, together with the number of them,\r
-  // reside in the bottom of stack, left untouched by normal stack operation.\r
-  //\r
-  TopOfCar = PcdGet32 (PcdTemporaryRamBase) + PcdGet32 (PcdTemporaryRamSize);\r
-\r
-  FspPlatformData->DataPtr   = NULL;\r
-  FspPlatformData->MicrocodeRegionBase = 0;\r
-  FspPlatformData->MicrocodeRegionSize = 0;\r
-  FspPlatformData->CodeRegionBase      = 0;\r
-  FspPlatformData->CodeRegionSize      = 0;\r
-\r
-  //\r
-  // Pointer to the size field\r
-  //\r
-  StackPtr  = (UINT32 *)(TopOfCar - sizeof(UINT32));\r
-\r
-  while (*StackPtr != 0) {\r
-    if (*(StackPtr - 1) == FSP_MCUD_SIGNATURE) {\r
-      //\r
-      // This following data was pushed onto stack after TempRamInit API\r
-      //\r
-      DwordSize = 4;\r
-      StackPtr  = StackPtr - 1 - DwordSize;\r
-      CopyMem (&(FspPlatformData->MicrocodeRegionBase), StackPtr, (DwordSize << 2));\r
-      StackPtr--;\r
-    } else if (*(StackPtr - 1) == FSP_PER0_SIGNATURE) {\r
-      //\r
-      // This is the performance data for InitTempMemory API entry/exit\r
-      //\r
-      DwordSize = 4;\r
-      StackPtr  = StackPtr - 1 - DwordSize;\r
-      CopyMem (FspData->PerfData, StackPtr, (DwordSize << 2));\r
-      ((UINT8 *)(&FspData->PerfData[0]))[7] = FSP_PERF_ID_API_TMPRAMINIT_ENTRY;\r
-      ((UINT8 *)(&FspData->PerfData[1]))[7] = FSP_PERF_ID_API_TMPRAMINIT_EXIT;\r
-      StackPtr--;\r
-    } else {\r
-      StackPtr -= (*StackPtr);\r
-    }\r
-  }\r
-}\r
-\r
-/**\r
-\r
-  Initialize the FSP global data region.\r
-  It needs to be done as soon as possible after the stack is setup.\r
-\r
-  @param[in,out] PeiFspData             Pointer of the FSP global data.\r
-  @param[in]     BootLoaderStack        BootLoader stack.\r
-  @param[in]     ApiIdx                 The index of the FSP API.\r
-\r
-**/\r
-VOID\r
-FspGlobalDataInit (\r
-  IN OUT  FSP_GLOBAL_DATA    *PeiFspData,\r
-  IN UINT32                   BootLoaderStack,\r
-  IN UINT8                    ApiIdx\r
-  )\r
-{\r
-  VOID              *UpdDataRgnPtr;\r
-  FSP_INIT_PARAMS   *FspInitParams;\r
-  CHAR8              ImageId[9];\r
-  UINTN              Idx;\r
-\r
-  //\r
-  // Init PCIE_BAR with value and set global FSP data pointer.\r
-  // PciExpress Base should have been programmed by platform already.\r
-  //\r
-  SetFspGlobalDataPointer    (PeiFspData);\r
-  ZeroMem  ((VOID *)PeiFspData, sizeof(FSP_GLOBAL_DATA));\r
-\r
-  PeiFspData->Signature          = FSP_GLOBAL_DATA_SIGNATURE;\r
-  PeiFspData->CoreStack          = BootLoaderStack;\r
-  PeiFspData->PerfIdx            = 2;\r
-\r
-  SetFspMeasurePoint (FSP_PERF_ID_API_FSPINIT_ENTRY);\r
-\r
-  //\r
-  // Get FSP Header offset\r
-  // It may have multiple FVs, so look into the last one for FSP header\r
-  //\r
-  PeiFspData->FspInfoHeader      = (FSP_INFO_HEADER *)AsmGetFspInfoHeader();\r
-  SecGetPlatformData (PeiFspData);\r
-\r
-  //\r
-  // Set API calling mode\r
-  //\r
-  SetFspApiCallingMode (ApiIdx == 1 ? 0 : 1);\r
-\r
-  //\r
-  // Initialize UPD pointer.\r
-  //\r
-  FspInitParams = (FSP_INIT_PARAMS *)GetFspApiParameter ();\r
-  UpdDataRgnPtr = ((FSP_INIT_RT_COMMON_BUFFER *)FspInitParams->RtBufferPtr)->UpdDataRgnPtr;\r
-  if (UpdDataRgnPtr == NULL) {\r
-    UpdDataRgnPtr = (VOID *)(PeiFspData->FspInfoHeader->ImageBase + GetFspUpdRegionOffset());\r
-  }\r
-  SetFspUpdDataPointer (UpdDataRgnPtr);\r
-\r
-  //\r
-  // Initialize serial port\r
-  // It might have been done in ProcessLibraryConstructorList(), however,\r
-  // the FSP global data is not initialized at that time. So do it again\r
-  // for safe.\r
-  //\r
-  SerialPortInitialize ();\r
-\r
-  //\r
-  // Ensure the golbal data pointer is valid\r
-  //\r
-  ASSERT (GetFspGlobalDataPointer () == PeiFspData);\r
-\r
-  for (Idx = 0; Idx < 8; Idx++) {\r
-    ImageId[Idx] = PeiFspData->FspInfoHeader->ImageId[Idx];\r
-  }\r
-  ImageId[Idx] = 0;\r
-\r
-  DEBUG ((DEBUG_INFO | DEBUG_INIT, "\n============= PEIM FSP v1.%x (%a v%x.%x.%x.%x) =============\n", \\r
-         PeiFspData->FspInfoHeader->HeaderRevision - 1, \\r
-         ImageId, \\r
-         (PeiFspData->FspInfoHeader->ImageRevision >> 24) & 0xff, \\r
-         (PeiFspData->FspInfoHeader->ImageRevision >> 16) & 0xff, \\r
-         (PeiFspData->FspInfoHeader->ImageRevision >> 8) & 0xff, \\r
-         (PeiFspData->FspInfoHeader->ImageRevision >> 0) & 0xff));\r
-\r
-}\r
-\r
-/**\r
-\r
-  Adjust the FSP data pointers after the stack is migrated to memory.\r
-\r
-  @param[in] OffsetGap             The offset gap between the old stack and the new stack.\r
-\r
-**/\r
-VOID\r
-FspDataPointerFixUp (\r
-  IN UINT32   OffsetGap\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *NewFspData;\r
-\r
-  NewFspData = (FSP_GLOBAL_DATA *)((UINTN)GetFspGlobalDataPointer() + (UINTN)OffsetGap);\r
-  SetFspGlobalDataPointer (NewFspData);\r
-}\r
-\r
-/**\r
-  This function check the FSP API calling condition.\r
-\r
-  @param[in]  ApiIdx           Internal index of the FSP API.\r
-  @param[in]  ApiParam         Parameter of the FSP API.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FspApiCallingCheck (\r
-  IN UINT32   ApiIdx,\r
-  IN VOID     *ApiParam\r
-  )\r
-{\r
-  EFI_STATUS                Status;\r
-  FSP_GLOBAL_DATA           *FspData;\r
-  FSP_INIT_PARAMS           *FspInitParams;\r
-  FSP_INIT_RT_COMMON_BUFFER *FspRtBuffer;\r
-\r
-  FspInitParams = (FSP_INIT_PARAMS *) ApiParam;\r
-  FspRtBuffer = ((FSP_INIT_RT_COMMON_BUFFER *)FspInitParams->RtBufferPtr);\r
-\r
-  Status = EFI_SUCCESS;\r
-  FspData = GetFspGlobalDataPointer ();\r
-  if (ApiIdx == 1) {\r
-    //\r
-    // FspInit check\r
-    //\r
-    if ((UINT32)FspData != 0xFFFFFFFF) {\r
-      Status = EFI_UNSUPPORTED;\r
-    } else if ((FspRtBuffer == NULL) || ((FspRtBuffer->BootLoaderTolumSize % EFI_PAGE_SIZE) != 0) || (EFI_ERROR(FspUpdSignatureCheck(ApiIdx, ApiParam)))) {\r
-      Status = EFI_INVALID_PARAMETER;\r
-    }\r
-  } else if (ApiIdx == 2) {\r
-    //\r
-    // NotifyPhase check\r
-    //\r
-    if ((FspData == NULL) || ((UINT32)FspData == 0xFFFFFFFF)) {\r
-      Status = EFI_UNSUPPORTED;\r
-    } else {\r
-      if (FspData->Signature != FSP_GLOBAL_DATA_SIGNATURE) {\r
-        Status = EFI_UNSUPPORTED;\r
-      }\r
-    }\r
-  } else if (ApiIdx == 3) {\r
-    //\r
-    // FspMemoryInit check\r
-    //\r
-    if ((UINT32)FspData != 0xFFFFFFFF) {\r
-      Status = EFI_UNSUPPORTED;\r
-    } else if ((FspRtBuffer == NULL) || ((FspRtBuffer->BootLoaderTolumSize % EFI_PAGE_SIZE) != 0) || (EFI_ERROR(FspUpdSignatureCheck(ApiIdx, ApiParam)))) {\r
-      Status = EFI_INVALID_PARAMETER;\r
-    }\r
-  } else if (ApiIdx == 4) {\r
-    //\r
-    // TempRamExit check\r
-    //\r
-    if ((FspData == NULL) || ((UINT32)FspData == 0xFFFFFFFF)) {\r
-      Status = EFI_UNSUPPORTED;\r
-    } else {\r
-      if (FspData->Signature != FSP_GLOBAL_DATA_SIGNATURE) {\r
-        Status = EFI_UNSUPPORTED;\r
-      }\r
-    }\r
-  } else if (ApiIdx == 5) {\r
-    //\r
-    // FspSiliconInit check\r
-    //\r
-    if ((FspData == NULL) || ((UINT32)FspData == 0xFFFFFFFF)) {\r
-      Status = EFI_UNSUPPORTED;\r
-    } else {\r
-      if (FspData->Signature != FSP_GLOBAL_DATA_SIGNATURE) {\r
-        Status = EFI_UNSUPPORTED;\r
-      } else if (EFI_ERROR(FspUpdSignatureCheck(ApiIdx, ApiParam))) {\r
-        Status = EFI_INVALID_PARAMETER;\r
-      }\r
-    }\r
-  } else {\r
-    Status = EFI_UNSUPPORTED;\r
-  }\r
-\r
-  return Status;\r
-}\r
-\r
-/**\r
-  This function gets the boot FV offset in FSP.\r
-  @return the boot firmware volumen offset inside FSP binary\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-GetBootFirmwareVolumeOffset (\r
-  VOID\r
-  )\r
-{ \r
-  return PcdGet32 (PcdFspBootFirmwareVolumeBase) - PcdGet32 (PcdFspAreaBaseAddress);\r
-}\r
diff --git a/IntelFspPkg/FspSecCore/SecFsp.h b/IntelFspPkg/FspSecCore/SecFsp.h
deleted file mode 100644 (file)
index f63b521..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/** @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_FSP_H_\r
-#define _SEC_FSPE_H_\r
-\r
-#include <PiPei.h>\r
-#include <FspApi.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/SerialPortLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/FspCommonLib.h>\r
-#include <Library/FspSecPlatformLib.h>\r
-\r
-#define FSP_MCUD_SIGNATURE  SIGNATURE_32 ('M', 'C', 'U', 'D')\r
-#define FSP_PER0_SIGNATURE  SIGNATURE_32 ('P', 'E', 'R', '0')\r
-\r
-/**\r
-\r
-  Calculate the FSP IDT gate descriptor.\r
-\r
-  @param[in] IdtEntryTemplate     IDT gate descriptor template.\r
-\r
-  @return                     FSP specific IDT gate descriptor.\r
-\r
-**/\r
-UINT64\r
-FspGetExceptionHandler(\r
-  IN  UINT64  IdtEntryTemplate\r
-  );\r
-\r
-/**\r
-\r
-  Initialize the FSP global data region.\r
-  It needs to be done as soon as possible after the stack is setup.\r
-\r
-  @param[in,out] PeiFspData             Pointer of the FSP global data.\r
-  @param[in]     BootLoaderStack        BootLoader stack.\r
-  @param[in]     ApiIdx                 The index of the FSP API.\r
-\r
-**/\r
-VOID\r
-FspGlobalDataInit (\r
-  IN OUT  FSP_GLOBAL_DATA    *PeiFspData,\r
-  IN UINT32                   BootLoaderStack,\r
-  IN UINT8                    ApiIdx\r
-  );\r
-\r
-\r
-/**\r
-\r
-  Adjust the FSP data pointers after the stack is migrated to memory.\r
-\r
-  @param[in] OffsetGap             The offset gap between the old stack and the new stack.\r
-\r
-**/\r
-VOID\r
-FspDataPointerFixUp (\r
-  IN UINT32   OffsetGap\r
-  );\r
-\r
-\r
-/**\r
-  This interface returns the base address of FSP binary.\r
-\r
-  @return   FSP binary base address.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-AsmGetFspBaseAddress (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This interface gets FspInfoHeader pointer\r
-\r
-  @return   FSP binary base address.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-AsmGetFspInfoHeader (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function gets the FSP UPD region offset in flash.\r
-\r
-  @return the offset of the UPD region.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-GetFspUpdRegionOffset (\r
-  VOID\r
-  );\r
-\r
-#endif\r
diff --git a/IntelFspPkg/FspSecCore/SecMain.c b/IntelFspPkg/FspSecCore/SecMain.c
deleted file mode 100644 (file)
index 2a27638..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-/** @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
-#include "SecMain.h"\r
-#include "SecFsp.h"\r
-\r
-EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI gSecTemporaryRamSupportPpi = {\r
-  SecTemporaryRamSupport\r
-};\r
-\r
-EFI_PEI_PPI_DESCRIPTOR            mPeiSecPlatformInformationPpi[] = {\r
-  {\r
-    (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
-    &gEfiTemporaryRamSupportPpiGuid,\r
-    &gSecTemporaryRamSupportPpi\r
-  }\r
-};\r
-\r
-//\r
-// These are IDT entries pointing to 08:FFFFFFE4h.\r
-//\r
-UINT64  mIdtEntryTemplate = 0xffff8e000008ffe4ULL;\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
-  EFI_SEC_PEI_HAND_OFF        SecCoreData;\r
-  IA32_DESCRIPTOR             IdtDescriptor;\r
-  SEC_IDT_TABLE               IdtTableInStack;\r
-  UINT32                      Index;\r
-  FSP_GLOBAL_DATA             PeiFspData;\r
-  UINT64                      ExceptionHandler;\r
-\r
-  //\r
-  // Process all libraries constructor function linked to SecCore.\r
-  //\r
-  ProcessLibraryConstructorList ();\r
-\r
-  //\r
-  // Initialize floating point operating environment\r
-  // to be compliant with UEFI spec.\r
-  //\r
-  InitializeFloatingPointUnits ();\r
-\r
-\r
-  // |-------------------|---->\r
-  // |Idt Table          |\r
-  // |-------------------|\r
-  // |PeiService Pointer |    PeiStackSize\r
-  // |-------------------|\r
-  // |                   |\r
-  // |      Stack        |\r
-  // |-------------------|---->\r
-  // |                   |\r
-  // |                   |\r
-  // |      Heap         |    PeiTemporayRamSize\r
-  // |                   |\r
-  // |                   |\r
-  // |-------------------|---->  TempRamBase\r
-  IdtTableInStack.PeiService  = NULL;\r
-  ExceptionHandler = FspGetExceptionHandler(mIdtEntryTemplate);\r
-  for (Index = 0; Index < SEC_IDT_ENTRY_COUNT; Index ++) {\r
-    CopyMem ((VOID*)&IdtTableInStack.IdtTable[Index], (VOID*)&ExceptionHandler, sizeof (UINT64));\r
-  }\r
-\r
-  IdtDescriptor.Base  = (UINTN) &IdtTableInStack.IdtTable;\r
-  IdtDescriptor.Limit = (UINT16)(sizeof (IdtTableInStack.IdtTable) - 1);\r
-\r
-  AsmWriteIdtr (&IdtDescriptor);\r
-\r
-  //\r
-  // Initialize the global FSP data region\r
-  //\r
-  FspGlobalDataInit (&PeiFspData, BootLoaderStack, (UINT8)ApiIdx);\r
-\r
-  //\r
-  // Update the base address and length of Pei temporary memory\r
-  //\r
-  SecCoreData.DataSize               = sizeof (EFI_SEC_PEI_HAND_OFF);\r
-  SecCoreData.BootFirmwareVolumeBase = BootFirmwareVolume;\r
-  SecCoreData.BootFirmwareVolumeSize = (UINT32)((EFI_FIRMWARE_VOLUME_HEADER *)BootFirmwareVolume)->FvLength;\r
-  SecCoreData.TemporaryRamBase       = (VOID*)(UINTN) TempRamBase;\r
-  SecCoreData.TemporaryRamSize       = SizeOfRam;\r
-  SecCoreData.PeiTemporaryRamBase    = SecCoreData.TemporaryRamBase;\r
-  SecCoreData.PeiTemporaryRamSize    = SizeOfRam >> 1;\r
-  SecCoreData.StackBase              = (VOID*)(UINTN)(TempRamBase + SecCoreData.PeiTemporaryRamSize);\r
-  SecCoreData.StackSize              = SizeOfRam >> 1;\r
-\r
-  //\r
-  // Call PeiCore Entry\r
-  //  \r
-  PeiCore (&SecCoreData, mPeiSecPlatformInformationPpi);\r
-\r
-  //\r
-  // Should never be here\r
-  //\r
-  CpuDeadLoop ();\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
-  IA32_DESCRIPTOR   IdtDescriptor;\r
-  VOID*             OldHeap;\r
-  VOID*             NewHeap;\r
-  VOID*             OldStack;\r
-  VOID*             NewStack;\r
-\r
-  OldHeap = (VOID*)(UINTN)TemporaryMemoryBase;\r
-  NewHeap = (VOID*)((UINTN)PermanentMemoryBase + CopySize / 2);\r
-\r
-  OldStack = (VOID*)((UINTN)TemporaryMemoryBase + CopySize / 2);\r
-  NewStack = (VOID*)(UINTN)PermanentMemoryBase;\r
-\r
-  //\r
-  // Migrate Heap\r
-  //\r
-  CopyMem (NewHeap, OldHeap, CopySize / 2);\r
-\r
-  //\r
-  // Migrate Stack\r
-  //\r
-  CopyMem (NewStack, OldStack, CopySize / 2);\r
-\r
-\r
-  //\r
-  // We need *not* fix the return address because currently,\r
-  // The PeiCore is executed in flash.\r
-  //\r
-\r
-  //\r
-  // Rebase IDT table in permanent memory\r
-  //\r
-  AsmReadIdtr (&IdtDescriptor);\r
-  IdtDescriptor.Base = IdtDescriptor.Base - (UINTN)OldStack + (UINTN)NewStack;\r
-\r
-  AsmWriteIdtr (&IdtDescriptor);\r
-\r
-  //\r
-  // Fixed the FSP data pointer\r
-  //\r
-  FspDataPointerFixUp ((UINTN)NewStack - (UINTN)OldStack);\r
-\r
-  //\r
-  // SecSwitchStack function must be invoked after the memory migration\r
-  // immediately, also we need fixup the stack change caused by new call into\r
-  // permanent memory.\r
-  //\r
-  SecSwitchStack (\r
-    (UINT32) (UINTN) OldStack,\r
-    (UINT32) (UINTN) NewStack\r
-    );\r
-\r
-  return EFI_SUCCESS;\r
-}\r
diff --git a/IntelFspPkg/FspSecCore/SecMain.h b/IntelFspPkg/FspSecCore/SecMain.h
deleted file mode 100644 (file)
index e54b7fb..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/** @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
diff --git a/IntelFspPkg/FspSecCore/Vtf0/Bin/ResetVec.ia32.raw b/IntelFspPkg/FspSecCore/Vtf0/Bin/ResetVec.ia32.raw
deleted file mode 100644 (file)
index 2dc9f17..0000000
Binary files a/IntelFspPkg/FspSecCore/Vtf0/Bin/ResetVec.ia32.raw and /dev/null differ
diff --git a/IntelFspPkg/FspSecCore/Vtf0/Build.py b/IntelFspPkg/FspSecCore/Vtf0/Build.py
deleted file mode 100644 (file)
index 66b8083..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-## @file\r
-#  Automate the process of building the various reset vector types\r
-#\r
-#  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-\r
-import glob\r
-import os\r
-import subprocess\r
-import sys\r
-\r
-def RunCommand(commandLine):\r
-    #print ' '.join(commandLine)\r
-    return subprocess.call(commandLine)\r
-\r
-for filename in glob.glob(os.path.join('Bin', '*.raw')):\r
-    os.remove(filename)\r
-\r
-arch = 'ia32'\r
-debugType = None\r
-output = os.path.join('Bin', 'ResetVec')\r
-output += '.' + arch\r
-if debugType is not None:\r
-    output += '.' + debugType\r
-output += '.raw'\r
-commandLine = (\r
-    'nasm',\r
-    '-D', 'ARCH_%s' % arch.upper(),\r
-    '-D', 'DEBUG_%s' % str(debugType).upper(),\r
-    '-o', output,\r
-    'ResetVectorCode.asm',\r
-    )\r
-ret = RunCommand(commandLine)\r
-print '\tASM\t' + output\r
-if ret != 0: sys.exit(ret)\r
-\r
-commandLine = (\r
-    'python',\r
-    'Tools/FixupForRawSection.py',\r
-    output,\r
-    )\r
-print '\tFIXUP\t' + output\r
-ret = RunCommand(commandLine)\r
-if ret != 0: sys.exit(ret)\r
-\r
diff --git a/IntelFspPkg/FspSecCore/Vtf0/Ia16/ResetVec.asm16 b/IntelFspPkg/FspSecCore/Vtf0/Ia16/ResetVec.asm16
deleted file mode 100644 (file)
index f25de02..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-;; @file\r
-;  Reset Vector Data structure\r
-;  This structure is located at 0xFFFFFFC0\r
-;\r
-; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-;;\r
-\r
-BITS    16\r
-\r
-\r
-;\r
-; The layout of this file is fixed. The build tool makes assumption of the layout.\r
-;\r
-\r
-ORG     0x0\r
-;\r
-; Reserved\r
-;\r
-ReservedData:         DD 0eeeeeeeeh, 0eeeeeeeeh\r
-\r
- ;  ORG     0x10\r
- TIMES 0x10-($-$$) DB 0\r
-;\r
-; This is located at 0xFFFFFFD0h\r
-;\r
-    mov     di, "AP"\r
-    jmp     ApStartup\r
-\r
- ;   ORG     0x20\r
-\r
- TIMES 0x20-($-$$) DB 0\r
-\r
-; Pointer to the entry point of the PEI core\r
-; It is located at 0xFFFFFFE0, and is fixed up by some build tool\r
-; So if the value 8..1 appears in the final FD image, tool failure occurs.\r
-;\r
-PeiCoreEntryPoint:       DD      0x12345678\r
-\r
-;\r
-; This is the handler for all kinds of exceptions. Since it's for debugging\r
-; purpose only, nothing except a deadloop would be done here. Developers could\r
-; analyze the cause of the exception if a debugger had been attached.\r
-;\r
-InterruptHandler:\r
-    jmp     $\r
-    iret\r
-\r
-  ;  ORG     0x30\r
- TIMES 0x30-($-$$) DB 0\r
-;\r
-; For IA32, the reset vector must be at 0xFFFFFFF0, i.e., 4G-16 byte\r
-; Execution starts here upon power-on/platform-reset.\r
-;\r
-ResetHandler:\r
-    nop\r
-    nop\r
-\r
-ApStartup:\r
-    ;\r
-    ; Jmp Rel16 instruction\r
-    ; Use machine code directly in case of the assembler optimization\r
-    ; SEC entry point relatvie address will be fixed up by some build tool.\r
-    ;\r
-    ; Typically, SEC entry point is the function _ModuleEntryPoint() defined in\r
-    ; SecEntry.asm\r
-    ;\r
-    DB      0x0e9\r
-    DW      -3\r
-\r
-  ; ORG     0x38\r
-\r
- TIMES 0x38-($-$$) DB 0\r
-;\r
-; Ap reset vector segment address is at 0xFFFFFFF8\r
-; This will be fixed up by some build tool,\r
-; so if the value 1..8 appears in the final FD image,\r
-; tool failure occurs\r
-;\r
-ApSegAddress:    dd      0x12345678\r
-\r
- ;   ORG     0x3c\r
- TIMES 0x3c-($-$$) DB 0\r
-;\r
-; BFV Base is at 0xFFFFFFFC\r
-; This will be fixed up by some build tool,\r
-; so if the value 1..8 appears in the final FD image,\r
-; tool failure occurs.\r
-;\r
-BfvBase:     DD      0x12345678\r
-\r
-;\r
-; Nothing can go here, otherwise the layout of this file would change.\r
-;\r
-\r
-   ; END\r
diff --git a/IntelFspPkg/FspSecCore/Vtf0/ResetVectorCode.asm b/IntelFspPkg/FspSecCore/Vtf0/ResetVectorCode.asm
deleted file mode 100644 (file)
index 42c3a9c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-;------------------------------------------------------------------------------\r
-; @file\r
-; This file includes all other code files to assemble the reset vector code\r
-;\r
-; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-\r
-%include "Ia16/ResetVec.asm16"\r
diff --git a/IntelFspPkg/FspSecCore/Vtf0/Tools/FixupForRawSection.py b/IntelFspPkg/FspSecCore/Vtf0/Tools/FixupForRawSection.py
deleted file mode 100644 (file)
index 7765c22..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-## @file\r
-#  Apply fixup to VTF binary image for FFS Raw section\r
-#\r
-#  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-\r
-import sys\r
-\r
-filename = sys.argv[1]\r
-\r
-if filename.lower().find('ia32') >= 0:\r
-    d = open(sys.argv[1], 'rb').read()\r
-    c = ((len(d) + 4 + 7) & ~7) - 4\r
-    if c > len(d):\r
-        c -= len(d)\r
-        f = open(sys.argv[1], 'wb')\r
-        f.write('\x90' * c)\r
-        f.write(d)\r
-        f.close()\r
-else:\r
-    from struct import pack\r
-\r
-    PAGE_PRESENT             =     0x01\r
-    PAGE_READ_WRITE          =     0x02\r
-    PAGE_USER_SUPERVISOR     =     0x04\r
-    PAGE_WRITE_THROUGH       =     0x08\r
-    PAGE_CACHE_DISABLE       =    0x010\r
-    PAGE_ACCESSED            =    0x020\r
-    PAGE_DIRTY               =    0x040\r
-    PAGE_PAT                 =    0x080\r
-    PAGE_GLOBAL              =   0x0100\r
-    PAGE_2M_MBO              =    0x080\r
-    PAGE_2M_PAT              =  0x01000\r
-\r
-    def NopAlign4k(s):\r
-        c = ((len(s) + 0xfff) & ~0xfff) - len(s)\r
-        return ('\x90' * c) + s\r
-\r
-    def PageDirectoryEntries4GbOf2MbPages(baseAddress):\r
-\r
-        s = ''\r
-        for i in range(0x800):\r
-            i = (\r
-                    baseAddress + long(i << 21) +\r
-                    PAGE_2M_MBO +\r
-                    PAGE_CACHE_DISABLE +\r
-                    PAGE_ACCESSED +\r
-                    PAGE_DIRTY +\r
-                    PAGE_READ_WRITE +\r
-                    PAGE_PRESENT\r
-                )\r
-            s += pack('Q', i)\r
-        return s\r
-\r
-    def PageDirectoryPointerTable4GbOf2MbPages(pdeBase):\r
-        s = ''\r
-        for i in range(0x200):\r
-            i = (\r
-                    pdeBase +\r
-                    (min(i, 3) << 12) +\r
-                    PAGE_CACHE_DISABLE +\r
-                    PAGE_ACCESSED +\r
-                    PAGE_READ_WRITE +\r
-                    PAGE_PRESENT\r
-                )\r
-            s += pack('Q', i)\r
-        return s\r
-\r
-    def PageMapLevel4Table4GbOf2MbPages(pdptBase):\r
-        s = ''\r
-        for i in range(0x200):\r
-            i = (\r
-                    pdptBase +\r
-                    (min(i, 0) << 12) +\r
-                    PAGE_CACHE_DISABLE +\r
-                    PAGE_ACCESSED +\r
-                    PAGE_READ_WRITE +\r
-                    PAGE_PRESENT\r
-                )\r
-            s += pack('Q', i)\r
-        return s\r
-\r
-    def First4GbPageEntries(topAddress):\r
-        PDE = PageDirectoryEntries4GbOf2MbPages(0L)\r
-        pml4tBase = topAddress - 0x1000\r
-        pdptBase = pml4tBase - 0x1000\r
-        pdeBase = pdptBase - len(PDE)\r
-        PDPT = PageDirectoryPointerTable4GbOf2MbPages(pdeBase)\r
-        PML4T = PageMapLevel4Table4GbOf2MbPages(pdptBase)\r
-        return PDE + PDPT + PML4T\r
-\r
-    def AlignAndAddPageTables():\r
-        d = open(sys.argv[1], 'rb').read()\r
-        code = NopAlign4k(d)\r
-        topAddress = 0x100000000 - len(code)\r
-        d = ('\x90' * 4) + First4GbPageEntries(topAddress) + code\r
-        f = open(sys.argv[1], 'wb')\r
-        f.write(d)\r
-        f.close()\r
-\r
-    AlignAndAddPageTables()\r
-\r
diff --git a/IntelFspPkg/Include/FspApi.h b/IntelFspPkg/Include/FspApi.h
deleted file mode 100644 (file)
index 8dafae0..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-/** @file\r
-  Intel FSP API definition from Intel Firmware Support Package External\r
-  Architecture Specification v1.1, April 2015, revision 001.\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 _FSP_API_H_\r
-#define _FSP_API_H_\r
-\r
-#define FSP_STATUS EFI_STATUS\r
-#define FSPAPI EFIAPI\r
-\r
-/**\r
-  FSP Init continuation function prototype.\r
-  Control will be returned to this callback function after FspInit API call.\r
-\r
-  @param[in] Status Status of the FSP INIT API.\r
-  @param[in] HobBufferPtr Pointer to the HOB data structure defined in the PI specification.\r
-**/\r
-typedef\r
-VOID\r
-(* CONTINUATION_PROC) (\r
-  IN EFI_STATUS Status,\r
-  IN VOID       *HobListPtr\r
-  );\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct {\r
-  ///\r
-  /// Base address of the microcode region.\r
-  ///\r
-  UINT32              MicrocodeRegionBase;\r
-  ///\r
-  /// Length of the microcode region.\r
-  ///\r
-  UINT32              MicrocodeRegionLength;\r
-  ///\r
-  /// Base address of the cacheable flash region.\r
-  ///\r
-  UINT32              CodeRegionBase;\r
-  ///\r
-  /// Length of the cacheable flash region.\r
-  ///\r
-  UINT32              CodeRegionLength;\r
-} FSP_TEMP_RAM_INIT_PARAMS;\r
-\r
-typedef struct {\r
-  ///\r
-  /// Non-volatile storage buffer pointer.\r
-  ///\r
-  VOID               *NvsBufferPtr;\r
-  ///\r
-  /// Runtime buffer pointer\r
-  ///\r
-  VOID               *RtBufferPtr;\r
-  ///\r
-  /// Continuation function address\r
-  ///\r
-  CONTINUATION_PROC   ContinuationFunc;\r
-} FSP_INIT_PARAMS;\r
-\r
-typedef struct {\r
-  ///\r
-  /// Stack top pointer used by the bootloader.\r
-  /// The new stack frame will be set up at this location after FspInit API call.\r
-  ///\r
-  UINT32             *StackTop;\r
-  ///\r
-  /// Current system boot mode.\r
-  ///\r
-  UINT32              BootMode;\r
-  ///\r
-  /// User platform configuraiton data region pointer.\r
-  ///\r
-  VOID               *UpdDataRgnPtr;\r
-  //\r
-  // Below field is added in FSP EAS v1.1\r
-  //\r
-  ///\r
-  /// The size of memory to be reserved below the top of low usable memory (TOLUM)\r
-  /// for BootLoader usage. This is optional and value can be zero. If non-zero, the\r
-  /// size must be a multiple of 4KB.\r
-  ///\r
-  UINT32              BootLoaderTolumSize;\r
-  ///\r
-  /// Reserved\r
-  ///\r
-  UINT32              Reserved[6];\r
-} FSP_INIT_RT_COMMON_BUFFER;\r
-\r
-typedef enum {\r
-  ///\r
-  /// Notification code for post PCI enuermation\r
-  ///\r
-  EnumInitPhaseAfterPciEnumeration = 0x20,\r
-  ///\r
-  /// Notification code before transfering control to the payload\r
-  ///\r
-  EnumInitPhaseReadyToBoot         = 0x40\r
-} FSP_INIT_PHASE;\r
-\r
-typedef struct {\r
-  ///\r
-  /// Notification phase used for NotifyPhase API\r
-  ///\r
-  FSP_INIT_PHASE     Phase;\r
-} NOTIFY_PHASE_PARAMS;\r
-\r
-typedef struct {\r
-  ///\r
-  /// Non-volatile storage buffer pointer.\r
-  ///\r
-  VOID               *NvsBufferPtr;\r
-  ///\r
-  /// Runtime buffer pointer\r
-  ///\r
-  VOID               *RtBufferPtr;\r
-  ///\r
-  /// Pointer to the HOB data structure defined in the PI specification\r
-  ///\r
-  VOID               **HobListPtr;\r
-} FSP_MEMORY_INIT_PARAMS;\r
-\r
-#pragma pack()\r
-\r
-/**\r
-  This FSP API is called soon after coming out of reset and before memory and stack is\r
-  available. This FSP API will load the microcode update, enable code caching for the\r
-  region specified by the boot loader and also setup a temporary stack to be used until\r
-  main memory is initialized.\r
-\r
-  A hardcoded stack can be set up with the following values, and the "esp" register\r
-  initialized to point to this hardcoded stack.\r
-  1. The return address where the FSP will return control after setting up a temporary\r
-     stack.\r
-  2. A pointer to the input parameter structure\r
-\r
-  However, since the stack is in ROM and not writeable, this FSP API cannot be called\r
-  using the "call" instruction, but needs to be jumped to.\r
-\r
-  @param[in] TempRaminitParamPtr Address pointer to the FSP_TEMP_RAM_INIT_PARAMS structure.\r
-\r
-  @retval EFI_SUCCESS           Temp RAM was initialized successfully.\r
-  @retval EFI_INVALID_PARAMETER Input parameters are invalid..\r
-  @retval EFI_NOT_FOUND         No valid microcode was found in the microcode region.\r
-  @retval EFI_UNSUPPORTED       The FSP calling conditions were not met.\r
-  @retval EFI_DEVICE_ERROR      Temp RAM initialization failed.\r
-\r
-  If this function is successful, the FSP initializes the ECX and EDX registers to point to\r
-  a temporary but writeable memory range available to the boot loader and returns with\r
-  FSP_SUCCESS in register EAX. Register ECX points to the start of this temporary\r
-  memory range and EDX points to the end of the range. Boot loader is free to use the\r
-  whole range described. Typically the boot loader can reload the ESP register to point\r
-  to the end of this returned range so that it can be used as a standard stack.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *FSP_TEMP_RAM_INIT) (\r
-  IN FSP_TEMP_RAM_INIT_PARAMS *FspTempRamInitPtr\r
-  );\r
-\r
-/**\r
-  This FSP API is called after TempRamInitEntry. This FSP API initializes the memory,\r
-  the CPU and the chipset to enable normal operation of these devices. This FSP API\r
-  accepts a pointer to a data structure that will be platform dependent and defined for\r
-  each FSP binary. This will be documented in the Integration Guide for each FSP\r
-  release.\r
-  The boot loader provides a continuation function as a parameter when calling FspInit.\r
-  After FspInit completes its execution, it does not return to the boot loader from where\r
-  it was called but instead returns control to the boot loader by calling the continuation\r
-  function which is passed to FspInit as an argument.\r
-\r
-  @param[in] FspInitParamPtr Address pointer to the FSP_INIT_PARAMS structure.\r
-\r
-  @retval EFI_SUCCESS           FSP execution environment was initialized successfully.\r
-  @retval EFI_INVALID_PARAMETER Input parameters are invalid.\r
-  @retval EFI_UNSUPPORTED       The FSP calling conditions were not met.\r
-  @retval EFI_DEVICE_ERROR      FSP initialization failed.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *FSP_INIT) (\r
-  IN OUT FSP_INIT_PARAMS *FspInitParamPtr\r
-  );\r
-\r
-#define FSP_FSP_INIT FSP_INIT\r
-\r
-/**\r
-  This FSP API is used to notify the FSP about the different phases in the boot process.\r
-  This allows the FSP to take appropriate actions as needed during different initialization\r
-  phases. The phases will be platform dependent and will be documented with the FSP\r
-  release. The current FSP supports two notify phases:\r
-    Post PCI enumeration\r
-    Ready To Boot\r
-\r
-  @param[in] NotifyPhaseParamPtr Address pointer to the NOTIFY_PHASE_PRAMS\r
-\r
-  @retval EFI_SUCCESS           The notification was handled successfully.\r
-  @retval EFI_UNSUPPORTED       The notification was not called in the proper order.\r
-  @retval EFI_INVALID_PARAMETER The notification code is invalid.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *FSP_NOTIFY_PHASE) (\r
-  IN NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr\r
-  );\r
-\r
-/**\r
-  This FSP API is called after TempRamInit and initializes the memory.\r
-  This FSP API accepts a pointer to a data structure that will be platform dependent\r
-  and defined for each FSP binary. This will be documented in Integration guide with\r
-  each FSP release.\r
-  After FspMemInit completes its execution, it passes the pointer to the HobList and\r
-  returns to the boot loader from where it was called. BootLoader is responsible to \r
-  migrate it's stack and data to Memory.\r
-  FspMemoryInit, TempRamExit and FspSiliconInit APIs provide an alternate method to\r
-  complete the silicon initialization and provides bootloader an opportunity to get\r
-  control after system memory is available and before the temporary RAM is torn down.\r
-  These APIs are mutually exclusive to the FspInit API.\r
-\r
-  @param[in][out] FspMemoryInitParamPtr Address pointer to the FSP_MEMORY_INIT_PARAMS\r
-                                        structure.\r
-\r
-  @retval EFI_SUCCESS           FSP execution environment was initialized successfully.\r
-  @retval EFI_INVALID_PARAMETER Input parameters are invalid.\r
-  @retval EFI_UNSUPPORTED       The FSP calling conditions were not met.\r
-  @retval EFI_DEVICE_ERROR      FSP initialization failed.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *FSP_MEMORY_INIT) (\r
-  IN OUT FSP_MEMORY_INIT_PARAMS *FspMemoryInitParamPtr\r
-  );\r
-\r
-\r
-/**\r
-  This FSP API is called after FspMemoryInit API. This FSP API tears down the temporary\r
-  memory setup by TempRamInit API. This FSP API accepts a pointer to a data structure\r
-  that will be platform dependent and defined for each FSP binary. This will be\r
-  documented in Integration Guide.\r
-  FspMemoryInit, TempRamExit and FspSiliconInit APIs provide an alternate method to\r
-  complete the silicon initialization and provides bootloader an opportunity to get\r
-  control after system memory is available and before the temporary RAM is torn down.\r
-  These APIs are mutually exclusive to the FspInit API.\r
-\r
-  @param[in][out] TempRamExitParamPtr Pointer to the Temp Ram Exit parameters structure.\r
-                                      This structure is normally defined in the Integration Guide.\r
-                                      And if it is not defined in the Integration Guide, pass NULL.\r
-\r
-  @retval EFI_SUCCESS           FSP execution environment was initialized successfully.\r
-  @retval EFI_INVALID_PARAMETER Input parameters are invalid.\r
-  @retval EFI_UNSUPPORTED       The FSP calling conditions were not met.\r
-  @retval EFI_DEVICE_ERROR      FSP initialization failed.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *FSP_TEMP_RAM_EXIT) (\r
-  IN OUT VOID *TempRamExitParamPtr\r
-  );\r
-\r
-\r
-/**\r
-  This FSP API is called after TempRamExit API.\r
-  FspMemoryInit, TempRamExit and FspSiliconInit APIs provide an alternate method to complete the\r
-  silicon initialization.\r
-  These APIs are mutually exclusive to the FspInit API.\r
-\r
-  @param[in][out] FspSiliconInitParamPtr Pointer to the Silicon Init parameters structure.\r
-                                         This structure is normally defined in the Integration Guide.\r
-                                         And if it is not defined in the Integration Guide, pass NULL.\r
-\r
-  @retval EFI_SUCCESS           FSP execution environment was initialized successfully.\r
-  @retval EFI_INVALID_PARAMETER Input parameters are invalid.\r
-  @retval EFI_UNSUPPORTED       The FSP calling conditions were not met.\r
-  @retval EFI_DEVICE_ERROR      FSP initialization failed.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *FSP_SILICON_INIT) (\r
-  IN OUT VOID *FspSiliconInitParamPtr\r
-  );\r
-\r
-///\r
-/// FSP API Return Status Code for backward compatibility with v1.0\r
-///@{\r
-#define FSP_SUCCESS              EFI_SUCCESS\r
-#define FSP_INVALID_PARAMETER    EFI_INVALID_PARAMETER\r
-#define FSP_UNSUPPORTED          EFI_UNSUPPORTED\r
-#define FSP_NOT_READY            EFI_NOT_READY\r
-#define FSP_DEVICE_ERROR         EFI_DEVICE_ERROR\r
-#define FSP_OUT_OF_RESOURCES     EFI_OUT_OF_RESOURCES\r
-#define FSP_VOLUME_CORRUPTED     EFI_VOLUME_CORRUPTED\r
-#define FSP_NOT_FOUND            EFI_NOT_FOUND\r
-#define FSP_TIMEOUT              EFI_TIMEOUT\r
-#define FSP_ABORTED              EFI_ABORTED\r
-#define FSP_INCOMPATIBLE_VERSION EFI_INCOMPATIBLE_VERSION\r
-#define FSP_SECURITY_VIOLATION   EFI_SECURITY_VIOLATION\r
-#define FSP_CRC_ERROR            EFI_CRC_ERROR\r
-///@}\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/FspInfoHeader.h b/IntelFspPkg/Include/FspInfoHeader.h
deleted file mode 100644 (file)
index 73d2ba8..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/** @file\r
-  Intel FSP Info Header definition from Intel Firmware Support Package External\r
-  Architecture Specification v1.1, April 2015, revision 001.\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 _FSP_INFO_HEADER_H_\r
-#define _FSP_INFO_HEADER_H_\r
-\r
-#define FSP_HEADER_REVISION_1   1\r
-#define FSP_HEADER_REVISION_2   2\r
-\r
-#define FSPE_HEADER_REVISION_1  1\r
-#define FSPP_HEADER_REVISION_1  1\r
-\r
-///\r
-/// Fixed FSP header offset in the FSP image\r
-///\r
-#define  FSP_INFO_HEADER_OFF    0x94\r
-\r
-#define  OFFSET_IN_FSP_INFO_HEADER(x)  (UINT32)&((FSP_INFO_HEADER *)(UINTN)0)->x\r
-\r
-#define FSP_INFO_HEADER_SIGNATURE  SIGNATURE_32 ('F', 'S', 'P', 'H')\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct  {\r
-  ///\r
-  /// Byte 0x00: Signature ('FSPH') for the FSP Information Header\r
-  ///\r
-  UINT32  Signature;\r
-  ///\r
-  /// Byte 0x04: Length of the FSP Information Header\r
-  ///\r
-  UINT32  HeaderLength;\r
-  ///\r
-  /// Byte 0x08: Reserved\r
-  ///\r
-  UINT8   Reserved1[3];\r
-  ///\r
-  /// Byte 0x0B: Revision of the FSP Information Header\r
-  ///\r
-  UINT8   HeaderRevision;\r
-  ///\r
-  /// Byte 0x0C: Revision of the FSP binary\r
-  ///\r
-  UINT32  ImageRevision;\r
-\r
-\r
-  ///\r
-  /// Byte 0x10: Signature string that will help match the FSP Binary to a supported\r
-  /// hardware configuration.\r
-  ///\r
-  CHAR8   ImageId[8];\r
-  ///\r
-  /// Byte 0x18: Size of the entire FSP binary\r
-  ///\r
-  UINT32  ImageSize;\r
-  ///\r
-  /// Byte 0x1C: FSP binary preferred base address\r
-  ///\r
-  UINT32  ImageBase;\r
-\r
-\r
-  ///\r
-  /// Byte 0x20: Attribute for the FSP binary\r
-  ///\r
-  UINT32  ImageAttribute;\r
-  ///\r
-  /// Byte 0x24: Offset of the FSP configuration region\r
-  ///\r
-  UINT32  CfgRegionOffset;\r
-  ///\r
-  /// Byte 0x28: Size of the FSP configuration region\r
-  ///\r
-  UINT32  CfgRegionSize;\r
-  ///\r
-  /// Byte 0x2C: Number of API entries this FSP supports\r
-  ///\r
-  UINT32  ApiEntryNum;\r
-\r
-\r
-  ///\r
-  /// Byte 0x30: The offset for the API to setup a temporary stack till the memory\r
-  ///            is initialized.\r
-  ///\r
-  UINT32  TempRamInitEntryOffset;\r
-  ///\r
-  /// Byte 0x34: The offset for the API to initialize the CPU and the chipset (SOC)\r
-  ///\r
-  UINT32  FspInitEntryOffset;\r
-  ///\r
-  /// Byte 0x38: The offset for the API to inform the FSP about the different stages\r
-  ///            in the boot process\r
-  ///\r
-  UINT32  NotifyPhaseEntryOffset;\r
-\r
-  ///\r
-  /// Below fields are added in FSP Revision 2\r
-  ///\r
-\r
-  ///\r
-  /// Byte 0x3C: The offset for the API to initialize the memory\r
-  ///\r
-  UINT32  FspMemoryInitEntryOffset;\r
-  ///\r
-  /// Byte 0x40: The offset for the API to tear down temporary RAM\r
-  ///\r
-  UINT32  TempRamExitEntryOffset;\r
-  ///\r
-  /// Byte 0x44: The offset for the API to initialize the CPU and chipset\r
-  ///\r
-  UINT32  FspSiliconInitEntryOffset;\r
-\r
-} FSP_INFO_HEADER;\r
-\r
-///\r
-/// Below structure is added in FSP version 2\r
-///\r
-#define FSP_INFO_EXTENDED_HEADER_SIGNATURE  SIGNATURE_32 ('F', 'S', 'P', 'E')\r
-\r
-typedef struct  {\r
-  ///\r
-  /// Byte 0x00: Signature ('FSPE') for the FSP Extended Information Header\r
-  ///\r
-  UINT32  Signature;\r
-  ///\r
-  /// Byte 0x04: Length of the table in bytes, including all additional FSP producer defined data.\r
-  ///\r
-  UINT32  Length;\r
-  ///\r
-  /// Byte 0x08: FSP producer defined revision of the table.\r
-  ///\r
-  UINT8   Revision;\r
-  ///\r
-  /// Byte 0x09: Reserved for future use.\r
-  ///\r
-  UINT8   Reserved;\r
-  ///\r
-  /// Byte 0x0A: FSP producer identification string \r
-  ///\r
-  CHAR8   FspProducerId[6];\r
-  ///\r
-  /// Byte 0x10: FSP producer implementation revision number. Larger numbers are assumed to be newer revisions.\r
-  ///\r
-  UINT32  FspProducerRevision;\r
-  ///\r
-  /// Byte 0x14: Size of the FSP producer defined data (n) in bytes.\r
-  ///\r
-  UINT32  FspProducerDataSize;\r
-  ///\r
-  /// Byte 0x18: FSP producer defined data of size (n) defined by FspProducerDataSize.\r
-  ///\r
-\r
-} FSP_INFO_EXTENDED_HEADER;\r
-\r
-//\r
-// A generic table search algorithm for additional tables can be implemented with a\r
-// signature search algorithm until a terminator signature 'FSPP' is found.\r
-//\r
-#define FSP_FSPP_SIGNATURE  SIGNATURE_32 ('F', 'S', 'P', 'P')\r
-\r
-#pragma pack()\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Guid/FspHeaderFile.h b/IntelFspPkg/Include/Guid/FspHeaderFile.h
deleted file mode 100644 (file)
index 7d2de13..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/** @file\r
-  Intel FSP Header File Guid definition from Intel Firmware Support Package External\r
-  Architecture Specification v1.1, April 2015, revision 001.\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 __FSP_HEADER_FILE_GUID__\r
-#define __FSP_HEADER_FILE_GUID__\r
-\r
-extern EFI_GUID gFspHeaderFileGuid;\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Guid/GuidHobFsp.h b/IntelFspPkg/Include/Guid/GuidHobFsp.h
deleted file mode 100644 (file)
index a1b48fe..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __GUID_HOB_FSP_GUID__\r
-#define __GUID_HOB_FSP_GUID__\r
-\r
-#include <Guid/GuidHobFspEas.h>\r
-#include <GuidHobFspGfx.h>\r
-#include <GuidHobFspTseg.h>\r
-#include <GuidHobFspMisc.h>\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Guid/GuidHobFspEas.h b/IntelFspPkg/Include/Guid/GuidHobFspEas.h
deleted file mode 100644 (file)
index 70fc26f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/** @file\r
-  Intel FSP Hob Guid definition from Intel Firmware Support Package External\r
-  Architecture Specification v1.1, April 2015, revision 001.\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 __GUID_HOB_FSP_EAS_GUID__\r
-#define __GUID_HOB_FSP_EAS_GUID__\r
-\r
-extern EFI_GUID gFspBootLoaderTemporaryMemoryGuid;\r
-\r
-extern EFI_GUID gFspBootLoaderTolumHobGuid; // FSP EAS v1.1\r
-extern EFI_GUID gFspReservedMemoryResourceHobGuid;\r
-extern EFI_GUID gFspNonVolatileStorageHobGuid;\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Library/CacheAsRamLib.h b/IntelFspPkg/Include/Library/CacheAsRamLib.h
deleted file mode 100644 (file)
index 4a517ba..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _CACHE_AS_RAM_LIB_H_\r
-#define _CACHE_AS_RAM_LIB_H_\r
-\r
-/**\r
-  This function disable CAR.\r
-\r
-  @param[in] DisableCar       TRUE means use INVD, FALSE means use WBINVD\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DisableCacheAsRam (\r
-  IN BOOLEAN                   DisableCar\r
-  );\r
-\r
-#endif\r
-\r
diff --git a/IntelFspPkg/Include/Library/CacheLib.h b/IntelFspPkg/Include/Library/CacheLib.h
deleted file mode 100644 (file)
index 4caf640..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _CACHE_LIB_H_\r
-#define _CACHE_LIB_H_\r
-\r
-//\r
-// EFI_MEMORY_CACHE_TYPE\r
-//\r
-typedef INT32 EFI_MEMORY_CACHE_TYPE;\r
-\r
-#define EFI_CACHE_UNCACHEABLE                 0\r
-#define EFI_CACHE_WRITECOMBINING              1\r
-#define EFI_CACHE_WRITETHROUGH                4\r
-#define EFI_CACHE_WRITEPROTECTED              5\r
-#define EFI_CACHE_WRITEBACK                   6\r
-\r
-/**\r
- Reset all the MTRRs to a known state.\r
-\r
-  @retval  EFI_SUCCESS All MTRRs have been reset successfully.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-ResetCacheAttributes (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  Given the memory range and cache type, programs the MTRRs.\r
-\r
-  @param[in] MemoryAddress           Base Address of Memory to program MTRR.\r
-  @param[in] MemoryLength            Length of Memory to program MTRR.\r
-  @param[in] MemoryCacheType         Cache Type.\r
-\r
-  @retval EFI_SUCCESS            Mtrr are set successfully.\r
-  @retval EFI_LOAD_ERROR         No empty MTRRs to use.\r
-  @retval EFI_INVALID_PARAMETER  The input parameter is not valid.\r
-  @retval others                 An error occurs when setting MTTR.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SetCacheAttributes (\r
-  IN  EFI_PHYSICAL_ADDRESS      MemoryAddress,\r
-  IN  UINT64                    MemoryLength,\r
-  IN  EFI_MEMORY_CACHE_TYPE     MemoryCacheType\r
-  );\r
-\r
-#endif\r
-\r
diff --git a/IntelFspPkg/Include/Library/DebugDeviceLib.h b/IntelFspPkg/Include/Library/DebugDeviceLib.h
deleted file mode 100644 (file)
index bd0b696..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __DEBUG_DEVICE_LIB_H__\r
-#define __DEBUG_DEVICE_LIB_H__\r
-\r
-/**\r
-  Returns the debug print device enable state.\r
-\r
-  @return  Debug print device enable state.\r
-\r
-**/\r
-UINT8\r
-EFIAPI\r
-GetDebugPrintDeviceEnable (\r
-  VOID\r
-  );\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Library/FspCommonLib.h b/IntelFspPkg/Include/Library/FspCommonLib.h
deleted file mode 100644 (file)
index f5e16ca..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-/** @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 _FSP_COMMON_LIB_H_\r
-#define _FSP_COMMON_LIB_H_\r
-\r
-#include <FspGlobalData.h>\r
-#include <FspMeasurePointId.h>\r
-\r
-/**\r
-  This function sets the FSP global data pointer.\r
-\r
-  @param[in] FspData       Fsp global data pointer.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspGlobalDataPointer (\r
-  IN FSP_GLOBAL_DATA   *FspData\r
-  );\r
-\r
-/**\r
-  This function gets the FSP global data pointer.\r
-\r
-**/\r
-FSP_GLOBAL_DATA *\r
-EFIAPI\r
-GetFspGlobalDataPointer (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function gets back the FSP API parameter passed by the bootlaoder.\r
-\r
-  @retval ApiParameter FSP API parameter passed by the bootlaoder.\r
-**/\r
-UINT32\r
-EFIAPI\r
-GetFspApiParameter (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function sets the FSP API parameter in the stack.\r
-\r
-   @param[in] Value       New parameter value.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspApiParameter (\r
-  IN UINT32      Value\r
-  );\r
-\r
-/**\r
-  This function sets the FSP continuation function parameters in the stack.\r
-\r
-  @param[in] Value             New parameter value to set.\r
-  @param[in] Index             Parameter index.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspContinuationFuncParameter (\r
-  IN UINT32      Value,\r
-  IN UINT32      Index\r
-  );\r
-\r
-/**\r
-  This function changes the BootLoader return address in stack.\r
-\r
-  @param[in] ReturnAddress       Address to return.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspApiReturnAddress (\r
-  IN UINT32  ReturnAddress\r
-  );\r
-\r
-/**\r
-  This function set the API status code returned to the BootLoader.\r
-\r
-  @param[in] ReturnStatus       Status code to return.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspApiReturnStatus (\r
-  IN UINT32  ReturnStatus\r
-  );\r
-\r
-/**\r
-  This function sets the context switching stack to a new stack frame.\r
-\r
-  @param[in] NewStackTop       New core stack to be set.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspCoreStackPointer (\r
-  IN VOID   *NewStackTop\r
-  );\r
-\r
-/**\r
-  This function sets the platform specific data pointer.\r
-\r
-  @param[in] PlatformData       Fsp platform specific data pointer.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspPlatformDataPointer (\r
-  IN VOID   *PlatformData\r
-  );\r
-\r
-/**\r
-  This function gets the platform specific data pointer.\r
-\r
-   @param[in] PlatformData       Fsp platform specific data pointer.\r
-\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspPlatformDataPointer (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function sets the UPD data pointer.\r
-\r
-  @param[in] UpdDataRgnPtr   UPD data pointer.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspUpdDataPointer (\r
-  IN VOID    *UpdDataRgnPtr\r
-  );\r
-\r
-/**\r
-  This function gets the UPD data pointer.\r
-\r
-  @return UpdDataRgnPtr   UPD data pointer.\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspUpdDataPointer (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function sets the memory init UPD data pointer.\r
-\r
-  @param[in] MemoryInitUpdPtr   memory init UPD data pointer.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspMemoryInitUpdDataPointer (\r
-  IN VOID    *MemoryInitUpdPtr\r
-  );\r
-\r
-/**\r
-  This function gets the memory init UPD data pointer.\r
-\r
-  @return memory init UPD data pointer.\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspMemoryInitUpdDataPointer (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function sets the silicon init UPD data pointer.\r
-\r
-  @param[in] SiliconInitUpdPtr   silicon init UPD data pointer.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspSiliconInitUpdDataPointer (\r
-  IN VOID    *SiliconInitUpdPtr\r
-  );\r
-\r
-/**\r
-  This function gets the silicon init UPD data pointer.\r
-\r
-  @return silicon init UPD data pointer.\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspSiliconInitUpdDataPointer (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  Set FSP measurement point timestamp.\r
-\r
-  @param[in] Id       Measurement point ID.\r
-\r
-  @return performance timestamp.\r
-**/\r
-UINT64\r
-EFIAPI\r
-SetFspMeasurePoint (\r
-  IN UINT8  Id\r
-  );\r
-\r
-/**\r
-  This function gets the FSP info header pointer.\r
-\r
-  @retval FspInfoHeader   FSP info header pointer\r
-**/\r
-FSP_INFO_HEADER *\r
-EFIAPI\r
-GetFspInfoHeader (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function gets the FSP info header pointer from the API context.\r
-\r
-  @retval FspInfoHeader   FSP info header pointer\r
-**/\r
-FSP_INFO_HEADER *\r
-EFIAPI\r
-GetFspInfoHeaderFromApiContext (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function gets the VPD data pointer.\r
-\r
-  @return VpdDataRgnPtr   VPD data pointer.\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspVpdDataPointer (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function gets FSP API calling mode.\r
-\r
-  @retval API calling mode\r
-**/\r
-UINT8\r
-EFIAPI\r
-GetFspApiCallingMode (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function sets FSP API calling mode.\r
-\r
-  @param[in] Mode     API calling mode\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspApiCallingMode (\r
-  UINT8  Mode\r
-  );\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Library/FspPlatformLib.h b/IntelFspPkg/Include/Library/FspPlatformLib.h
deleted file mode 100644 (file)
index 06fb134..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/** @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 _FSP_PLATFORM_LIB_H_\r
-#define _FSP_PLATFORM_LIB_H_\r
-\r
-/**\r
-  Get system memory from HOB.\r
-\r
-  @param[in,out] LowMemoryLength   less than 4G memory length\r
-  @param[in,out] HighMemoryLength  greater than 4G memory length\r
-**/\r
-VOID\r
-EFIAPI\r
-FspGetSystemMemorySize (\r
-  IN OUT UINT64              *LowMemoryLength,\r
-  IN OUT UINT64              *HighMemoryLength\r
-  );\r
-\r
-/**\r
-  Migrate BootLoader data before destroying CAR.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-FspMigrateTemporaryMemory (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  Set a new stack frame for the continuation function.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-FspSetNewStackFrame (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function transfer control to the ContinuationFunc passed in by the\r
-  BootLoader.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-FspInitDone (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function handle NotifyPhase API call from the BootLoader.\r
-  It gives control back to the BootLoader after it is handled. If the\r
-  Notification code is a ReadyToBoot event, this function will return\r
-  and FSP continues the remaining execution until it reaches the DxeIpl.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-FspWaitForNotify (\r
-  VOID\r
-  );\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Library/FspSecPlatformLib.h b/IntelFspPkg/Include/Library/FspSecPlatformLib.h
deleted file mode 100644 (file)
index 774513a..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _FSP_SEC_PLATFORM_LIB_H_\r
-#define _FSP_SEC_PLATFORM_LIB_H_\r
-\r
-/**\r
-  This function performs platform level initialization.\r
-\r
-  This function must be in ASM file, because stack is not established yet.\r
-  This function is optional. If a library instance does not provide this function, the default empty one will be used.\r
-\r
-  The callee should not use XMM6/XMM7.\r
-  The return address is saved in MM7.\r
-\r
-  @retval in saved in EAX - 0 means platform initialization success.\r
-                            other means platform initialization fail.\r
-**/\r
-UINT32\r
-EFIAPI\r
-SecPlatformInit (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  This function loads Microcode.\r
-\r
-  This function must be in ASM file, because stack is not established yet.\r
-  This function is optional. If a library instance does not provide this function, the default one will be used.\r
-\r
-  The callee should not use XMM6/XMM7.\r
-  The return address is saved in MM7.\r
-\r
-  @param TempRamInitParamPtr A data structure to hold microcode parameter. It is saved in ESP.\r
-\r
-  @retval in saved in EAX - 0 means Microcode is loaded successfully.\r
-                            other means Microcode is not loaded successfully.\r
-**/\r
-UINT32\r
-EFIAPI\r
-LoadMicrocode (\r
-  IN FSP_TEMP_RAM_INIT_PARAMS  *TempRamInitParamPtr\r
-  );\r
-\r
-/**\r
-  This function initializes the CAR.\r
-\r
-  This function must be in ASM file, because stack is not established yet.\r
-\r
-  The callee should not use XMM6/XMM7.\r
-  The return address is saved in MM7.\r
-\r
-  @param TempRamInitParamPtr A data structure to hold microcode parameter. It is saved in ESP.\r
-\r
-  @retval in saved in EAX - 0 means CAR initialization success.\r
-                            other means CAR initialization fail.\r
-**/\r
-UINT32\r
-EFIAPI\r
-SecCarInit (\r
-  IN FSP_TEMP_RAM_INIT_PARAMS  *TempRamInitParamPtr\r
-  );\r
-\r
-/**\r
-  This function check the signture of UPD.\r
-\r
-  @param[in]  ApiIdx           Internal index of the FSP API.\r
-  @param[in]  ApiParam         Parameter of the FSP API.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FspUpdSignatureCheck (\r
-  IN UINT32   ApiIdx,\r
-  IN VOID     *ApiParam\r
-  );\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Library/FspSwitchStackLib.h b/IntelFspPkg/Include/Library/FspSwitchStackLib.h
deleted file mode 100644 (file)
index 0c76e9f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _FSP_SWITCH_STACK_LIB_H_\r
-#define _FSP_SWITCH_STACK_LIB_H_\r
-\r
-/**\r
-\r
-  This function will switch the current stack to the previous saved stack.\r
-  Before calling the previous stack has to be set in  FSP_GLOBAL_DATA.CoreStack.\r
-                    EIP\r
-                    FLAGS  16 bit  FLAGS  16 bit\r
-                    EDI\r
-                    ESI\r
-                    EBP\r
-                    ESP\r
-                    EBX\r
-                    EDX\r
-                    ECX\r
-                    EAX\r
-                    DWORD     IDT base1\r
-  StackPointer:     DWORD     IDT base2\r
-\r
-  @return ReturnKey          After switching to the saved stack,\r
-                             this value will be saved in eax before returning.\r
-\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-Pei2LoaderSwitchStack (\r
-  VOID\r
-  );\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Private/FspGlobalData.h b/IntelFspPkg/Include/Private/FspGlobalData.h
deleted file mode 100644 (file)
index 31a70ca..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/** @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 _FSP_GLOBAL_DATA_H_\r
-#define _FSP_GLOBAL_DATA_H_\r
-\r
-#include <FspInfoHeader.h>\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct  {\r
-   VOID               *DataPtr;\r
-   UINT32             MicrocodeRegionBase;\r
-   UINT32             MicrocodeRegionSize;\r
-   UINT32             CodeRegionBase;\r
-   UINT32             CodeRegionSize;\r
-} FSP_PLAT_DATA;\r
-\r
-#define FSP_GLOBAL_DATA_SIGNATURE  SIGNATURE_32 ('F', 'S', 'P', 'D')\r
-\r
-typedef struct  {\r
-   UINT32             Signature;\r
-   UINT32             CoreStack;\r
-   FSP_PLAT_DATA      PlatformData;\r
-   FSP_INFO_HEADER    *FspInfoHeader;\r
-   VOID               *UpdDataRgnPtr;\r
-   VOID               *MemoryInitUpdPtr;\r
-   VOID               *SiliconInitUpdPtr;\r
-   UINT8              ApiMode;\r
-   UINT8              Reserved[3];\r
-   UINT32             PerfIdx;\r
-   UINT64             PerfData[32];\r
-} FSP_GLOBAL_DATA;\r
-\r
-#pragma pack()\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Private/FspMeasurePointId.h b/IntelFspPkg/Include/Private/FspMeasurePointId.h
deleted file mode 100644 (file)
index f9b744d..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _FSP_MEASURE_POINT_ID_H_\r
-#define _FSP_MEASURE_POINT_ID_H_\r
-\r
-//\r
-// 0xD0 - 0xEF are reserved for FSP common measure point\r
-//\r
-#define  FSP_PERF_ID_MRCINIT_ENTRY               0xD0\r
-#define  FSP_PERF_ID_MRCINIT_EXIT                (FSP_PERF_ID_MRCINIT_ENTRY +  1)\r
-\r
-#define  FSP_PERF_ID_SOCINIT_ENTRY               0xD8\r
-#define  FSP_PERF_ID_SOCINIT_EXIT                (FSP_PERF_ID_SOCINIT_ENTRY +  1)\r
-\r
-#define  FSP_PERF_ID_PCHINIT_ENTRY               0xDA\r
-#define  FSP_PERF_ID_PCHINIT_EXIT                (FSP_PERF_ID_PCHINIT_ENTRY +  1)\r
-\r
-#define  FSP_PERF_ID_CPUINIT_ENTRY               0xE0\r
-#define  FSP_PERF_ID_CPUINIT_EXIT                (FSP_PERF_ID_CPUINIT_ENTRY +  1)\r
-\r
-\r
-//\r
-// 0xF0 - 0xFF are reserved for FSP API\r
-//\r
-#define  FSP_PERF_ID_API_TMPRAMINIT_ENTRY        0xF0\r
-#define  FSP_PERF_ID_API_TMPRAMINIT_EXIT         (FSP_PERF_ID_API_TMPRAMINIT_ENTRY + 1)\r
-\r
-#define  FSP_PERF_ID_API_FSPINIT_ENTRY           0xF2\r
-#define  FSP_PERF_ID_API_FSPINIT_EXIT            (FSP_PERF_ID_API_FSPINIT_ENTRY + 1)\r
-\r
-#define  FSP_PERF_ID_API_NOTIFY_POSTPCI_ENTRY    0xF4\r
-#define  FSP_PERF_ID_API_NOTIFY_POSTPCI_EXIT     (FSP_PERF_ID_API_NOTIFY_POSTPCI_ENTRY + 1)\r
-\r
-#define  FSP_PERF_ID_API_NOTIFY_RDYBOOT_ENTRY    0xF6\r
-#define  FSP_PERF_ID_API_NOTIFY_RDYBOOT_EXIT     (FSP_PERF_ID_API_NOTIFY_RDYBOOT_ENTRY + 1)\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Private/FspPatchTable.h b/IntelFspPkg/Include/Private/FspPatchTable.h
deleted file mode 100644 (file)
index 48d3cee..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/** @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 _FSP_PATCH_TABLE_H_\r
-#define _FSP_PATCH_TABLE_H_\r
-\r
-#pragma pack(1)\r
-\r
-#define FSP_PATCH_TABLE_SIGNATURE  FSP_FSPP_SIGNATURE\r
-\r
-typedef struct  {\r
-  UINT32  Signature;\r
-  UINT16  HeaderLength;\r
-  UINT8   HeaderRevision;\r
-  UINT8   Reserved;\r
-  UINT32  PatchEntryNum;\r
-  UINT32  PatchData[FixedPcdGet32(PcdFspMaxPatchEntry)];\r
-} FSP_PATCH_TABLE;\r
-\r
-#pragma pack()\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Private/GuidHobFspGfx.h b/IntelFspPkg/Include/Private/GuidHobFspGfx.h
deleted file mode 100644 (file)
index 0567e5a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __GUID_HOB_FSP_GFX_GUID__\r
-#define __GUID_HOB_FSP_GFX_GUID__\r
-\r
-extern EFI_GUID gFspReservedMemoryResourceHobGfxGuid;\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Private/GuidHobFspMisc.h b/IntelFspPkg/Include/Private/GuidHobFspMisc.h
deleted file mode 100644 (file)
index c3a3c75..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __GUID_HOB_FSP_MISC_GUID__\r
-#define __GUID_HOB_FSP_MISC_GUID__\r
-\r
-extern EFI_GUID gFspReservedMemoryResourceHobMiscGuid;\r
-\r
-#endif\r
diff --git a/IntelFspPkg/Include/Private/GuidHobFspTseg.h b/IntelFspPkg/Include/Private/GuidHobFspTseg.h
deleted file mode 100644 (file)
index 5a5fed7..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __GUID_HOB_FSP_TSEG_GUID__\r
-#define __GUID_HOB_FSP_TSEG_GUID__\r
-\r
-extern EFI_GUID gFspReservedMemoryResourceHobTsegGuid;\r
-\r
-#endif\r
diff --git a/IntelFspPkg/IntelFspPkg.dec b/IntelFspPkg/IntelFspPkg.dec
deleted file mode 100644 (file)
index 84d1be3..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-## @file\r
-# Provides driver and definitions to build fsp in EDKII bios.\r
-#\r
-# Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-# SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
-  DEC_SPECIFICATION              = 0x00010005\r
-  PACKAGE_NAME                   = IntelFspPkg\r
-  PACKAGE_GUID                   = 444C6CDF-55BD-4744-8F74-AE98B003B955\r
-  PACKAGE_VERSION                = 0.1\r
-\r
-[Includes]\r
-  Include\r
-  Include/Private\r
-  \r
-[LibraryClasses]\r
-  ##  @libraryclass  Provides cache-as-ram support.\r
-  CacheAsRamLib|Include/Library/CacheAsRamLib.h\r
-\r
-  ##  @libraryclass  Provides cache setting on MTRR.\r
-  CacheLib|Include/Library/CacheLib.h\r
-\r
-  ##  @libraryclass  Provides debug device abstraction.\r
-  DebugDeviceLib|Include/Library/DebugDeviceLib.h\r
-\r
-  ##  @libraryclass  Provides FSP related services.\r
-  FspCommonLib|Include/Library/FspCommonLib.h\r
-\r
-  ##  @libraryclass  Provides FSP platform related actions.\r
-  FspPlatformLib|Include/Library/FspPlatformLib.h\r
-\r
-  ##  @libraryclass  Provides FSP switch stack function.\r
-  FspSwitchStackLib|Include/Library/FspSwitchStackLib.h\r
-  \r
-  ##  @libraryclass  Provides FSP platform sec related actions.\r
-  FspSecPlatformLib|Include/Library/FspSecPlatformLib.h\r
-\r
-[Guids]\r
-  #\r
-  # GUID defined in package\r
-  #\r
-  gIntelFspPkgTokenSpaceGuid           = { 0x834c0c5f, 0xadb3, 0x4372, { 0xae, 0xeb, 0x03, 0xe4, 0xe9, 0xe6, 0xc5, 0x91 } }\r
-\r
-  # Guid define in FSP EAS\r
-  gFspHeaderFileGuid                    = { 0x912740BE, 0x2284, 0x4734, { 0xB9, 0x71, 0x84, 0xB0, 0x27, 0x35, 0x3F, 0x0C } }\r
-  gFspBootLoaderTemporaryMemoryGuid     = { 0xbbcff46c, 0xc8d3, 0x4113, { 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e } }\r
-  gFspReservedMemoryResourceHobGuid     = { 0x69a79759, 0x1373, 0x4367, { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } }\r
-  gFspNonVolatileStorageHobGuid         = { 0x721acf02, 0x4d77, 0x4c2a, { 0xb3, 0xdc, 0x27, 0x0b, 0x7b, 0xa9, 0xe4, 0xb0 } }\r
-  gFspBootLoaderTolumHobGuid            = { 0x73ff4f56, 0xaa8e, 0x4451, { 0xb3, 0x16, 0x36, 0x35, 0x36, 0x67, 0xad, 0x44 } } # FSP EAS v1.1\r
-\r
-  # Guid defined by platform\r
-  gFspReservedMemoryResourceHobTsegGuid = { 0xd038747c, 0xd00c, 0x4980, { 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55 } }\r
-  gFspReservedMemoryResourceHobGfxGuid  = { 0x9c7c3aa7, 0x5332, 0x4917, { 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07 } }\r
-  gFspReservedMemoryResourceHobMiscGuid = { 0x00d6b14b, 0x7dd0, 0x4062, { 0x88, 0x21, 0xe5, 0xf9, 0x6a, 0x2a, 0x1b, 0x00 } }\r
-\r
-[PcdsFixedAtBuild]\r
-  gIntelFspPkgTokenSpaceGuid.PcdGlobalDataPointerAddress |0xFED00108|UINT32|0x00000001\r
-  gIntelFspPkgTokenSpaceGuid.PcdTemporaryRamBase         |0xFEF00000|UINT32|0x10001001\r
-  gIntelFspPkgTokenSpaceGuid.PcdTemporaryRamSize         |    0x2000|UINT32|0x10001002\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspTemporaryRamSize      |    0x1000|UINT32|0x10001003\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPerfEntry          |        32|UINT32|0x00002001\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPatchEntry         |         6|UINT32|0x00002002\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspAreaBaseAddress       |0xFFF80000|UINT32|0x10000001\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspAreaSize              |0x00040000|UINT32|0x10000002\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspBootFirmwareVolumeBase|0xFFF80000|UINT32|0x10000003\r
-\r
-[PcdsFixedAtBuild,PcdsDynamic,PcdsDynamicEx]\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspReservedMemoryLength |0x00100000|UINT32|0x46530000\r
-  gIntelFspPkgTokenSpaceGuid.PcdBootLoaderEntry         |0xFFFFFFE4|UINT32|0x46530100\r
diff --git a/IntelFspPkg/IntelFspPkg.dsc b/IntelFspPkg/IntelFspPkg.dsc
deleted file mode 100644 (file)
index 80e026e..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-## @file\r
-# Provides driver and definitions to build fsp in EDKII bios.\r
-#\r
-# Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>\r
-# SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
-  PLATFORM_NAME                  = IntelFspPkg\r
-  PLATFORM_GUID                  = 29C6791F-9EBC-4470-A126-2BB47431AE5E\r
-  PLATFORM_VERSION               = 0.1\r
-  DSC_SPECIFICATION              = 0x00010005\r
-  OUTPUT_DIRECTORY               = Build/IntelFspPkg\r
-  SUPPORTED_ARCHITECTURES        = IA32\r
-  BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT\r
-  SKUID_IDENTIFIER               = DEFAULT\r
-\r
-[LibraryClasses]\r
-  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf\r
-  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
-  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf\r
-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
-  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf\r
-  PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf\r
-  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf\r
-  UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf\r
-\r
-  # Dummy - test build only\r
-  SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf\r
-  ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf\r
-  DebugDeviceLib|IntelFspPkg/Library/BaseDebugDeviceLibNull/BaseDebugDeviceLibNull.inf\r
-\r
-  # FSP override\r
-  DebugLib|IntelFspPkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSerialPort.inf\r
-\r
-  # FSP specific lib\r
-  CacheAsRamLib|IntelFspPkg/Library/BaseCacheAsRamLibNull/BaseCacheAsRamLibNull.inf\r
-  CacheLib|IntelFspPkg/Library/BaseCacheLib/BaseCacheLib.inf\r
-  FspCommonLib|IntelFspPkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf\r
-  FspPlatformLib|IntelFspPkg/Library/BaseFspPlatformLib/BaseFspPlatformLib.inf\r
-  FspSwitchStackLib|IntelFspPkg/Library/BaseFspSwitchStackLib/BaseFspSwitchStackLib.inf\r
-  FspSecPlatformLib|IntelFspPkg/Library/SecFspSecPlatformLibNull/SecFspSecPlatformLibNull.inf\r
-\r
-[LibraryClasses.common.PEIM]\r
-  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf\r
-  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf\r
-  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
-  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r
-  ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf\r
-\r
-  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
-\r
-[Components]\r
-  IntelFspPkg/Library/BaseCacheAsRamLibNull/BaseCacheAsRamLibNull.inf\r
-  IntelFspPkg/Library/BaseCacheLib/BaseCacheLib.inf\r
-  IntelFspPkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf\r
-  IntelFspPkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSerialPort.inf\r
-  IntelFspPkg/Library/BaseFspPlatformLib/BaseFspPlatformLib.inf\r
-  IntelFspPkg/Library/BaseFspSwitchStackLib/BaseFspSwitchStackLib.inf\r
-\r
-  IntelFspPkg/FspSecCore/FspSecCore.inf\r
-  IntelFspPkg/FspDxeIpl/FspDxeIpl.inf\r
-\r
-[PcdsFixedAtBuild.common]\r
-  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x1f\r
-  gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80080046\r
-  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07\r
-\r
-[BuildOptions]\r
-  *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES\r
diff --git a/IntelFspPkg/Library/BaseCacheAsRamLibNull/BaseCacheAsRamLibNull.inf b/IntelFspPkg/Library/BaseCacheAsRamLibNull/BaseCacheAsRamLibNull.inf
deleted file mode 100644 (file)
index 7d5c51c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-## @file\r
-#  NULL instance of Base cache as RAM.\r
-#\r
-#  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = BaseCacheAsRamLibNull\r
-  FILE_GUID                      = FBB4A01B-947E-4d82-B27D-1E207C070053\r
-  MODULE_TYPE                    = BASE\r
-  VERSION_STRING                 = 1.0\r
-  LIBRARY_CLASS                  = CacheAsRamLib\r
-\r
-[sources.common]\r
-  DisableCacheAsRamNull.c\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  IntelFspPkg/IntelFspPkg.dec\r
-\r
-[LibraryClasses]\r
-\r
diff --git a/IntelFspPkg/Library/BaseCacheAsRamLibNull/DisableCacheAsRamNull.c b/IntelFspPkg/Library/BaseCacheAsRamLibNull/DisableCacheAsRamNull.c
deleted file mode 100644 (file)
index 78abb6d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#include <Uefi.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/CacheAsRamLib.h>\r
-\r
-/**\r
-  This function disable CAR.\r
-\r
-  @param[in] DisableCar       TRUE means use INVD, FALSE means use WBINVD\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DisableCacheAsRam (\r
-  IN BOOLEAN                   DisableCar\r
-  )\r
-{\r
-  //\r
-  // Disable CAR\r
-  //\r
-\r
-  if (DisableCar) {\r
-    AsmInvd ();\r
-  } else {\r
-    AsmWbinvd();\r
-  }\r
-\r
-  return ;\r
-}\r
diff --git a/IntelFspPkg/Library/BaseCacheLib/BaseCacheLib.inf b/IntelFspPkg/Library/BaseCacheLib/BaseCacheLib.inf
deleted file mode 100644 (file)
index 17b2284..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-## @file\r
-#  Instance of BaseCache.\r
-#\r
-#  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = BaseCacheLib\r
-  FILE_GUID                      = 01359d99-9446-456d-ada4-50a711c03adb\r
-  MODULE_TYPE                    = BASE\r
-  VERSION_STRING                 = 1.0\r
-  LIBRARY_CLASS                  = CacheLib\r
-\r
-[sources.IA32]\r
-  CacheLib.c\r
-  CacheLibInternal.h\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  IntelFspPkg/IntelFspPkg.dec\r
-\r
-[LibraryClasses]\r
-  BaseMemoryLib\r
-  CacheAsRamLib\r
-\r
diff --git a/IntelFspPkg/Library/BaseCacheLib/CacheLib.c b/IntelFspPkg/Library/BaseCacheLib/CacheLib.c
deleted file mode 100644 (file)
index 927cee1..0000000
+++ /dev/null
@@ -1,697 +0,0 @@
-/** @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
-#include <Uefi.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/CacheLib.h>\r
-#include <Library/CacheAsRamLib.h>\r
-#include "CacheLibInternal.h"\r
-\r
-/**\r
-  Search the memory cache type for specific memory from MTRR.\r
-\r
-  @param[in]  MemoryAddress         the address of target memory\r
-  @param[in]  MemoryLength          the length of target memory\r
-  @param[in]  ValidMtrrAddressMask  the MTRR address mask\r
-  @param[out] UsedMsrNum            the used MSR number\r
-  @param[out] UsedMemoryCacheType   the cache type for the target memory\r
-\r
-  @retval EFI_SUCCESS    The memory is found in MTRR and cache type is returned\r
-  @retval EFI_NOT_FOUND  The memory is not found in MTRR\r
-\r
-**/\r
-EFI_STATUS\r
-SearchForExactMtrr (\r
-  IN  EFI_PHYSICAL_ADDRESS      MemoryAddress,\r
-  IN  UINT64                    MemoryLength,\r
-  IN  UINT64                    ValidMtrrAddressMask,\r
-  OUT UINT32                    *UsedMsrNum,\r
-  OUT EFI_MEMORY_CACHE_TYPE     *MemoryCacheType\r
-  );\r
-\r
-/**\r
-  Check if CacheType match current default setting.\r
-\r
-  @param[in] MemoryCacheType  input cache type to be checked.\r
-\r
-  @retval TRUE MemoryCacheType is default MTRR setting.\r
-  @retval FALSE MemoryCacheType is NOT default MTRR setting.\r
-**/\r
-BOOLEAN\r
-IsDefaultType (\r
-  IN  EFI_MEMORY_CACHE_TYPE     MemoryCacheType\r
-  );\r
-\r
-/**\r
-  Return MTRR alignment requirement for base address and size.\r
-\r
-  @param[in]  BaseAddress     Base address.\r
-  @param[in]  Size            Size.\r
-\r
-  @retval Zero      Alligned.\r
-  @retval Non-Zero  Not alligned.\r
-\r
-**/\r
-UINT32\r
-CheckMtrrAlignment (\r
-  IN  UINT64                    BaseAddress,\r
-  IN  UINT64                    Size\r
-  );\r
-\r
-typedef struct {\r
-  UINT32    Msr;\r
-  UINT32    BaseAddress;\r
-  UINT32    Length;\r
-} EFI_FIXED_MTRR;\r
-\r
-EFI_FIXED_MTRR mFixedMtrrTable[] = {\r
-  { EFI_MSR_IA32_MTRR_FIX64K_00000, 0,       0x10000},\r
-  { EFI_MSR_IA32_MTRR_FIX16K_80000, 0x80000, 0x4000},\r
-  { EFI_MSR_IA32_MTRR_FIX16K_A0000, 0xA0000, 0x4000},\r
-  { EFI_MSR_IA32_MTRR_FIX4K_C0000,  0xC0000, 0x1000},\r
-  { EFI_MSR_IA32_MTRR_FIX4K_C8000,  0xC8000, 0x1000},\r
-  { EFI_MSR_IA32_MTRR_FIX4K_D0000,  0xD0000, 0x1000},\r
-  { EFI_MSR_IA32_MTRR_FIX4K_D8000,  0xD8000, 0x1000},\r
-  { EFI_MSR_IA32_MTRR_FIX4K_E0000,  0xE0000, 0x1000},\r
-  { EFI_MSR_IA32_MTRR_FIX4K_E8000,  0xE8000, 0x1000},\r
-  { EFI_MSR_IA32_MTRR_FIX4K_F0000,  0xF0000, 0x1000},\r
-  { EFI_MSR_IA32_MTRR_FIX4K_F8000,  0xF8000, 0x1000}\r
-};\r
-\r
-/**\r
-  Given the input, check if the number of MTRR is lesser.\r
-  if positive or subtractive.\r
-\r
-  @param[in]  Input   Length of Memory to program MTRR.\r
-\r
-  @retval  Zero      do positive.\r
-  @retval  Non-Zero  do subtractive.\r
-\r
-**/\r
-INT8\r
-CheckDirection (\r
-  IN  UINT64                    Input\r
-  )\r
-{\r
-  return 0;\r
-}\r
-\r
-/**\r
-  Disable cache and its mtrr.\r
-\r
-  @param[out]  OldMtrr To return the Old MTRR value\r
-\r
-**/\r
-VOID\r
-EfiDisableCacheMtrr (\r
-  OUT UINT64                   *OldMtrr\r
-  )\r
-{\r
-  UINT64  TempQword;\r
-\r
-  //\r
-  // Disable Cache MTRR\r
-  //\r
-  *OldMtrr = AsmReadMsr64(EFI_MSR_CACHE_IA32_MTRR_DEF_TYPE);\r
-  TempQword = (*OldMtrr) & ~B_EFI_MSR_GLOBAL_MTRR_ENABLE & ~B_EFI_MSR_FIXED_MTRR_ENABLE;\r
-  AsmWriteMsr64(EFI_MSR_CACHE_IA32_MTRR_DEF_TYPE, TempQword);\r
-  AsmDisableCache ();\r
-}\r
-\r
-/**\r
-  Recover cache MTRR.\r
-\r
-  @param[in] EnableMtrr Whether to enable the MTRR\r
-  @param[in] OldMtrr    The saved old MTRR value to restore when not to enable the MTRR\r
-\r
-**/\r
-VOID\r
-EfiRecoverCacheMtrr (\r
-  IN BOOLEAN                  EnableMtrr,\r
-  IN UINT64                   OldMtrr\r
-  )\r
-{\r
-  UINT64  TempQword;\r
-\r
-  //\r
-  // Enable Cache MTRR\r
-  //\r
-  if (EnableMtrr) {\r
-    TempQword = AsmReadMsr64(EFI_MSR_CACHE_IA32_MTRR_DEF_TYPE);\r
-    TempQword |= (UINT64)(B_EFI_MSR_GLOBAL_MTRR_ENABLE | B_EFI_MSR_FIXED_MTRR_ENABLE);\r
-  } else {\r
-    TempQword = OldMtrr;\r
-  }\r
-\r
-  AsmWriteMsr64 (EFI_MSR_CACHE_IA32_MTRR_DEF_TYPE, TempQword);\r
-\r
-  AsmEnableCache ();\r
-}\r
-\r
-/**\r
-  Programming MTRR according to Memory address, length, and type.\r
-\r
-  @param[in] MtrrNumber           the variable MTRR index number\r
-  @param[in] MemoryAddress        the address of target memory\r
-  @param[in] MemoryLength         the length of target memory\r
-  @param[in] MemoryCacheType      the cache type of target memory\r
-  @param[in] ValidMtrrAddressMask the MTRR address mask\r
-\r
-**/\r
-VOID\r
-EfiProgramMtrr (\r
-  IN  UINTN                     MtrrNumber,\r
-  IN  EFI_PHYSICAL_ADDRESS      MemoryAddress,\r
-  IN  UINT64                    MemoryLength,\r
-  IN  EFI_MEMORY_CACHE_TYPE     MemoryCacheType,\r
-  IN  UINT64                    ValidMtrrAddressMask\r
-  )\r
-{\r
-  UINT64                        TempQword;\r
-  UINT64                        OldMtrr;\r
-\r
-  if (MemoryLength == 0) {\r
-    return;\r
-  }\r
-\r
-  EfiDisableCacheMtrr (&OldMtrr);\r
-\r
-  //\r
-  // MTRR Physical Base\r
-  //\r
-  TempQword = (MemoryAddress & ValidMtrrAddressMask) | MemoryCacheType;\r
-  AsmWriteMsr64 (MtrrNumber, TempQword);\r
-\r
-  //\r
-  // MTRR Physical Mask\r
-  //\r
-  TempQword = ~(MemoryLength - 1);\r
-  AsmWriteMsr64 (MtrrNumber + 1, (TempQword & ValidMtrrAddressMask) | B_EFI_MSR_CACHE_MTRR_VALID);\r
-\r
-  EfiRecoverCacheMtrr (TRUE, OldMtrr);\r
-}\r
-\r
-/**\r
-  Calculate the maximum value which is a power of 2, but less the MemoryLength.\r
-\r
-  @param[in]  MemoryAddress       Memory address.\r
-  @param[in]  MemoryLength        The number to pass in.\r
-\r
-  @return The maximum value which is align to power of 2 and less the MemoryLength\r
-\r
-**/\r
-UINT64\r
-Power2MaxMemory (\r
-  IN UINT64                 MemoryAddress,\r
-  IN UINT64                 MemoryLength\r
-  )\r
-{\r
-  UINT64                    Result;\r
-\r
-  if (MemoryLength == 0) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  //\r
-  // Compute inital power of 2 size to return\r
-  //\r
-  Result = GetPowerOfTwo64(MemoryLength);\r
-\r
-  //\r
-  // Special case base of 0 as all ranges are valid\r
-  //\r
-  if (MemoryAddress == 0) {\r
-    return Result;\r
-  }\r
-\r
-  //\r
-  // Loop till a value that can be mapped to this base address is found\r
-  //\r
-  while (CheckMtrrAlignment (MemoryAddress, Result) != 0) {\r
-    //\r
-    // Need to try the next smaller power of 2\r
-    //\r
-    Result = RShiftU64 (Result, 1);\r
-  }\r
-\r
-  return Result;\r
-}\r
-\r
-/**\r
-  Return MTRR alignment requirement for base address and size.\r
-\r
-  @param[in]  BaseAddress     Base address.\r
-  @param[in]  Size            Size.\r
-\r
-  @retval Zero      Alligned.\r
-  @retval Non-Zero  Not alligned.\r
-\r
-**/\r
-UINT32\r
-CheckMtrrAlignment (\r
-  IN  UINT64    BaseAddress,\r
-  IN  UINT64    Size\r
-  )\r
-{\r
-  UINT32      ShiftedBase;\r
-  UINT32      ShiftedSize;\r
-\r
-  //\r
-  // Shift base and size right 12 bits to allow for larger memory sizes.  The\r
-  // MTRRs do not use the first 12 bits so this is safe for now.  Only supports\r
-  // up to 52 bits of physical address space.\r
-  //\r
-  ShiftedBase = (UINT32) RShiftU64 (BaseAddress, 12);\r
-  ShiftedSize = (UINT32) RShiftU64 (Size, 12);\r
-\r
-  //\r
-  // Return the results to the caller of the MOD\r
-  //\r
-  return ShiftedBase % ShiftedSize;\r
-}\r
-\r
-/**\r
-  Programs fixed MTRRs registers.\r
-\r
-  @param[in]  MemoryCacheType  The memory type to set.\r
-  @param[in]  Base             The base address of memory range.\r
-  @param[in]  Length           The length of memory range.\r
-\r
-  @retval RETURN_SUCCESS      The cache type was updated successfully\r
-  @retval RETURN_UNSUPPORTED  The requested range or cache type was invalid\r
-                              for the fixed MTRRs.\r
-\r
-**/\r
-EFI_STATUS\r
-ProgramFixedMtrr (\r
-  IN  EFI_MEMORY_CACHE_TYPE     MemoryCacheType,\r
-  IN  UINT64                    *Base,\r
-  IN  UINT64                    *Len\r
-  )\r
-{\r
-  UINT32                      MsrNum;\r
-  UINT32                      ByteShift;\r
-  UINT64                      TempQword;\r
-  UINT64                      OrMask;\r
-  UINT64                      ClearMask;\r
-\r
-  TempQword = 0;\r
-  OrMask =  0;\r
-  ClearMask = 0;\r
-\r
-  for (MsrNum = 0; MsrNum < V_EFI_FIXED_MTRR_NUMBER; MsrNum++) {\r
-    if ((*Base >= mFixedMtrrTable[MsrNum].BaseAddress) &&\r
-        (*Base < (mFixedMtrrTable[MsrNum].BaseAddress + 8 * mFixedMtrrTable[MsrNum].Length))) {\r
-      break;\r
-    }\r
-  }\r
-  if (MsrNum == V_EFI_FIXED_MTRR_NUMBER ) {\r
-    return EFI_DEVICE_ERROR;\r
-  }\r
-  //\r
-  // We found the fixed MTRR to be programmed\r
-  //\r
-  for (ByteShift=0; ByteShift < 8; ByteShift++) {\r
-    if ( *Base == (mFixedMtrrTable[MsrNum].BaseAddress + ByteShift * mFixedMtrrTable[MsrNum].Length)) {\r
-      break;\r
-    }\r
-  }\r
-  if (ByteShift == 8 ) {\r
-    return EFI_DEVICE_ERROR;\r
-  }\r
-  for (; ((ByteShift<8) && (*Len >= mFixedMtrrTable[MsrNum].Length));ByteShift++) {\r
-    OrMask |= LShiftU64((UINT64) MemoryCacheType, (UINT32) (ByteShift* 8));\r
-    ClearMask |= LShiftU64((UINT64) 0xFF, (UINT32) (ByteShift * 8));\r
-    *Len -= mFixedMtrrTable[MsrNum].Length;\r
-    *Base += mFixedMtrrTable[MsrNum].Length;\r
-  }\r
-  TempQword = (AsmReadMsr64 (mFixedMtrrTable[MsrNum].Msr) & (~ClearMask)) | OrMask;\r
-  AsmWriteMsr64 (mFixedMtrrTable[MsrNum].Msr, TempQword);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Check if there is a valid variable MTRR that overlaps the given range.\r
-\r
-  @param[in]  Start  Base Address of the range to check.\r
-  @param[in]  End    End address of the range to check.\r
-\r
-  @retval TRUE   Mtrr overlap.\r
-  @retval FALSE  Mtrr not overlap.\r
-**/\r
-BOOLEAN\r
-CheckMtrrOverlap (\r
-  IN  EFI_PHYSICAL_ADDRESS      Start,\r
-  IN  EFI_PHYSICAL_ADDRESS      End\r
-  )\r
-{\r
-  return FALSE;\r
-}\r
-\r
-/**\r
-  Given the memory range and cache type, programs the MTRRs.\r
-\r
-  @param[in] MemoryAddress           Base Address of Memory to program MTRR.\r
-  @param[in] MemoryLength            Length of Memory to program MTRR.\r
-  @param[in] MemoryCacheType         Cache Type.\r
-\r
-  @retval EFI_SUCCESS            Mtrr are set successfully.\r
-  @retval EFI_LOAD_ERROR         No empty MTRRs to use.\r
-  @retval EFI_INVALID_PARAMETER  The input parameter is not valid.\r
-  @retval others                 An error occurs when setting MTTR.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SetCacheAttributes (\r
-  IN  EFI_PHYSICAL_ADDRESS      MemoryAddress,\r
-  IN  UINT64                    MemoryLength,\r
-  IN  EFI_MEMORY_CACHE_TYPE     MemoryCacheType\r
-  )\r
-{\r
-  EFI_STATUS            Status;\r
-  UINT32                MsrNum, MsrNumEnd;\r
-  UINT64                TempQword;\r
-  UINT32                LastVariableMtrrForBios;\r
-  UINT64                OldMtrr;\r
-  UINT32                UsedMsrNum;\r
-  EFI_MEMORY_CACHE_TYPE UsedMemoryCacheType;\r
-  UINT64                ValidMtrrAddressMask;\r
-  UINT32                Cpuid_RegEax;\r
-\r
-  AsmCpuid (CPUID_EXTENDED_FUNCTION, &Cpuid_RegEax, NULL, NULL, NULL);\r
-  if (Cpuid_RegEax >= CPUID_VIR_PHY_ADDRESS_SIZE) {\r
-    AsmCpuid (CPUID_VIR_PHY_ADDRESS_SIZE, &Cpuid_RegEax, NULL, NULL, NULL);\r
-    ValidMtrrAddressMask = (LShiftU64((UINT64) 1, (Cpuid_RegEax & 0xFF)) - 1) & (~(UINT64)0x0FFF);\r
-  } else {\r
-    ValidMtrrAddressMask = (LShiftU64((UINT64) 1, 36) - 1) & (~(UINT64)0x0FFF);\r
-  }\r
-\r
-  //\r
-  // Check for invalid parameter\r
-  //\r
-  if ((MemoryAddress & ~ValidMtrrAddressMask) != 0 || (MemoryLength & ~ValidMtrrAddressMask) != 0) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (MemoryLength == 0) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  switch (MemoryCacheType) {\r
-    case EFI_CACHE_UNCACHEABLE:\r
-    case EFI_CACHE_WRITECOMBINING:\r
-    case EFI_CACHE_WRITETHROUGH:\r
-    case EFI_CACHE_WRITEPROTECTED:\r
-    case EFI_CACHE_WRITEBACK:\r
-      break;\r
-\r
-    default:\r
-      return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  //\r
-  // Check if Fixed MTRR\r
-  //\r
-  if ((MemoryAddress + MemoryLength) <= (1 << 20)) {\r
-    Status = EFI_SUCCESS;\r
-    EfiDisableCacheMtrr (&OldMtrr);\r
-    while ((MemoryLength > 0) && (Status == EFI_SUCCESS)) {\r
-      Status = ProgramFixedMtrr (MemoryCacheType, &MemoryAddress, &MemoryLength);\r
-    }\r
-    EfiRecoverCacheMtrr (TRUE, OldMtrr);\r
-    return Status;\r
-  }\r
-\r
-  //\r
-  // Search if the range attribute has been set before\r
-  //\r
-  Status = SearchForExactMtrr(\r
-                              MemoryAddress,\r
-                              MemoryLength,\r
-                              ValidMtrrAddressMask,\r
-                              &UsedMsrNum,\r
-                              &UsedMemoryCacheType\r
-                              );\r
-\r
-  if (!EFI_ERROR(Status)) {\r
-    //\r
-    // Compare if it has the same type as current setting\r
-    //\r
-    if (UsedMemoryCacheType == MemoryCacheType) {\r
-      return EFI_SUCCESS;\r
-    } else {\r
-      //\r
-      // Different type\r
-      //\r
-\r
-      //\r
-      // Check if the set type is the same as Default Type\r
-      //\r
-      if (IsDefaultType(MemoryCacheType)) {\r
-        //\r
-        // Clear the MTRR\r
-        //\r
-        AsmWriteMsr64(UsedMsrNum, 0);\r
-        AsmWriteMsr64(UsedMsrNum + 1, 0);\r
-\r
-        return EFI_SUCCESS;\r
-      } else {\r
-        //\r
-        // Modify the MTRR type\r
-        //\r
-        EfiProgramMtrr(UsedMsrNum,\r
-                       MemoryAddress,\r
-                       MemoryLength,\r
-                       MemoryCacheType,\r
-                       ValidMtrrAddressMask\r
-                       );\r
-        return EFI_SUCCESS;\r
-      }\r
-    }\r
-  }\r
-\r
-#if 0\r
-  //\r
-  // @bug - Need to create memory map so that when checking for overlap we\r
-  //        can determine if an overlap exists based on all caching requests.\r
-  //\r
-  // Don't waste a variable MTRR if the caching attrib is same as default in MTRR_DEF_TYPE\r
-  //\r
-  if (MemoryCacheType == (AsmReadMsr64(EFI_MSR_CACHE_IA32_MTRR_DEF_TYPE) & B_EFI_MSR_CACHE_MEMORY_TYPE))  {\r
-    if (!CheckMtrrOverlap (MemoryAddress, MemoryAddress+MemoryLength-1)) {\r
-      return EFI_SUCCESS;\r
-    }\r
-  }\r
-#endif\r
-\r
-  //\r
-  // Find first unused MTRR\r
-  //\r
-  MsrNumEnd = EFI_MSR_CACHE_VARIABLE_MTRR_BASE + (2 * (UINT32)(AsmReadMsr64(EFI_MSR_IA32_MTRR_CAP) & B_EFI_MSR_IA32_MTRR_CAP_VARIABLE_SUPPORT));\r
-  for (MsrNum = EFI_MSR_CACHE_VARIABLE_MTRR_BASE; MsrNum < MsrNumEnd; MsrNum +=2) {\r
-    if ((AsmReadMsr64(MsrNum+1) & B_EFI_MSR_CACHE_MTRR_VALID) == 0 ) {\r
-      break;\r
-    }\r
-  }\r
-\r
-  //\r
-  // Reserve 1 MTRR pair for OS.\r
-  //\r
-  LastVariableMtrrForBios = MsrNumEnd - 1 - (EFI_CACHE_NUM_VAR_MTRR_PAIRS_FOR_OS * 2);\r
-  if (MsrNum > LastVariableMtrrForBios) {\r
-    return EFI_LOAD_ERROR;\r
-  }\r
-\r
-  //\r
-  // Special case for 1 MB base address\r
-  //\r
-  if (MemoryAddress == BASE_1MB) {\r
-    MemoryAddress = 0;\r
-  }\r
-\r
-  //\r
-  // Program MTRRs\r
-  //\r
-  TempQword = MemoryLength;\r
-\r
-  if (TempQword == Power2MaxMemory(MemoryAddress, TempQword)) {\r
-    EfiProgramMtrr(MsrNum,\r
-                   MemoryAddress,\r
-                   MemoryLength,\r
-                   MemoryCacheType,\r
-                   ValidMtrrAddressMask\r
-                   );\r
-\r
-  } else {\r
-    //\r
-    // Fill in MTRRs with values.  Direction can not be checked for this method\r
-    // as we are using WB as the default cache type and only setting areas to UC.\r
-    //\r
-    do {\r
-      //\r
-      // Do boundary check so we don't go past last MTRR register\r
-      // for BIOS use.  Leave one MTRR pair for OS use.\r
-      //\r
-      if (MsrNum > LastVariableMtrrForBios) {\r
-        return EFI_LOAD_ERROR;\r
-      }\r
-\r
-      //\r
-      // Set next power of 2 region\r
-      //\r
-      MemoryLength = Power2MaxMemory(MemoryAddress, TempQword);\r
-      EfiProgramMtrr(MsrNum,\r
-                     MemoryAddress,\r
-                     MemoryLength,\r
-                     MemoryCacheType,\r
-                     ValidMtrrAddressMask\r
-                     );\r
-      MemoryAddress += MemoryLength;\r
-      TempQword -= MemoryLength;\r
-      MsrNum += 2;\r
-    } while (TempQword != 0);\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
- Reset all the MTRRs to a known state.\r
-\r
-  @retval  EFI_SUCCESS All MTRRs have been reset successfully.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-ResetCacheAttributes (\r
-  VOID\r
-  )\r
-{\r
-  UINT32                      MsrNum, MsrNumEnd;\r
-  UINT16                      Index;\r
-  UINT64                      OldMtrr;\r
-  UINT64                      CacheType;\r
-  BOOLEAN                     DisableCar;\r
-  Index = 0;\r
-  DisableCar = TRUE;\r
-\r
-  //\r
-  // Determine default cache type\r
-  //\r
-  CacheType = EFI_CACHE_UNCACHEABLE;\r
-\r
-  //\r
-  // Set default cache type\r
-  //\r
-  AsmWriteMsr64(EFI_MSR_CACHE_IA32_MTRR_DEF_TYPE, CacheType);\r
-\r
-  //\r
-  // Disable CAR\r
-  //\r
-  DisableCacheAsRam (DisableCar);\r
-\r
-  EfiDisableCacheMtrr (&OldMtrr);\r
-\r
-  //\r
-  // Reset Fixed MTRRs\r
-  //\r
-  for (Index = 0; Index < V_EFI_FIXED_MTRR_NUMBER; Index++) {\r
-    AsmWriteMsr64 (mFixedMtrrTable[Index].Msr, 0);\r
-  }\r
-\r
-  //\r
-  // Reset Variable MTRRs\r
-  //\r
-  MsrNumEnd = EFI_MSR_CACHE_VARIABLE_MTRR_BASE + (2 * (UINT32)(AsmReadMsr64(EFI_MSR_IA32_MTRR_CAP) & B_EFI_MSR_IA32_MTRR_CAP_VARIABLE_SUPPORT));\r
-  for (MsrNum = EFI_MSR_CACHE_VARIABLE_MTRR_BASE; MsrNum < MsrNumEnd; MsrNum++) {\r
-    AsmWriteMsr64 (MsrNum, 0);\r
-  }\r
-\r
-  //\r
-  // Enable Fixed and Variable MTRRs\r
-  //\r
-  EfiRecoverCacheMtrr (TRUE, OldMtrr);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Search the memory cache type for specific memory from MTRR.\r
-\r
-  @param[in]  MemoryAddress         the address of target memory\r
-  @param[in]  MemoryLength          the length of target memory\r
-  @param[in]  ValidMtrrAddressMask  the MTRR address mask\r
-  @param[out] UsedMsrNum            the used MSR number\r
-  @param[out] UsedMemoryCacheType   the cache type for the target memory\r
-\r
-  @retval EFI_SUCCESS    The memory is found in MTRR and cache type is returned\r
-  @retval EFI_NOT_FOUND  The memory is not found in MTRR\r
-\r
-**/\r
-EFI_STATUS\r
-SearchForExactMtrr (\r
-  IN  EFI_PHYSICAL_ADDRESS      MemoryAddress,\r
-  IN  UINT64                    MemoryLength,\r
-  IN  UINT64                    ValidMtrrAddressMask,\r
-  OUT UINT32                    *UsedMsrNum,\r
-  OUT EFI_MEMORY_CACHE_TYPE     *UsedMemoryCacheType\r
-  )\r
-{\r
-  UINT32                      MsrNum, MsrNumEnd;\r
-  UINT64                      TempQword;\r
-\r
-  if (MemoryLength == 0) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  MsrNumEnd = EFI_MSR_CACHE_VARIABLE_MTRR_BASE + (2 * (UINT32)(AsmReadMsr64(EFI_MSR_IA32_MTRR_CAP) & B_EFI_MSR_IA32_MTRR_CAP_VARIABLE_SUPPORT));\r
-  for (MsrNum = EFI_MSR_CACHE_VARIABLE_MTRR_BASE; MsrNum < MsrNumEnd; MsrNum +=2) {\r
-    TempQword = AsmReadMsr64(MsrNum+1);\r
-    if ((TempQword & B_EFI_MSR_CACHE_MTRR_VALID) == 0) {\r
-      continue;\r
-    }\r
-\r
-    if ((TempQword & ValidMtrrAddressMask) != ((~(MemoryLength - 1)) & ValidMtrrAddressMask)) {\r
-      continue;\r
-    }\r
-\r
-    TempQword = AsmReadMsr64 (MsrNum);\r
-    if ((TempQword & ValidMtrrAddressMask) != (MemoryAddress & ValidMtrrAddressMask)) {\r
-      continue;\r
-    }\r
-\r
-    *UsedMemoryCacheType = (EFI_MEMORY_CACHE_TYPE)(TempQword & B_EFI_MSR_CACHE_MEMORY_TYPE);\r
-    *UsedMsrNum = MsrNum;\r
-\r
-    return EFI_SUCCESS;\r
-  }\r
-\r
-  return EFI_NOT_FOUND;\r
-}\r
-\r
-/**\r
-  Check if CacheType match current default setting.\r
-\r
-  @param[in] MemoryCacheType  input cache type to be checked.\r
-\r
-  @retval TRUE MemoryCacheType is default MTRR setting.\r
-  @retval TRUE MemoryCacheType is NOT default MTRR setting.\r
-**/\r
-BOOLEAN\r
-IsDefaultType (\r
-  IN  EFI_MEMORY_CACHE_TYPE     MemoryCacheType\r
-  )\r
-{\r
-  if ((AsmReadMsr64(EFI_MSR_CACHE_IA32_MTRR_DEF_TYPE) & B_EFI_MSR_CACHE_MEMORY_TYPE) != MemoryCacheType) {\r
-    return FALSE;\r
-  }\r
-\r
-  return TRUE;\r
-}\r
-\r
diff --git a/IntelFspPkg/Library/BaseCacheLib/CacheLibInternal.h b/IntelFspPkg/Library/BaseCacheLib/CacheLibInternal.h
deleted file mode 100644 (file)
index 56d3727..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _CACHE_LIB_INTERNAL_H_\r
-#define _CACHE_LIB_INTERNAL_H_\r
-\r
-#define EFI_MSR_CACHE_VARIABLE_MTRR_BASE       0x00000200\r
-#define EFI_MSR_CACHE_VARIABLE_MTRR_END        0x0000020F\r
-#define   V_EFI_FIXED_MTRR_NUMBER                                      11\r
-\r
-#define EFI_MSR_IA32_MTRR_FIX64K_00000         0x00000250\r
-#define EFI_MSR_IA32_MTRR_FIX16K_80000         0x00000258\r
-#define EFI_MSR_IA32_MTRR_FIX16K_A0000         0x00000259\r
-#define EFI_MSR_IA32_MTRR_FIX4K_C0000          0x00000268\r
-#define EFI_MSR_IA32_MTRR_FIX4K_C8000          0x00000269\r
-#define EFI_MSR_IA32_MTRR_FIX4K_D0000          0x0000026A\r
-#define EFI_MSR_IA32_MTRR_FIX4K_D8000          0x0000026B\r
-#define EFI_MSR_IA32_MTRR_FIX4K_E0000          0x0000026C\r
-#define EFI_MSR_IA32_MTRR_FIX4K_E8000          0x0000026D\r
-#define EFI_MSR_IA32_MTRR_FIX4K_F0000          0x0000026E\r
-#define EFI_MSR_IA32_MTRR_FIX4K_F8000          0x0000026F\r
-#define EFI_MSR_CACHE_IA32_MTRR_DEF_TYPE       0x000002FF\r
-#define   B_EFI_MSR_CACHE_MTRR_VALID                                   BIT11\r
-#define   B_EFI_MSR_GLOBAL_MTRR_ENABLE                                 BIT11\r
-#define   B_EFI_MSR_FIXED_MTRR_ENABLE                                  BIT10\r
-#define   B_EFI_MSR_CACHE_MEMORY_TYPE                                  (BIT2 | BIT1 | BIT0)\r
-\r
-#define EFI_MSR_VALID_MASK                     0xFFFFFFFFF\r
-#define EFI_CACHE_VALID_ADDRESS                0xFFFFFF000\r
-#define EFI_SMRR_CACHE_VALID_ADDRESS           0xFFFFF000\r
-#define EFI_CACHE_VALID_EXTENDED_ADDRESS       0xFFFFFFFFFF000\r
-\r
-// Leave one MTRR pairs for OS use\r
-#define EFI_CACHE_NUM_VAR_MTRR_PAIRS_FOR_OS   1\r
-#define EFI_CACHE_LAST_VARIABLE_MTRR_FOR_BIOS (EFI_MSR_CACHE_VARIABLE_MTRR_END) - \\r
-        (EFI_CACHE_NUM_VAR_MTRR_PAIRS_FOR_OS * 2)\r
-\r
-#define EFI_MSR_IA32_MTRR_CAP                  0x000000FE\r
-#define   B_EFI_MSR_IA32_MTRR_CAP_EMRR_SUPPORT                         BIT12\r
-#define   B_EFI_MSR_IA32_MTRR_CAP_SMRR_SUPPORT                         BIT11\r
-#define   B_EFI_MSR_IA32_MTRR_CAP_WC_SUPPORT                           BIT10\r
-#define   B_EFI_MSR_IA32_MTRR_CAP_FIXED_SUPPORT                        BIT8\r
-#define   B_EFI_MSR_IA32_MTRR_CAP_VARIABLE_SUPPORT                     (BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0)\r
-\r
-#define CPUID_VIR_PHY_ADDRESS_SIZE                                    0x80000008\r
-#define CPUID_EXTENDED_FUNCTION                                       0x80000000\r
-\r
-#endif\r
-\r
diff --git a/IntelFspPkg/Library/BaseDebugDeviceLibNull/BaseDebugDeviceLibNull.inf b/IntelFspPkg/Library/BaseDebugDeviceLibNull/BaseDebugDeviceLibNull.inf
deleted file mode 100644 (file)
index 7a78651..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-## @file\r
-#  Debug device library instance that retrieves the current enabling state for\r
-#  the platform debug output device.\r
-#\r
-#  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = BaseDebugDeviceLibNull\r
-  FILE_GUID                      = 455D16DC-E3AF-4b5f-A9AD-A4BC198085BD\r
-  MODULE_TYPE                    = BASE\r
-  VERSION_STRING                 = 1.0\r
-  LIBRARY_CLASS                  = DebugDeviceLib\r
-\r
-#\r
-#  VALID_ARCHITECTURES           = IA32\r
-#\r
-\r
-[Sources]\r
-  DebugDeviceLibNull.c\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  IntelFspPkg/IntelFspPkg.dec\r
-\r
diff --git a/IntelFspPkg/Library/BaseDebugDeviceLibNull/DebugDeviceLibNull.c b/IntelFspPkg/Library/BaseDebugDeviceLibNull/DebugDeviceLibNull.c
deleted file mode 100644 (file)
index 0bafca2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/** @file\r
-  Debug device library instance that retrieves the current enabling state for\r
-  the platform debug output device.\r
-\r
-  Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#include <Base.h>\r
-\r
-/**\r
-  Returns the debug print device enable state.\r
-\r
-  @return  Debug print device enable state.\r
-\r
-**/\r
-UINT8\r
-EFIAPI\r
-GetDebugPrintDeviceEnable (\r
-  VOID\r
-  )\r
-{\r
-  return 1;\r
-}\r
diff --git a/IntelFspPkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf b/IntelFspPkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf
deleted file mode 100644 (file)
index 7e14247..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-## @file\r
-#  Instance of FspCommonLib \r
-#  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = BaseFspCommonLib\r
-  FILE_GUID                      = 54607F66-D728-448e-A282-49E0404A557F\r
-  MODULE_TYPE                    = BASE\r
-  VERSION_STRING                 = 1.0\r
-  LIBRARY_CLASS                  = FspCommonLib\r
-\r
-[Sources]\r
-  FspCommonLib.c\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  IntelFspPkg/IntelFspPkg.dec\r
-\r
-[LibraryClasses]\r
-  BaseMemoryLib\r
-\r
-[Pcd]\r
-  gIntelFspPkgTokenSpaceGuid.PcdGlobalDataPointerAddress      ## CONSUMES\r
-\r
-[FixedPcd]\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPatchEntry              ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPerfEntry               ## CONSUMES\r
diff --git a/IntelFspPkg/Library/BaseFspCommonLib/FspCommonLib.c b/IntelFspPkg/Library/BaseFspCommonLib/FspCommonLib.c
deleted file mode 100644 (file)
index 0f48ccf..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-/** @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
-#include <PiPei.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <FspGlobalData.h>\r
-#include <FspApi.h>\r
-\r
-#pragma pack(1)\r
-\r
-//\r
-//   Cont Func Parameter 2        +0x3C\r
-//   Cont Func Parameter 1        +0x38\r
-//\r
-//   API Parameter                +0x34\r
-//   API return address           +0x30\r
-//\r
-//   push    FspInfoHeader        +0x2C\r
-//   pushfd                       +0x28\r
-//   cli\r
-//   pushad                       +0x24\r
-//   sub     esp, 8               +0x00\r
-//   sidt    fword ptr [esp]\r
-//\r
-typedef struct {\r
-  UINT16    IdtrLimit;\r
-  UINT32    IdtrBase;\r
-  UINT16    Reserved;\r
-  UINT32    Edi;\r
-  UINT32    Esi;\r
-  UINT32    Ebp;\r
-  UINT32    Esp;\r
-  UINT32    Ebx;\r
-  UINT32    Edx;\r
-  UINT32    Ecx;\r
-  UINT32    Eax;\r
-  UINT16    Flags[2];\r
-  UINT32    FspInfoHeader;\r
-  UINT32    ApiRet;\r
-  UINT32    ApiParam;\r
-} CONTEXT_STACK;\r
-\r
-#define CONTEXT_STACK_OFFSET(x)  (UINT32)&((CONTEXT_STACK *)(UINTN)0)->x\r
-\r
-#pragma pack()\r
-\r
-/**\r
-  This function sets the FSP global data pointer.\r
-\r
-  @param[in] FspData       Fsp global data pointer.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspGlobalDataPointer (\r
-  IN FSP_GLOBAL_DATA   *FspData\r
-  )\r
-{\r
-  ASSERT (FspData != NULL);\r
-  *((volatile UINT32 *)(UINTN)PcdGet32(PcdGlobalDataPointerAddress)) = (UINT32)(UINTN)FspData;\r
-}\r
-\r
-/**\r
-  This function gets the FSP global data pointer.\r
-\r
-**/\r
-FSP_GLOBAL_DATA *\r
-EFIAPI\r
-GetFspGlobalDataPointer (\r
-  VOID\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA   *FspData;\r
-\r
-  FspData = *(FSP_GLOBAL_DATA  **)(UINTN)PcdGet32(PcdGlobalDataPointerAddress);\r
-  return FspData;\r
-}\r
-\r
-/**\r
-  This function gets back the FSP API parameter passed by the bootlaoder.\r
-\r
-  @retval ApiParameter FSP API parameter passed by the bootlaoder.\r
-**/\r
-UINT32\r
-EFIAPI\r
-GetFspApiParameter (\r
-  VOID\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  return *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(ApiParam));\r
-}\r
-\r
-/**\r
-  This function sets the FSP API parameter in the stack.\r
-\r
-   @param[in] Value       New parameter value.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspApiParameter (\r
-  IN UINT32      Value\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(ApiParam)) = Value;\r
-}\r
-\r
-/**\r
-  This function sets the FSP continuation function parameters in the stack.\r
-\r
-  @param[in] Value             New parameter value to set.\r
-  @param[in] Index             Parameter index.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspContinuationFuncParameter (\r
-  IN UINT32      Value,\r
-  IN UINT32      Index\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(ApiParam) + (Index + 1) * sizeof(UINT32)) = Value;\r
-}\r
-\r
-\r
-/**\r
-  This function changes the BootLoader return address in stack.\r
-\r
-  @param[in] ReturnAddress       Address to return.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspApiReturnAddress (\r
-  IN UINT32  ReturnAddress\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(ApiRet)) = ReturnAddress;\r
-}\r
-\r
-/**\r
-  This function set the API status code returned to the BootLoader.\r
-\r
-  @param[in] ReturnStatus       Status code to return.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspApiReturnStatus (\r
-  IN UINT32  ReturnStatus\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(Eax)) = ReturnStatus;\r
-}\r
-\r
-/**\r
-  This function sets the context switching stack to a new stack frame.\r
-\r
-  @param[in] NewStackTop       New core stack to be set.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspCoreStackPointer (\r
-  IN VOID   *NewStackTop\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-  UINT32           *OldStack;\r
-  UINT32           *NewStack;\r
-  UINT32           StackContextLen;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  StackContextLen = sizeof(CONTEXT_STACK) / sizeof(UINT32);\r
-\r
-  //\r
-  // Reserve space for the ContinuationFunc two parameters\r
-  //\r
-  OldStack = (UINT32 *)FspData->CoreStack;\r
-  NewStack = (UINT32 *)NewStackTop - StackContextLen - 2;\r
-  FspData->CoreStack = (UINT32)NewStack;\r
-  while (StackContextLen-- != 0) {\r
-    *NewStack++ = *OldStack++;\r
-  }\r
-}\r
-\r
-/**\r
-  This function sets the platform specific data pointer.\r
-\r
-  @param[in] PlatformData       Fsp platform specific data pointer.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspPlatformDataPointer (\r
-  IN VOID   *PlatformData\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  FspData->PlatformData.DataPtr = PlatformData;\r
-}\r
-\r
-\r
-/**\r
-  This function gets the platform specific data pointer.\r
-\r
-   @param[in] PlatformData       Fsp platform specific data pointer.\r
-\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspPlatformDataPointer (\r
-  VOID\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  return FspData->PlatformData.DataPtr;\r
-}\r
-\r
-\r
-/**\r
-  This function sets the UPD data pointer.\r
-\r
-  @param[in] UpdDataRgnPtr   UPD data pointer.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspUpdDataPointer (\r
-  IN VOID    *UpdDataRgnPtr\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  //\r
-  // Get the Fsp Global Data Pointer\r
-  //\r
-  FspData  = GetFspGlobalDataPointer ();\r
-\r
-  //\r
-  // Set the UPD pointer.\r
-  //\r
-  FspData->UpdDataRgnPtr = UpdDataRgnPtr;\r
-}\r
-\r
-/**\r
-  This function gets the UPD data pointer.\r
-\r
-  @return UpdDataRgnPtr   UPD data pointer.\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspUpdDataPointer (\r
-  VOID\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  return FspData->UpdDataRgnPtr;\r
-}\r
-\r
-\r
-/**\r
-  This function sets the memory init UPD data pointer.\r
-\r
-  @param[in] MemoryInitUpdPtr   memory init UPD data pointer.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspMemoryInitUpdDataPointer (\r
-  IN VOID    *MemoryInitUpdPtr\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  //\r
-  // Get the Fsp Global Data Pointer\r
-  //\r
-  FspData  = GetFspGlobalDataPointer ();\r
-\r
-  //\r
-  // Set the memory init UPD pointer.\r
-  //\r
-  FspData->MemoryInitUpdPtr = MemoryInitUpdPtr;\r
-}\r
-\r
-/**\r
-  This function gets the memory init UPD data pointer.\r
-\r
-  @return memory init UPD data pointer.\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspMemoryInitUpdDataPointer (\r
-  VOID\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  return FspData->MemoryInitUpdPtr;\r
-}\r
-\r
-\r
-/**\r
-  This function sets the silicon init UPD data pointer.\r
-\r
-  @param[in] SiliconInitUpdPtr   silicon init UPD data pointer.\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspSiliconInitUpdDataPointer (\r
-  IN VOID    *SiliconInitUpdPtr\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  //\r
-  // Get the Fsp Global Data Pointer\r
-  //\r
-  FspData  = GetFspGlobalDataPointer ();\r
-\r
-  //\r
-  // Set the silicon init UPD data pointer.\r
-  //\r
-  FspData->SiliconInitUpdPtr = SiliconInitUpdPtr;\r
-}\r
-\r
-/**\r
-  This function gets the silicon init UPD data pointer.\r
-\r
-  @return silicon init UPD data pointer.\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspSiliconInitUpdDataPointer (\r
-  VOID\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  return FspData->SiliconInitUpdPtr;\r
-}\r
-\r
-\r
-/**\r
-  Set FSP measurement point timestamp.\r
-\r
-  @param[in] Id       Measurement point ID.\r
-\r
-  @return performance timestamp.\r
-**/\r
-UINT64\r
-EFIAPI\r
-SetFspMeasurePoint (\r
-  IN UINT8  Id\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  //\r
-  // Bit [55: 0]  will be the timestamp\r
-  // Bit [63:56]  will be the ID\r
-  //\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  if (FspData->PerfIdx < sizeof(FspData->PerfData) / sizeof(FspData->PerfData[0])) {\r
-    FspData->PerfData[FspData->PerfIdx] = AsmReadTsc ();\r
-    ((UINT8 *)(&FspData->PerfData[FspData->PerfIdx]))[7] = Id;\r
-  }\r
-\r
-  return FspData->PerfData[(FspData->PerfIdx)++];\r
-}\r
-\r
-/**\r
-  This function gets the FSP info header pointer.\r
-\r
-  @retval FspInfoHeader   FSP info header pointer\r
-**/\r
-FSP_INFO_HEADER *\r
-EFIAPI\r
-GetFspInfoHeader (\r
-  VOID\r
-  )\r
-{\r
-  return  GetFspGlobalDataPointer()->FspInfoHeader;\r
-}\r
-\r
-/**\r
-  This function gets the FSP info header pointer using the API stack context.\r
-\r
-  @retval FspInfoHeader   FSP info header pointer using the API stack context\r
-**/\r
-FSP_INFO_HEADER *\r
-EFIAPI\r
-GetFspInfoHeaderFromApiContext (\r
-  VOID\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  return  (FSP_INFO_HEADER *)(*(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(FspInfoHeader)));\r
-}\r
-\r
-/**\r
-  This function gets the VPD data pointer.\r
-\r
-  @return VpdDataRgnPtr   VPD data pointer.\r
-**/\r
-VOID *\r
-EFIAPI\r
-GetFspVpdDataPointer (\r
-  VOID\r
-  )\r
-{\r
-  FSP_INFO_HEADER   *FspInfoHeader;\r
-\r
-  FspInfoHeader = GetFspInfoHeader ();\r
-  return (VOID *)(FspInfoHeader->ImageBase + FspInfoHeader->CfgRegionOffset);\r
-}\r
-\r
-/**\r
-  This function gets FSP API calling mode.\r
-\r
-  @retval API calling mode\r
-**/\r
-UINT8\r
-EFIAPI\r
-GetFspApiCallingMode (\r
-  VOID\r
-  )\r
-{\r
-  return  GetFspGlobalDataPointer()->ApiMode;\r
-}\r
-\r
-/**\r
-  This function sets FSP API calling mode.\r
-\r
-  @param[in] Mode     API calling mode\r
-**/\r
-VOID\r
-EFIAPI\r
-SetFspApiCallingMode (\r
-  UINT8  Mode\r
-  )\r
-{\r
-  FSP_GLOBAL_DATA  *FspData;\r
-\r
-  FspData  = GetFspGlobalDataPointer ();\r
-  FspData->ApiMode = Mode;\r
-}\r
-\r
diff --git a/IntelFspPkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSerialPort.inf b/IntelFspPkg/Library/BaseFspDebugLibSerialPort/BaseFspDebugLibSerialPort.inf
deleted file mode 100644 (file)
index f41ccec..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-## @file\r
-#  Instance of BaseFspDebugLib\r
-#\r
-#  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = BaseFspDebugLibSerialPort\r
-  FILE_GUID                      = 9D52E46E-F07E-44e8-9A90-F8576C91C211\r
-  MODULE_TYPE                    = BASE\r
-  VERSION_STRING                 = 1.0\r
-  LIBRARY_CLASS                  = DebugLib\r
-\r
-#\r
-#  VALID_ARCHITECTURES           = IA32\r
-#\r
-\r
-[Sources]\r
-  DebugLib.c\r
-\r
-[Sources.Ia32]\r
-  Ia32/FspDebug.asm | MSFT\r
-  Ia32/FspDebug.s | GCC\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  IntelFspPkg/IntelFspPkg.dec\r
-\r
-[LibraryClasses]\r
-  SerialPortLib\r
-  BaseMemoryLib\r
-  PcdLib\r
-  PrintLib\r
-  BaseLib\r
-  DebugDeviceLib\r
-  DebugPrintErrorLevelLib\r
-\r
-[Pcd]\r
-  gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue       ## CONSUMES\r
-  gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask           ## CONSUMES\r
-  gEfiMdePkgTokenSpaceGuid.PcdFixedDebugPrintErrorLevel   ## CONSUMES\r
-\r
diff --git a/IntelFspPkg/Library/BaseFspDebugLibSerialPort/DebugLib.c b/IntelFspPkg/Library/BaseFspDebugLibSerialPort/DebugLib.c
deleted file mode 100644 (file)
index 17688c7..0000000
+++ /dev/null
@@ -1,415 +0,0 @@
-/** @file\r
-\r
-  Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.<BR>\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#include <Base.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/PrintLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/SerialPortLib.h>\r
-#include <Library/DebugDeviceLib.h>\r
-#include <Library/DebugPrintErrorLevelLib.h>\r
-\r
-//\r
-// Define the maximum debug and assert message length that this library supports\r
-//\r
-#define MAX_DEBUG_MESSAGE_LENGTH  0x100\r
-\r
-CONST CHAR8  *mHexTable = "0123456789ABCDEF";\r
-\r
-//\r
-// VA_LIST can not initialize to NULL for all compiler, so we use this to\r
-// indicate a null VA_LIST\r
-//\r
-VA_LIST     mVaListNull;\r
-\r
-/**\r
-  Get stack frame pointer of function call.\r
-\r
-  @return StackFramePointer  stack frame pointer of function call.\r
-**/\r
-UINT32 *\r
-EFIAPI\r
-GetStackFramePointer (\r
-  VOID\r
-  );\r
-\r
-\r
-/**\r
-  Prints a debug message to the debug output device if the specified error level is enabled.\r
-\r
-  If any bit in ErrorLevel is also set in DebugPrintErrorLevelLib function\r
-  GetDebugPrintErrorLevel (), then print the message specified by Format and the\r
-  associated variable argument list to the debug output device.\r
-\r
-  If Format is NULL, then ASSERT().\r
-\r
-  @param  ErrorLevel  The error level of the debug message.\r
-  @param  Format      Format string for the debug message to print.\r
-  @param  ...         Variable argument list whose contents are accessed\r
-                      based on the format string specified by Format.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DebugPrint (\r
-  IN  UINTN        ErrorLevel,\r
-  IN  CONST CHAR8  *Format,\r
-  ...\r
-  )\r
-{\r
-  VA_LIST         Marker;\r
-\r
-  VA_START (Marker, Format);\r
-  DebugVPrint (ErrorLevel, Format, Marker);\r
-  VA_END (Marker);\r
-}\r
-\r
-/**\r
-  Prints a debug message to the debug output device if the specified\r
-  error level is enabled base on Null-terminated format string and a\r
-  VA_LIST argument list or a BASE_LIST argument list.\r
-\r
-  If any bit in ErrorLevel is also set in DebugPrintErrorLevelLib function\r
-  GetDebugPrintErrorLevel (), then print the message specified by Format and\r
-  the associated variable argument list to the debug output device.\r
-\r
-  If Format is NULL, then ASSERT().\r
-\r
-  @param  ErrorLevel      The error level of the debug message.\r
-  @param  Format          Format string for the debug message to print.\r
-  @param  VaListMarker    VA_LIST marker for the variable argument list.\r
-  @param  BaseListMarker  BASE_LIST marker for the variable argument list.\r
-\r
-**/\r
-VOID\r
-DebugPrintMarker (\r
-  IN  UINTN         ErrorLevel,\r
-  IN  CONST CHAR8   *Format,\r
-  IN  VA_LIST       VaListMarker,\r
-  IN  BASE_LIST     BaseListMarker\r
-  )\r
-{\r
-  CHAR8    Buffer[MAX_DEBUG_MESSAGE_LENGTH];\r
-\r
-  //\r
-  // If Format is NULL, then ASSERT().\r
-  //\r
-  if (!GetDebugPrintDeviceEnable ()) {\r
-    return;\r
-  }\r
-\r
-  //\r
-  // Check driver debug mask value and global mask\r
-  //\r
-  if ((ErrorLevel & GetDebugPrintErrorLevel ()) == 0) {\r
-    return;\r
-  }\r
-\r
-  //\r
-  // If Format is NULL, then ASSERT().\r
-  //\r
-  ASSERT (Format != NULL);\r
-\r
-  //\r
-  // Convert the DEBUG() message to an ASCII String\r
-  //\r
-  if (BaseListMarker == NULL) {\r
-    AsciiVSPrint (Buffer, sizeof (Buffer), Format, VaListMarker);\r
-  } else {\r
-    AsciiBSPrint (Buffer, sizeof (Buffer), Format, BaseListMarker);\r
-  }\r
-\r
-  //\r
-  // Send the print string to a Serial Port\r
-  //\r
-  SerialPortWrite ((UINT8 *)Buffer, AsciiStrLen (Buffer));\r
-}\r
-\r
-/**\r
-  Prints a debug message to the debug output device if the specified\r
-  error level is enabled.\r
-\r
-  If any bit in ErrorLevel is also set in DebugPrintErrorLevelLib function\r
-  GetDebugPrintErrorLevel (), then print the message specified by Format and\r
-  the associated variable argument list to the debug output device.\r
-\r
-  If Format is NULL, then ASSERT().\r
-\r
-  @param  ErrorLevel    The error level of the debug message.\r
-  @param  Format        Format string for the debug message to print.\r
-  @param  VaListMarker  VA_LIST marker for the variable argument list.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DebugVPrint (\r
-  IN  UINTN         ErrorLevel,\r
-  IN  CONST CHAR8   *Format,\r
-  IN  VA_LIST       VaListMarker\r
-  )\r
-{\r
-  DebugPrintMarker (ErrorLevel, Format, VaListMarker, NULL);\r
-}\r
-\r
-/**\r
-  Prints a debug message to the debug output device if the specified\r
-  error level is enabled.\r
-  This function use BASE_LIST which would provide a more compatible\r
-  service than VA_LIST.\r
-\r
-  If any bit in ErrorLevel is also set in DebugPrintErrorLevelLib function\r
-  GetDebugPrintErrorLevel (), then print the message specified by Format and\r
-  the associated variable argument list to the debug output device.\r
-\r
-  If Format is NULL, then ASSERT().\r
-\r
-  @param  ErrorLevel      The error level of the debug message.\r
-  @param  Format          Format string for the debug message to print.\r
-  @param  BaseListMarker  BASE_LIST marker for the variable argument list.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DebugBPrint (\r
-  IN  UINTN         ErrorLevel,\r
-  IN  CONST CHAR8   *Format,\r
-  IN  BASE_LIST     BaseListMarker\r
-  )\r
-{\r
-  DebugPrintMarker (ErrorLevel, Format, mVaListNull, BaseListMarker);\r
-}\r
-\r
-/**\r
-  Convert an UINT32 value into HEX string sepcified by Buffer.\r
-\r
-  @param  Value   The HEX value to convert to string\r
-  @param  Buffer  The pointer to the target buffer to be filled with HEX string\r
-\r
-**/\r
-VOID\r
-FillHex (\r
-  UINT32   Value,\r
-  CHAR8   *Buffer\r
-  )\r
-{\r
-  INTN  Idx;\r
-  for (Idx = 7; Idx >= 0; Idx--) {\r
-    Buffer[Idx] = mHexTable[Value & 0x0F];\r
-    Value >>= 4;\r
-  }\r
-}\r
-\r
-/**\r
-  Prints an assert message containing a filename, line number, and description.\r
-  This may be followed by a breakpoint or a dead loop.\r
-\r
-  Print a message of the form "ASSERT <FileName>(<LineNumber>): <Description>\n"\r
-  to the debug output device.  If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of\r
-  PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if\r
-  DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then\r
-  CpuDeadLoop() is called.  If neither of these bits are set, then this function\r
-  returns immediately after the message is printed to the debug output device.\r
-  DebugAssert() must actively prevent recursion.  If DebugAssert() is called while\r
-  processing another DebugAssert(), then DebugAssert() must return immediately.\r
-\r
-  If FileName is NULL, then a <FileName> string of "(NULL) Filename" is printed.\r
-  If Description is NULL, then a <Description> string of "(NULL) Description" is printed.\r
-\r
-**/\r
-VOID\r
-DebugAssertInternal (\r
-  VOID\r
-  )\r
-{\r
-  CHAR8     Buffer[MAX_DEBUG_MESSAGE_LENGTH];\r
-  UINT32   *Frame;\r
-\r
-  Frame = (UINT32 *)GetStackFramePointer ();\r
-\r
-  //\r
-  // Generate the ASSERT() message in Ascii format\r
-  //\r
-  AsciiStrnCpyS (\r
-    Buffer,\r
-    sizeof(Buffer) / sizeof(CHAR8),\r
-    "-> EBP:0x00000000  EIP:0x00000000\n",\r
-    sizeof(Buffer) / sizeof(CHAR8) - 1\r
-    );\r
-  SerialPortWrite ((UINT8 *)"ASSERT DUMP:\n", 13);\r
-  while (Frame != NULL) {\r
-    FillHex ((UINT32)Frame, Buffer + 9);\r
-    FillHex (Frame[1], Buffer + 9 + 8 + 8);\r
-    SerialPortWrite ((UINT8 *)Buffer, AsciiStrLen (Buffer));\r
-    if ((Frame[0] > (UINT32)Frame) && (Frame[0] < (UINT32)Frame + 0x00100000)) {\r
-      Frame = (UINT32 *)Frame[0];\r
-    } else {\r
-      Frame = NULL;\r
-    }\r
-  }\r
-\r
-  //\r
-  // Dead loop\r
-  //\r
-  CpuDeadLoop ();\r
-}\r
-\r
-/**\r
-  Prints an assert message containing a filename, line number, and description.\r
-  This may be followed by a breakpoint or a dead loop.\r
-\r
-  Print a message of the form "ASSERT <FileName>(<LineNumber>): <Description>\n"\r
-  to the debug output device.  If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of\r
-  PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if\r
-  DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then\r
-  CpuDeadLoop() is called.  If neither of these bits are set, then this function\r
-  returns immediately after the message is printed to the debug output device.\r
-  DebugAssert() must actively prevent recursion.  If DebugAssert() is called while\r
-  processing another DebugAssert(), then DebugAssert() must return immediately.\r
-\r
-  If FileName is NULL, then a <FileName> string of "(NULL) Filename" is printed.\r
-  If Description is NULL, then a <Description> string of "(NULL) Description" is printed.\r
-\r
-  @param  FileName     The pointer to the name of the source file that generated the assert condition.\r
-  @param  LineNumber   The line number in the source file that generated the assert condition\r
-  @param  Description  The pointer to the description of the assert condition.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DebugAssert (\r
-  IN CONST CHAR8  *FileName,\r
-  IN UINTN        LineNumber,\r
-  IN CONST CHAR8  *Description\r
-  )\r
-{\r
-  DebugAssertInternal ();\r
-}\r
-\r
-\r
-/**\r
-  Fills a target buffer with PcdDebugClearMemoryValue, and returns the target buffer.\r
-\r
-  This function fills Length bytes of Buffer with the value specified by\r
-  PcdDebugClearMemoryValue, and returns Buffer.\r
-\r
-  If Buffer is NULL, then ASSERT().\r
-  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().\r
-\r
-  @param   Buffer  The pointer to the target buffer to be filled with PcdDebugClearMemoryValue.\r
-  @param   Length  The number of bytes in Buffer to fill with zeros PcdDebugClearMemoryValue.\r
-\r
-  @return  Buffer  The pointer to the target buffer filled with PcdDebugClearMemoryValue.\r
-\r
-**/\r
-VOID *\r
-EFIAPI\r
-DebugClearMemory (\r
-  OUT VOID  *Buffer,\r
-  IN UINTN  Length\r
-  )\r
-{\r
-  return Buffer;\r
-}\r
-\r
-\r
-/**\r
-  Returns TRUE if ASSERT() macros are enabled.\r
-\r
-  This function returns TRUE if the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of\r
-  PcdDebugProperyMask is set.  Otherwise FALSE is returned.\r
-\r
-  @retval  TRUE    The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set.\r
-  @retval  FALSE   The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is clear.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-DebugAssertEnabled (\r
-  VOID\r
-  )\r
-{\r
-  return (BOOLEAN) ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) != 0);\r
-}\r
-\r
-\r
-/**\r
-  Returns TRUE if DEBUG() macros are enabled.\r
-\r
-  This function returns TRUE if the DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of\r
-  PcdDebugProperyMask is set.  Otherwise FALSE is returned.\r
-\r
-  @retval  TRUE    The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is set.\r
-  @retval  FALSE   The DEBUG_PROPERTY_DEBUG_PRINT_ENABLED bit of PcdDebugProperyMask is clear.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-DebugPrintEnabled (\r
-  VOID\r
-  )\r
-{\r
-  return (BOOLEAN) ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_PRINT_ENABLED) != 0);\r
-}\r
-\r
-/**\r
-  Returns TRUE if DEBUG_CODE() macros are enabled.\r
-\r
-  This function returns TRUE if the DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of\r
-  PcdDebugProperyMask is set.  Otherwise FALSE is returned.\r
-\r
-  @retval  TRUE    The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is set.\r
-  @retval  FALSE   The DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit of PcdDebugProperyMask is clear.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-DebugCodeEnabled (\r
-  VOID\r
-  )\r
-{\r
-  return (BOOLEAN) ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_DEBUG_CODE_ENABLED) != 0);\r
-}\r
-\r
-\r
-/**\r
-  Returns TRUE if DEBUG_CLEAR_MEMORY() macro is enabled.\r
-\r
-  This function returns TRUE if the DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED bit of\r
-  PcdDebugProperyMask is set.  Otherwise FALSE is returned.\r
-\r
-  @retval  TRUE    The DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is set.\r
-  @retval  FALSE   The DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED bit of PcdDebugProperyMask is clear.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-DebugClearMemoryEnabled (\r
-  VOID\r
-  )\r
-{\r
-  return (BOOLEAN) ((PcdGet8(PcdDebugPropertyMask) & DEBUG_PROPERTY_CLEAR_MEMORY_ENABLED) != 0);\r
-}\r
-\r
-/**\r
-  Returns TRUE if any one of the bit is set both in ErrorLevel and PcdFixedDebugPrintErrorLevel.\r
-\r
-  This function compares the bit mask of ErrorLevel and PcdFixedDebugPrintErrorLevel.\r
-\r
-  @retval  TRUE    Current ErrorLevel is supported.\r
-  @retval  FALSE   Current ErrorLevel is not supported.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-DebugPrintLevelEnabled (\r
-  IN  CONST UINTN        ErrorLevel\r
-  )\r
-{\r
-  return (BOOLEAN) ((ErrorLevel & PcdGet32(PcdFixedDebugPrintErrorLevel)) != 0);\r
-}\r
diff --git a/IntelFspPkg/Library/BaseFspDebugLibSerialPort/Ia32/FspDebug.asm b/IntelFspPkg/Library/BaseFspDebugLibSerialPort/Ia32/FspDebug.asm
deleted file mode 100644 (file)
index 52a25f7..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-;------------------------------------------------------------------------------\r
-;\r
-; Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-; Abstract:\r
-;\r
-;   FSP Debug functions\r
-;\r
-;------------------------------------------------------------------------------\r
-\r
-    .386\r
-    .model  flat,C\r
-    .code\r
-\r
-;------------------------------------------------------------------------------\r
-; UINT32 *\r
-; EFIAPI\r
-; GetStackFramePointer (\r
-;   VOID\r
-;   );\r
-;------------------------------------------------------------------------------\r
-GetStackFramePointer  PROC  PUBLIC\r
-    mov     eax, ebp\r
-    ret\r
-GetStackFramePointer  ENDP\r
-\r
-    END\r
diff --git a/IntelFspPkg/Library/BaseFspDebugLibSerialPort/Ia32/FspDebug.s b/IntelFspPkg/Library/BaseFspDebugLibSerialPort/Ia32/FspDebug.s
deleted file mode 100644 (file)
index 4a325d1..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#------------------------------------------------------------------------------\r
-#\r
-# Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
-# SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-# Abstract:\r
-#\r
-#   FSP Debug functions\r
-#\r
-#------------------------------------------------------------------------------\r
-\r
-#------------------------------------------------------------------------------\r
-# UINT32 *\r
-# EFIAPI\r
-# GetStackFramePointer (\r
-#   VOID\r
-#   )\r
-#------------------------------------------------------------------------------\r
-ASM_GLOBAL ASM_PFX(GetStackFramePointer)\r
-ASM_PFX(GetStackFramePointer):\r
-    mov    %ebp, %eax\r
-    ret\r
-\r
-\r
diff --git a/IntelFspPkg/Library/BaseFspPlatformLib/BaseFspPlatformLib.inf b/IntelFspPkg/Library/BaseFspPlatformLib/BaseFspPlatformLib.inf
deleted file mode 100644 (file)
index 0767759..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-## @file\r
-# Instance of FspPlatformLib\r
-#\r
-#  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
-#\r
-#  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-#\r
-##\r
-\r
-[Defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = BaseFspPlatformLib\r
-  FILE_GUID                      = 7DECCDAF-361F-4ec1-9714-260BAAF6F384\r
-  MODULE_TYPE                    = BASE\r
-  VERSION_STRING                 = 1.0\r
-  LIBRARY_CLASS                  = FspPlatformLib\r
-\r
-[Sources]\r
-  FspPlatformMemory.c\r
-  FspPlatformNotify.c\r
-\r
-[Packages]\r
-  MdePkg/MdePkg.dec\r
-  IntelFspPkg/IntelFspPkg.dec\r
-\r
-[LibraryClasses]\r
-  BaseMemoryLib\r
-  MemoryAllocationLib\r
-\r
-[Pcd]\r
-  gIntelFspPkgTokenSpaceGuid.PcdGlobalDataPointerAddress    ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdTemporaryRamBase            ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdTemporaryRamSize            ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspTemporaryRamSize         ## CONSUMES\r
-\r
-[Guids]\r
-  gFspBootLoaderTemporaryMemoryGuid                         ## PRODUCES ## HOB\r
-\r
-[FixedPcd]\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPatchEntry        ## CONSUMES\r
-  gIntelFspPkgTokenSpaceGuid.PcdFspMaxPerfEntry         ## CONSUMES\r
diff --git a/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformMemory.c b/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformMemory.c
deleted file mode 100644 (file)
index 8412465..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/** @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
-#include <PiPei.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/HobLib.h>\r
-#include <Library/PeiServicesLib.h>\r
-#include <Library/FspCommonLib.h>\r
-#include <Guid/GuidHobFsp.h>\r
-#include <FspGlobalData.h>\r
-#include <FspApi.h>\r
-\r
-/**\r
-  Get system memory from HOB.\r
-\r
-  @param[in,out] LowMemoryLength   less than 4G memory length\r
-  @param[in,out] HighMemoryLength  greater than 4G memory length\r
-**/\r
-VOID\r
-EFIAPI\r
-FspGetSystemMemorySize (\r
-  IN OUT UINT64              *LowMemoryLength,\r
-  IN OUT UINT64              *HighMemoryLength\r
-  )\r
-{\r
-  EFI_PEI_HOB_POINTERS    Hob;\r
-\r
-  *HighMemoryLength = 0;\r
-  *LowMemoryLength  = SIZE_1MB;\r
-  //\r
-  // Get the HOB list for processing\r
-  //\r
-  Hob.Raw = GetHobList ();\r
-\r
-  //\r
-  // Collect memory ranges\r
-  //\r
-  while (!END_OF_HOB_LIST (Hob)) {\r
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {\r
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {\r
-        //\r
-        // Need memory above 1MB to be collected here\r
-        //\r
-        if (Hob.ResourceDescriptor->PhysicalStart >= BASE_1MB &&\r
-            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) BASE_4GB) {\r
-          *LowMemoryLength += (UINT64) (Hob.ResourceDescriptor->ResourceLength);\r
-        } else if (Hob.ResourceDescriptor->PhysicalStart >= (EFI_PHYSICAL_ADDRESS) BASE_4GB) {\r
-          *HighMemoryLength += (UINT64) (Hob.ResourceDescriptor->ResourceLength);\r
-        }\r
-      }\r
-    }\r
-    Hob.Raw = GET_NEXT_HOB (Hob);\r
-  }\r
-}\r
-\r
-/**\r
-  Migrate BootLoader data before destroying CAR.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-FspMigrateTemporaryMemory (\r
-  VOID\r
- )\r
-{\r
-  FSP_INIT_RT_COMMON_BUFFER *FspInitRtBuffer;\r
-  UINT32                    BootLoaderTempRamStart;\r
-  UINT32                    BootLoaderTempRamEnd;\r
-  UINT32                    BootLoaderTempRamSize;\r
-  UINT32                    OffsetGap;\r
-  UINT32                    FspParamPtr;\r
-  FSP_INIT_PARAMS           *FspInitParams;\r
-  UINT32                    *NewStackTop;\r
-  VOID                      *BootLoaderTempRamHob;\r
-  UINT32                    UpdDataRgnPtr;\r
-  UINT32                    MemoryInitUpdPtr;\r
-  UINT32                    SiliconInitUpdPtr;\r
-  VOID                      *PlatformDataPtr;\r
-  UINT8                      ApiMode;\r
-    \r
-  ApiMode = GetFspApiCallingMode ();\r
-\r
-  //\r
-  // Get the temporary memory range used by the BootLoader\r
-  //\r
-  BootLoaderTempRamStart = PcdGet32(PcdTemporaryRamBase);\r
-  BootLoaderTempRamSize  = PcdGet32(PcdTemporaryRamSize) - PcdGet32(PcdFspTemporaryRamSize);\r
-  BootLoaderTempRamEnd   = BootLoaderTempRamStart +  BootLoaderTempRamSize;\r
-\r
-  //\r
-  // Build a Boot Loader Temporary Memory GUID HOB\r
-  //\r
-  if (ApiMode == 0) {\r
-    BootLoaderTempRamHob = BuildGuidHob (&gFspBootLoaderTemporaryMemoryGuid, BootLoaderTempRamSize);\r
-  } else {\r
-    BootLoaderTempRamHob = (VOID *)AllocatePages (EFI_SIZE_TO_PAGES (BootLoaderTempRamSize));\r
-  }\r
-  ASSERT(BootLoaderTempRamHob != NULL);\r
-\r
-  CopyMem (BootLoaderTempRamHob, (VOID *)BootLoaderTempRamStart, BootLoaderTempRamSize);\r
-  OffsetGap = (UINT32)BootLoaderTempRamHob - BootLoaderTempRamStart;\r
-\r
-  //\r
-  // Set a new stack frame for the continuation function\r
-  //\r
-  if (ApiMode == 0) {\r
-    FspInitParams   = (FSP_INIT_PARAMS *)GetFspApiParameter ();\r
-    FspInitRtBuffer = (FSP_INIT_RT_COMMON_BUFFER *)FspInitParams->RtBufferPtr;\r
-    NewStackTop     = (UINT32 *)FspInitRtBuffer->StackTop - 1;\r
-    SetFspCoreStackPointer (NewStackTop);\r
-  }\r
-\r
-  //\r
-  // Fix the FspInit Parameter Pointers to the new location.\r
-  //\r
-  FspParamPtr = GetFspApiParameter ();\r
-  if (FspParamPtr >= BootLoaderTempRamStart && FspParamPtr < BootLoaderTempRamEnd) {\r
-    SetFspApiParameter(FspParamPtr + OffsetGap);\r
-  }\r
-\r
-  FspInitParams = (FSP_INIT_PARAMS *)GetFspApiParameter ();\r
-  if ((UINT32)(FspInitParams->RtBufferPtr) >= BootLoaderTempRamStart &&\r
-      (UINT32)(FspInitParams->RtBufferPtr) <  BootLoaderTempRamEnd) {\r
-    FspInitParams->RtBufferPtr = (VOID *)((UINT32)(FspInitParams->RtBufferPtr) + OffsetGap);\r
-  }\r
-\r
-  if ((UINT32)(FspInitParams->NvsBufferPtr) >= BootLoaderTempRamStart &&\r
-      (UINT32)(FspInitParams->NvsBufferPtr) <  BootLoaderTempRamEnd) {\r
-    FspInitParams->NvsBufferPtr = (VOID *)((UINT32)(FspInitParams->NvsBufferPtr) + OffsetGap);\r
-  }\r
-\r
-  if ((UINT32)(((FSP_INIT_RT_COMMON_BUFFER *)(FspInitParams->RtBufferPtr))->UpdDataRgnPtr) >= BootLoaderTempRamStart &&\r
-      (UINT32)(((FSP_INIT_RT_COMMON_BUFFER *)(FspInitParams->RtBufferPtr))->UpdDataRgnPtr) <  BootLoaderTempRamEnd) {\r
-    ((FSP_INIT_RT_COMMON_BUFFER *)(FspInitParams->RtBufferPtr))->UpdDataRgnPtr = \\r
-           (VOID *)((UINT32)(((FSP_INIT_RT_COMMON_BUFFER *)(FspInitParams->RtBufferPtr))->UpdDataRgnPtr) + OffsetGap);\r
-  }\r
-\r
-  //\r
-  // Update UPD pointer in FSP Global Data\r
-  //\r
-  if (ApiMode == 0) {\r
-    UpdDataRgnPtr = (UINT32)((UINT32 *)GetFspUpdDataPointer ());\r
-    if (UpdDataRgnPtr >= BootLoaderTempRamStart && UpdDataRgnPtr < BootLoaderTempRamEnd) {\r
-      MemoryInitUpdPtr = (UINT32)((UINT32 *)GetFspMemoryInitUpdDataPointer ());\r
-      SiliconInitUpdPtr = (UINT32)((UINT32 *)GetFspSiliconInitUpdDataPointer ());\r
-      SetFspUpdDataPointer ((VOID *)(UpdDataRgnPtr + OffsetGap));\r
-      SetFspMemoryInitUpdDataPointer ((VOID *)(MemoryInitUpdPtr + OffsetGap));\r
-      SetFspSiliconInitUpdDataPointer ((VOID *)(SiliconInitUpdPtr + OffsetGap));\r
-    }\r
-  } else {\r
-    MemoryInitUpdPtr = (UINT32)((UINT32 *)GetFspMemoryInitUpdDataPointer ());\r
-    if (MemoryInitUpdPtr >= BootLoaderTempRamStart && MemoryInitUpdPtr < BootLoaderTempRamEnd) {\r
-      SetFspMemoryInitUpdDataPointer ((VOID *)(MemoryInitUpdPtr + OffsetGap));\r
-    }\r
-  }\r
-\r
-  //\r
-  // Update Platform data pointer in FSP Global Data\r
-  //\r
-  PlatformDataPtr = GetFspPlatformDataPointer ();\r
-  if (((UINT32)PlatformDataPtr >= BootLoaderTempRamStart) &&\r
-      ((UINT32)PlatformDataPtr <  BootLoaderTempRamEnd)) {\r
-    SetFspPlatformDataPointer ((UINT8 *)PlatformDataPtr + OffsetGap);\r
-  }\r
-}\r
diff --git a/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c b/IntelFspPkg/Library/BaseFspPlatformLib/FspPlatformNotify.c
deleted file mode 100644 (file)
index 9005ef2..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/** @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
-#include <PiPei.h>\r
-#include <Library/PeiServicesLib.h>\r
-#include <Library/PeiServicesTablePointerLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/HobLib.h>\r
-#include <Library/FspSwitchStackLib.h>\r
-#include <Library/FspCommonLib.h>\r
-#include <Guid/EventGroup.h>\r
-#include <FspApi.h>\r
-#include <Protocol/PciEnumerationComplete.h>\r
-\r
-EFI_PEI_PPI_DESCRIPTOR      mPeiPostPciEnumerationPpi = {\r
-  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
-  &gEfiPciEnumerationCompleteProtocolGuid,\r
-  NULL\r
-};\r
-\r
-EFI_PEI_PPI_DESCRIPTOR      mPeiReadyToBootPpi = {\r
-  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
-  &gEfiEventReadyToBootGuid,\r
-  NULL\r
-};\r
-\r
-\r
-UINT32  mFspNotifySequence[] = {\r
-  EnumInitPhaseAfterPciEnumeration,\r
-  EnumInitPhaseReadyToBoot\r
-};\r
-\r
-/**\r
-  Install FSP notification.\r
-\r
-  @param[in] NotificationCode  FSP notification code\r
-\r
-  @retval EFI_SUCCESS            Notify FSP successfully\r
-  @retval EFI_INVALID_PARAMETER  NotificationCode is invalid\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-FspNotificationHandler (\r
-  IN  UINT32     NotificationCode\r
-  )\r
-{\r
-  EFI_STATUS                Status;\r
-\r
-  Status   = EFI_SUCCESS;\r
-\r
-  switch (NotificationCode) {\r
-  case EnumInitPhaseAfterPciEnumeration:\r
-    //\r
-    // Do POST PCI initialization if needed\r
-    //\r
-    DEBUG ((DEBUG_INFO | DEBUG_INIT, "FSP Post PCI Enumeration ...\n"));\r
-    PeiServicesInstallPpi (&mPeiPostPciEnumerationPpi);\r
-    break;\r
-\r
-  case EnumInitPhaseReadyToBoot:\r
-    //\r
-    // Ready To Boot\r
-    //\r
-    DEBUG ((DEBUG_INFO| DEBUG_INIT, "FSP Ready To Boot ...\n"));\r
-    PeiServicesInstallPpi (&mPeiReadyToBootPpi);\r
-    break;\r
-\r
-  default:\r
-    Status = EFI_INVALID_PARAMETER;\r
-    break;\r
-  }\r
-\r
-  return Status;\r
-}\r
-\r
-/**\r
-  This function transfer control to the ContinuationFunc passed in by the\r
-  BootLoader.\r