From da94a43c60202dcc2a53d07185ed73f9e9918c34 Mon Sep 17 00:00:00 2001 From: Guo Mang Date: Thu, 27 Apr 2017 11:34:23 +0800 Subject: IntelFspWrapperPkg: Remove unused Package Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang --- IntelFspWrapperPkg/FspWrapperSecCore/FindPeiCore.c | 199 ---------------- .../FspWrapperSecCore/FspWrapperSecCore.inf | 66 ------ .../FspWrapperSecCore/Ia32/Dummy.asm | 26 -- .../FspWrapperSecCore/Ia32/ResetVec.asm16 | 106 --------- IntelFspWrapperPkg/FspWrapperSecCore/SecMain.c | 264 --------------------- IntelFspWrapperPkg/FspWrapperSecCore/SecMain.h | 96 -------- .../FspWrapperSecCore/Vtf0/Bin/ResetVec.ia32.raw | Bin 68 -> 0 bytes IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Build.py | 53 ----- .../FspWrapperSecCore/Vtf0/Ia16/ResetVec.asm16 | 103 -------- .../FspWrapperSecCore/Vtf0/ResetVectorCode.asm | 17 -- .../Vtf0/Tools/FixupForRawSection.py | 110 --------- 11 files changed, 1040 deletions(-) delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/FindPeiCore.c delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/FspWrapperSecCore.inf delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/Ia32/Dummy.asm delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/Ia32/ResetVec.asm16 delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/SecMain.c delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/SecMain.h delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Bin/ResetVec.ia32.raw delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Build.py delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Ia16/ResetVec.asm16 delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/ResetVectorCode.asm delete mode 100644 IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Tools/FixupForRawSection.py (limited to 'IntelFspWrapperPkg/FspWrapperSecCore') diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/FindPeiCore.c b/IntelFspWrapperPkg/FspWrapperSecCore/FindPeiCore.c deleted file mode 100644 index 068465aeb1..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/FindPeiCore.c +++ /dev/null @@ -1,199 +0,0 @@ -/** @file - Locate the entry point for the PEI Core - - Copyright (c) 2014, Intel Corporation. All rights reserved.
- This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php. - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include -#include -#include - -#include "SecMain.h" - -/** - Find core image base. - - @param[in] BootFirmwareVolumePtr Point to the boot firmware volume. - @param[out] SecCoreImageBase The base address of the SEC core image. - @param[out] PeiCoreImageBase The base address of the PEI core image. - -**/ -EFI_STATUS -EFIAPI -FindImageBase ( - IN EFI_FIRMWARE_VOLUME_HEADER *BootFirmwareVolumePtr, - OUT EFI_PHYSICAL_ADDRESS *SecCoreImageBase, - OUT EFI_PHYSICAL_ADDRESS *PeiCoreImageBase - ) -{ - EFI_PHYSICAL_ADDRESS CurrentAddress; - EFI_PHYSICAL_ADDRESS EndOfFirmwareVolume; - EFI_FFS_FILE_HEADER *File; - UINT32 Size; - EFI_PHYSICAL_ADDRESS EndOfFile; - EFI_COMMON_SECTION_HEADER *Section; - EFI_PHYSICAL_ADDRESS EndOfSection; - - *SecCoreImageBase = 0; - *PeiCoreImageBase = 0; - - CurrentAddress = (EFI_PHYSICAL_ADDRESS)(UINTN) BootFirmwareVolumePtr; - EndOfFirmwareVolume = CurrentAddress + BootFirmwareVolumePtr->FvLength; - - // - // Loop through the FFS files in the Boot Firmware Volume - // - for (EndOfFile = CurrentAddress + BootFirmwareVolumePtr->HeaderLength; ; ) { - - CurrentAddress = (EndOfFile + 7) & 0xfffffffffffffff8ULL; - if (CurrentAddress > EndOfFirmwareVolume) { - return EFI_NOT_FOUND; - } - - File = (EFI_FFS_FILE_HEADER*)(UINTN) CurrentAddress; - if (IS_FFS_FILE2 (File)) { - Size = FFS_FILE2_SIZE (File); - if (Size <= 0x00FFFFFF) { - return EFI_NOT_FOUND; - } - } else { - Size = FFS_FILE_SIZE (File); - if (Size < sizeof (EFI_FFS_FILE_HEADER)) { - return EFI_NOT_FOUND; - } - } - - EndOfFile = CurrentAddress + Size; - if (EndOfFile > EndOfFirmwareVolume) { - return EFI_NOT_FOUND; - } - - // - // Look for SEC Core / PEI Core files - // - if (File->Type != EFI_FV_FILETYPE_SECURITY_CORE && - File->Type != EFI_FV_FILETYPE_PEI_CORE) { - continue; - } - - // - // Loop through the FFS file sections within the FFS file - // - if (IS_FFS_FILE2 (File)) { - EndOfSection = (EFI_PHYSICAL_ADDRESS) (UINTN) ((UINT8 *) File + sizeof (EFI_FFS_FILE_HEADER2)); - } else { - EndOfSection = (EFI_PHYSICAL_ADDRESS) (UINTN) ((UINT8 *) File + sizeof (EFI_FFS_FILE_HEADER)); - } - for (;;) { - CurrentAddress = (EndOfSection + 3) & 0xfffffffffffffffcULL; - Section = (EFI_COMMON_SECTION_HEADER*)(UINTN) CurrentAddress; - - if (IS_SECTION2 (Section)) { - Size = SECTION2_SIZE (Section); - if (Size <= 0x00FFFFFF) { - return EFI_NOT_FOUND; - } - } else { - Size = SECTION_SIZE (Section); - if (Size < sizeof (EFI_COMMON_SECTION_HEADER)) { - return EFI_NOT_FOUND; - } - } - - EndOfSection = CurrentAddress + Size; - if (EndOfSection > EndOfFile) { - return EFI_NOT_FOUND; - } - - // - // Look for executable sections - // - if (Section->Type == EFI_SECTION_PE32 || Section->Type == EFI_SECTION_TE) { - if (File->Type == EFI_FV_FILETYPE_SECURITY_CORE) { - if (IS_SECTION2 (Section)) { - *SecCoreImageBase = (PHYSICAL_ADDRESS) (UINTN) ((UINT8 *) Section + sizeof (EFI_COMMON_SECTION_HEADER2)); - } else { - *SecCoreImageBase = (PHYSICAL_ADDRESS) (UINTN) ((UINT8 *) Section + sizeof (EFI_COMMON_SECTION_HEADER)); - } - } else { - if (IS_SECTION2 (Section)) { - *PeiCoreImageBase = (PHYSICAL_ADDRESS) (UINTN) ((UINT8 *) Section + sizeof (EFI_COMMON_SECTION_HEADER2)); - } else { - *PeiCoreImageBase = (PHYSICAL_ADDRESS) (UINTN) ((UINT8 *) Section + sizeof (EFI_COMMON_SECTION_HEADER)); - } - } - break; - } - } - - // - // Both SEC Core and PEI Core images found - // - if (*SecCoreImageBase != 0 && *PeiCoreImageBase != 0) { - return EFI_SUCCESS; - } - } -} - -/** - Find and return Pei Core entry point. - - It also find SEC and PEI Core file debug information. It will report them if - remote debug is enabled. - - @param[in] BootFirmwareVolumePtr Point to the boot firmware volume. - @param[out] PeiCoreEntryPoint The entry point of the PEI core. - -**/ -VOID -EFIAPI -FindAndReportEntryPoints ( - IN EFI_FIRMWARE_VOLUME_HEADER *BootFirmwareVolumePtr, - OUT EFI_PEI_CORE_ENTRY_POINT *PeiCoreEntryPoint - ) -{ - EFI_STATUS Status; - EFI_PHYSICAL_ADDRESS SecCoreImageBase; - EFI_PHYSICAL_ADDRESS PeiCoreImageBase; - PE_COFF_LOADER_IMAGE_CONTEXT ImageContext; - - // - // Find SEC Core and PEI Core image base - // - Status = FindImageBase (BootFirmwareVolumePtr, &SecCoreImageBase, &PeiCoreImageBase); - ASSERT_EFI_ERROR (Status); - - ZeroMem ((VOID *) &ImageContext, sizeof (PE_COFF_LOADER_IMAGE_CONTEXT)); - // - // Report SEC Core debug information when remote debug is enabled - // - ImageContext.ImageAddress = SecCoreImageBase; - ImageContext.PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageContext.ImageAddress); - PeCoffLoaderRelocateImageExtraAction (&ImageContext); - - // - // Report PEI Core debug information when remote debug is enabled - // - ImageContext.ImageAddress = PeiCoreImageBase; - ImageContext.PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageContext.ImageAddress); - PeCoffLoaderRelocateImageExtraAction (&ImageContext); - - // - // Find PEI Core entry point - // - Status = PeCoffLoaderGetEntryPoint ((VOID *) (UINTN) PeiCoreImageBase, (VOID**) PeiCoreEntryPoint); - if (EFI_ERROR (Status)) { - *PeiCoreEntryPoint = 0; - } - - return; -} - diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/FspWrapperSecCore.inf b/IntelFspWrapperPkg/FspWrapperSecCore/FspWrapperSecCore.inf deleted file mode 100644 index 479a5090cc..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/FspWrapperSecCore.inf +++ /dev/null @@ -1,66 +0,0 @@ -## @file -# This is the first module taking control of the platform upon power-on/reset. -# -# Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php. -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = FspWrapperSecCore - FILE_GUID = 1BA0062E-C779-4582-8566-336AE8F78F09 - MODULE_TYPE = SEC - VERSION_STRING = 1.0 - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 -# - -[Sources] - SecMain.c - SecMain.h - FindPeiCore.c - -[Sources.IA32] - Ia32/ResetVec.asm16 | MSFT - Ia32/ResetVec.asm16 | INTEL - Ia32/Dummy.asm - -[Binaries.Ia32] - RAW|Vtf0/Bin/ResetVec.ia32.raw |GCC - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - UefiCpuPkg/UefiCpuPkg.dec - IntelFspPkg/IntelFspPkg.dec - IntelFspWrapperPkg/IntelFspWrapperPkg.dec - -[LibraryClasses] - BaseLib - BaseMemoryLib - DebugLib - FspPlatformInfoLib - FspPlatformSecLib - DebugAgentLib - UefiCpuLib - PeCoffGetEntryPointLib - PeCoffExtraActionLib - -[Ppis] - gTopOfTemporaryRamPpiGuid ## CONSUMES - -[FixedPcd] - gFspWrapperTokenSpaceGuid.PcdSecCoreMaxPpiSupported ## CONSUMES - -[Pcd] - gFspWrapperTokenSpaceGuid.PcdPeiTemporaryRamStackSize ## CONSUMES diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/Ia32/Dummy.asm b/IntelFspWrapperPkg/FspWrapperSecCore/Ia32/Dummy.asm deleted file mode 100644 index 16438e26e3..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/Ia32/Dummy.asm +++ /dev/null @@ -1,26 +0,0 @@ -;------------------------------------------------------------------------------ -; -; Copyright (c) 2014, Intel Corporation. All rights reserved.
-; This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php. -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -; Module Name: -; -; Dummy.asm -; -; Abstract: -; -; To pass build -; -;------------------------------------------------------------------------------ - - .586p - .model flat,C - .code - - END diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/Ia32/ResetVec.asm16 b/IntelFspWrapperPkg/FspWrapperSecCore/Ia32/ResetVec.asm16 deleted file mode 100644 index 93de20e530..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/Ia32/ResetVec.asm16 +++ /dev/null @@ -1,106 +0,0 @@ -;------------------------------------------------------------------------------ -; -; Copyright (c) 2014, Intel Corporation. All rights reserved.
-; This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php. -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -; Module Name: -; -; ResetVec.asm -; -; Abstract: -; -; Reset Vector Data structure -; This structure is located at 0xFFFFFFC0 -; -;------------------------------------------------------------------------------ - - .model tiny - .686p - .stack 0h - .code - -; -; The layout of this file is fixed. The build tool makes assumption of the layout. -; - - ORG 0h -; -; Reserved -; -ReservedData DD 0eeeeeeeeh, 0eeeeeeeeh - - ORG 10h -; -; This is located at 0xFFFFFFD0h -; - mov di, "AP" - jmp ApStartup - - ORG 20h -; -; Pointer to the entry point of the PEI core -; It is located at 0xFFFFFFE0, and is fixed up by some build tool -; So if the value 8..1 appears in the final FD image, tool failure occurs. -; -PeiCoreEntryPoint DD 87654321h - -; -; This is the handler for all kinds of exceptions. Since it's for debugging -; purpose only, nothing except a deadloop would be done here. Developers could -; analyze the cause of the exception if a debugger had been attached. -; -InterruptHandler PROC - jmp $ - iret -InterruptHandler ENDP - - ORG 30h -; -; For IA32, the reset vector must be at 0xFFFFFFF0, i.e., 4G-16 byte -; Execution starts here upon power-on/platform-reset. -; -ResetHandler: - nop - nop -ApStartup: - ; - ; Jmp Rel16 instruction - ; Use machine code directly in case of the assembler optimization - ; SEC entry point relatvie address will be fixed up by some build tool. - ; - ; Typically, SEC entry point is the function _ModuleEntryPoint() defined in - ; SecEntry.asm - ; - DB 0e9h - DW -3 - - - ORG 38h -; -; Ap reset vector segment address is at 0xFFFFFFF8 -; This will be fixed up by some build tool, -; so if the value 1..8 appears in the final FD image, -; tool failure occurs -; -ApSegAddress dd 12345678h - - ORG 3ch -; -; BFV Base is at 0xFFFFFFFC -; This will be fixed up by some build tool, -; so if the value 1..8 appears in the final FD image, -; tool failure occurs. -; -BfvBase DD 12345678h - -; -; Nothing can go here, otherwise the layout of this file would change. -; - - END diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/SecMain.c b/IntelFspWrapperPkg/FspWrapperSecCore/SecMain.c deleted file mode 100644 index fc271e20ac..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/SecMain.c +++ /dev/null @@ -1,264 +0,0 @@ -/** @file - C functions in SEC - - Copyright (c) 2014, Intel Corporation. All rights reserved.
- This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php. - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - - -#include "SecMain.h" - -EFI_PEI_PPI_DESCRIPTOR mPeiSecMainPpi[] = { - { - EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, - &gTopOfTemporaryRamPpiGuid, - NULL // To be patched later. - }, -}; - -// -// These are IDT entries pointing to 10:FFFFFFE4h. -// -UINT64 mIdtEntryTemplate = 0xffff8e000010ffe4ULL; - -/** - Caller provided function to be invoked at the end of InitializeDebugAgent(). - - Entry point to the C language phase of SEC. After the SEC assembly - code has initialized some temporary memory and set up the stack, - the control is transferred to this function. - - @param[in] Context The first input parameter of InitializeDebugAgent(). - -**/ -VOID -EFIAPI -SecStartupPhase2( - IN VOID *Context - ); - - -/** - - Entry point to the C language phase of SEC. After the SEC assembly - code has initialized some temporary memory and set up the stack, - the control is transferred to this function. - - @param[in] SizeOfRam Size of the temporary memory available for use. - @param[in] TempRamBase Base address of temporary ram - @param[in] BootFirmwareVolume Base address of the Boot Firmware Volume. -**/ -VOID -EFIAPI -SecStartup ( - IN UINT32 SizeOfRam, - IN UINT32 TempRamBase, - IN VOID *BootFirmwareVolume - ) -{ - EFI_SEC_PEI_HAND_OFF SecCoreData; - IA32_DESCRIPTOR IdtDescriptor; - SEC_IDT_TABLE IdtTableInStack; - UINT32 Index; - UINT32 PeiStackSize; - - PeiStackSize = PcdGet32 (PcdPeiTemporaryRamStackSize); - if (PeiStackSize == 0) { - PeiStackSize = (SizeOfRam >> 1); - } - - ASSERT (PeiStackSize < SizeOfRam); - - // - // Process all libraries constructor function linked to SecCore. - // - ProcessLibraryConstructorList (); - - DEBUG ((DEBUG_INFO, "SecCore - SecStartup\n")); - - // - // Initialize floating point operating environment - // to be compliant with UEFI spec. - // - InitializeFloatingPointUnits (); - - - // |-------------------|----> - // |Idt Table | - // |-------------------| - // |PeiService Pointer | PeiStackSize - // |-------------------| - // | | - // | Stack | - // |-------------------|----> - // | | - // | | - // | Heap | PeiTemporayRamSize - // | | - // | | - // |-------------------|----> TempRamBase - - IdtTableInStack.PeiService = 0; - for (Index = 0; Index < SEC_IDT_ENTRY_COUNT; Index ++) { - CopyMem ((VOID*)&IdtTableInStack.IdtTable[Index], (VOID*)&mIdtEntryTemplate, sizeof (UINT64)); - } - - IdtDescriptor.Base = (UINTN) &IdtTableInStack.IdtTable; - IdtDescriptor.Limit = (UINT16)(sizeof (IdtTableInStack.IdtTable) - 1); - - AsmWriteIdtr (&IdtDescriptor); - - // - // Update the base address and length of Pei temporary memory - // - SecCoreData.DataSize = (UINT16) sizeof (EFI_SEC_PEI_HAND_OFF); - SecCoreData.BootFirmwareVolumeBase = BootFirmwareVolume; - SecCoreData.BootFirmwareVolumeSize = (UINTN)(SIZE_4GB - (UINTN) BootFirmwareVolume); - SecCoreData.TemporaryRamBase = (VOID*)(UINTN) TempRamBase; - SecCoreData.TemporaryRamSize = SizeOfRam; - SecCoreData.PeiTemporaryRamBase = SecCoreData.TemporaryRamBase; - SecCoreData.PeiTemporaryRamSize = SizeOfRam - PeiStackSize; - SecCoreData.StackBase = (VOID*)(UINTN)(TempRamBase + SecCoreData.PeiTemporaryRamSize); - SecCoreData.StackSize = PeiStackSize; - - DEBUG ((DEBUG_INFO, "BootFirmwareVolumeBase - 0x%x\n", SecCoreData.BootFirmwareVolumeBase)); - DEBUG ((DEBUG_INFO, "BootFirmwareVolumeSize - 0x%x\n", SecCoreData.BootFirmwareVolumeSize)); - DEBUG ((DEBUG_INFO, "TemporaryRamBase - 0x%x\n", SecCoreData.TemporaryRamBase)); - DEBUG ((DEBUG_INFO, "TemporaryRamSize - 0x%x\n", SecCoreData.TemporaryRamSize)); - DEBUG ((DEBUG_INFO, "PeiTemporaryRamBase - 0x%x\n", SecCoreData.PeiTemporaryRamBase)); - DEBUG ((DEBUG_INFO, "PeiTemporaryRamSize - 0x%x\n", SecCoreData.PeiTemporaryRamSize)); - DEBUG ((DEBUG_INFO, "StackBase - 0x%x\n", SecCoreData.StackBase)); - DEBUG ((DEBUG_INFO, "StackSize - 0x%x\n", SecCoreData.StackSize)); - - // - // Initialize Debug Agent to support source level debug in SEC/PEI phases before memory ready. - // - InitializeDebugAgent (DEBUG_AGENT_INIT_PREMEM_SEC, &SecCoreData, SecStartupPhase2); - -} - -/** - This API patch the TopOfTemporaryRam value in SecPpiList. - - @param[in,out] SecPpiList PPI list to be patched. - @param[in] TopOfTemporaryRam The top of CAR. - -**/ -VOID -PatchTopOfTemporaryRamPpi ( - IN OUT EFI_PEI_PPI_DESCRIPTOR *SecPpiList, - IN VOID *TopOfTemporaryRam - ) -{ - SecPpiList[0].Ppi = TopOfTemporaryRam; -} - -/** - Caller provided function to be invoked at the end of InitializeDebugAgent(). - - Entry point to the C language phase of SEC. After the SEC assembly - code has initialized some temporary memory and set up the stack, - the control is transferred to this function. - - @param[in] Context The first input parameter of InitializeDebugAgent(). - -**/ -VOID -EFIAPI -SecStartupPhase2( - IN VOID *Context - ) -{ - EFI_SEC_PEI_HAND_OFF *SecCoreData; - EFI_PEI_PPI_DESCRIPTOR *PpiList; - UINT32 Index; - EFI_PEI_PPI_DESCRIPTOR LocalSecPpiList[sizeof(mPeiSecMainPpi)/sizeof(mPeiSecMainPpi[0])]; - EFI_PEI_PPI_DESCRIPTOR AllSecPpiList[FixedPcdGet32(PcdSecCoreMaxPpiSupported)]; - EFI_PEI_CORE_ENTRY_POINT PeiCoreEntryPoint; - - SecCoreData = (EFI_SEC_PEI_HAND_OFF *) Context; - // - // Find Pei Core entry point. It will report SEC and Pei Core debug information if remote debug - // is enabled. - // - FindAndReportEntryPoints ((EFI_FIRMWARE_VOLUME_HEADER *) SecCoreData->BootFirmwareVolumeBase, &PeiCoreEntryPoint); - if (PeiCoreEntryPoint == NULL) - { - CpuDeadLoop (); - } - - CopyMem (LocalSecPpiList, mPeiSecMainPpi, sizeof(mPeiSecMainPpi)); - PatchTopOfTemporaryRamPpi (LocalSecPpiList, (VOID *)((UINTN)SecCoreData->TemporaryRamBase + SecCoreData->TemporaryRamSize)); - - // - // Perform platform specific initialization before entering PeiCore. - // - PpiList = SecPlatformMain (SecCoreData); - if (PpiList != NULL) { - // - // Remove the terminal flag from the terminal Ppi - // - CopyMem (AllSecPpiList, LocalSecPpiList, sizeof (LocalSecPpiList)); - for (Index = 0; Index < PcdGet32 (PcdSecCoreMaxPpiSupported); Index ++) { - if ((AllSecPpiList[Index].Flags & EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) == EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) { - break; - } - } - AllSecPpiList[Index].Flags = AllSecPpiList[Index].Flags & (~EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST); - - // - // Append the platform additional Ppi list - // - Index += 1; - while (Index < PcdGet32 (PcdSecCoreMaxPpiSupported) && - ((PpiList->Flags & EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) != EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST)) { - CopyMem (&AllSecPpiList[Index], PpiList, sizeof (EFI_PEI_PPI_DESCRIPTOR)); - Index++; - PpiList++; - } - - // - // Check whether the total Ppis exceeds the max supported Ppi. - // - if (Index >= PcdGet32 (PcdSecCoreMaxPpiSupported)) { - // - // the total Ppi is larger than the supported Max - // PcdSecCoreMaxPpiSupported can be enlarged to solve it. - // - CpuDeadLoop (); - } else { - // - // Add the terminal Ppi - // - CopyMem (&AllSecPpiList[Index], PpiList, sizeof (EFI_PEI_PPI_DESCRIPTOR)); - } - - // - // Set PpiList to the total Ppi - // - PpiList = &AllSecPpiList[0]; - } else { - // - // No addition Ppi, PpiList directly point to the common Ppi list. - // - PpiList = &LocalSecPpiList[0]; - } - - // - // Transfer the control to the PEI core - // - ASSERT (PeiCoreEntryPoint != NULL); - (*PeiCoreEntryPoint) (SecCoreData, PpiList); - - // - // Should not come here. - // - return ; -} diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/SecMain.h b/IntelFspWrapperPkg/FspWrapperSecCore/SecMain.h deleted file mode 100644 index de82221655..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/SecMain.h +++ /dev/null @@ -1,96 +0,0 @@ -/** @file - Master header file for SecCore. - - Copyright (c) 2014, Intel Corporation. All rights reserved.
- This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php. - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#ifndef _SEC_CORE_H_ -#define _SEC_CORE_H_ - - -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#define SEC_IDT_ENTRY_COUNT 34 - -typedef struct _SEC_IDT_TABLE { - // - // Reserved 8 bytes preceding IDT to store EFI_PEI_SERVICES**, since IDT base - // address should be 8-byte alignment. - // Note: For IA32, only the 4 bytes immediately preceding IDT is used to store - // EFI_PEI_SERVICES** - // - UINT64 PeiService; - UINT64 IdtTable[SEC_IDT_ENTRY_COUNT]; -} SEC_IDT_TABLE; - -/** - Entry point to the C language phase of SEC. After the SEC assembly - code has initialized some temporary memory and set up the stack, - the control is transferred to this function. - - @param[in] SizeOfRam Size of the temporary memory available for use. - @param[in] TempRamBase Base address of temporary ram - @param[in] BootFirmwareVolume Base address of the Boot Firmware Volume. -**/ -VOID -EFIAPI -SecStartup ( - IN UINT32 SizeOfRam, - IN UINT32 TempRamBase, - IN VOID *BootFirmwareVolume - ); - -/** - Find and return Pei Core entry point. - - It also find SEC and PEI Core file debug information. It will report them if - remote debug is enabled. - - @param[in] BootFirmwareVolumePtr Point to the boot firmware volume. - @param[out] PeiCoreEntryPoint Point to the PEI core entry point. - -**/ -VOID -EFIAPI -FindAndReportEntryPoints ( - IN EFI_FIRMWARE_VOLUME_HEADER *BootFirmwareVolumePtr, - OUT EFI_PEI_CORE_ENTRY_POINT *PeiCoreEntryPoint - ); - -/** - Autogenerated function that calls the library constructors for all of the module's - dependent libraries. This function must be called by the SEC Core once a stack has - been established. - -**/ -VOID -EFIAPI -ProcessLibraryConstructorList ( - VOID - ); - -#endif diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Bin/ResetVec.ia32.raw b/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Bin/ResetVec.ia32.raw deleted file mode 100644 index 2dc9f178d3..0000000000 Binary files a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Bin/ResetVec.ia32.raw and /dev/null differ diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Build.py b/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Build.py deleted file mode 100644 index 3018391445..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Build.py +++ /dev/null @@ -1,53 +0,0 @@ -## @file -# Automate the process of building the various reset vector types -# -# Copyright (c) 2014, Intel Corporation. All rights reserved.
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# - -import glob -import os -import subprocess -import sys - -def RunCommand(commandLine): - #print ' '.join(commandLine) - return subprocess.call(commandLine) - -for filename in glob.glob(os.path.join('Bin', '*.raw')): - os.remove(filename) - -arch = 'ia32' -debugType = None -output = os.path.join('Bin', 'ResetVec') -output += '.' + arch -if debugType is not None: - output += '.' + debugType -output += '.raw' -commandLine = ( - 'nasm', - '-D', 'ARCH_%s' % arch.upper(), - '-D', 'DEBUG_%s' % str(debugType).upper(), - '-o', output, - 'ResetVectorCode.asm', - ) -ret = RunCommand(commandLine) -print '\tASM\t' + output -if ret != 0: sys.exit(ret) - -commandLine = ( - 'python', - 'Tools/FixupForRawSection.py', - output, - ) -print '\tFIXUP\t' + output -ret = RunCommand(commandLine) -if ret != 0: sys.exit(ret) - diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Ia16/ResetVec.asm16 b/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Ia16/ResetVec.asm16 deleted file mode 100644 index 585876fa86..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Ia16/ResetVec.asm16 +++ /dev/null @@ -1,103 +0,0 @@ -;; @file -; Reset Vector Data structure -; This structure is located at 0xFFFFFFC0 -; -; Copyright (c) 2014, Intel Corporation. All rights reserved.
-; This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php. -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -;; - -BITS 16 - - -; -; The layout of this file is fixed. The build tool makes assumption of the layout. -; - -ORG 0x0 -; -; Reserved -; -ReservedData: DD 0eeeeeeeeh, 0eeeeeeeeh - - ; ORG 0x10 - TIMES 0x10-($-$$) DB 0 -; -; This is located at 0xFFFFFFD0h -; - mov di, "AP" - jmp ApStartup - - ; ORG 0x20 - - TIMES 0x20-($-$$) DB 0 - -; Pointer to the entry point of the PEI core -; It is located at 0xFFFFFFE0, and is fixed up by some build tool -; So if the value 8..1 appears in the final FD image, tool failure occurs. -; -PeiCoreEntryPoint: DD 0x12345678 - -; -; This is the handler for all kinds of exceptions. Since it's for debugging -; purpose only, nothing except a deadloop would be done here. Developers could -; analyze the cause of the exception if a debugger had been attached. -; -InterruptHandler: - jmp $ - iret - - ; ORG 0x30 - TIMES 0x30-($-$$) DB 0 -; -; For IA32, the reset vector must be at 0xFFFFFFF0, i.e., 4G-16 byte -; Execution starts here upon power-on/platform-reset. -; -ResetHandler: - nop - nop - -ApStartup: - ; - ; Jmp Rel16 instruction - ; Use machine code directly in case of the assembler optimization - ; SEC entry point relatvie address will be fixed up by some build tool. - ; - ; Typically, SEC entry point is the function _ModuleEntryPoint() defined in - ; SecEntry.asm - ; - DB 0x0e9 - DW -3 - - ; ORG 0x38 - - TIMES 0x38-($-$$) DB 0 -; -; Ap reset vector segment address is at 0xFFFFFFF8 -; This will be fixed up by some build tool, -; so if the value 1..8 appears in the final FD image, -; tool failure occurs -; -ApSegAddress: dd 0x12345678 - - ; ORG 0x3c - TIMES 0x3c-($-$$) DB 0 -; -; BFV Base is at 0xFFFFFFFC -; This will be fixed up by some build tool, -; so if the value 1..8 appears in the final FD image, -; tool failure occurs. -; -BfvBase: DD 0x12345678 - -; -; Nothing can go here, otherwise the layout of this file would change. -; - - ; END diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/ResetVectorCode.asm b/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/ResetVectorCode.asm deleted file mode 100644 index 72b252491f..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/ResetVectorCode.asm +++ /dev/null @@ -1,17 +0,0 @@ -;------------------------------------------------------------------------------ -; @file -; This file includes all other code files to assemble the reset vector code -; -; Copyright (c) 2014, Intel Corporation. All rights reserved.
-; This program and the accompanying materials -; are licensed and made available under the terms and conditions of the BSD License -; which accompanies this distribution. The full text of the license may be found at -; http://opensource.org/licenses/bsd-license.php -; -; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -; -;------------------------------------------------------------------------------ - - -%include "Ia16/ResetVec.asm16" diff --git a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Tools/FixupForRawSection.py b/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Tools/FixupForRawSection.py deleted file mode 100644 index 8e7c20b401..0000000000 --- a/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Tools/FixupForRawSection.py +++ /dev/null @@ -1,110 +0,0 @@ -## @file -# Apply fixup to VTF binary image for FFS Raw section -# -# Copyright (c) 2014, Intel Corporation. All rights reserved.
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# - -import sys - -filename = sys.argv[1] - -if filename.lower().find('ia32') >= 0: - d = open(sys.argv[1], 'rb').read() - c = ((len(d) + 4 + 7) & ~7) - 4 - if c > len(d): - c -= len(d) - f = open(sys.argv[1], 'wb') - f.write('\x90' * c) - f.write(d) - f.close() -else: - from struct import pack - - PAGE_PRESENT = 0x01 - PAGE_READ_WRITE = 0x02 - PAGE_USER_SUPERVISOR = 0x04 - PAGE_WRITE_THROUGH = 0x08 - PAGE_CACHE_DISABLE = 0x010 - PAGE_ACCESSED = 0x020 - PAGE_DIRTY = 0x040 - PAGE_PAT = 0x080 - PAGE_GLOBAL = 0x0100 - PAGE_2M_MBO = 0x080 - PAGE_2M_PAT = 0x01000 - - def NopAlign4k(s): - c = ((len(s) + 0xfff) & ~0xfff) - len(s) - return ('\x90' * c) + s - - def PageDirectoryEntries4GbOf2MbPages(baseAddress): - - s = '' - for i in range(0x800): - i = ( - baseAddress + long(i << 21) + - PAGE_2M_MBO + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_DIRTY + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def PageDirectoryPointerTable4GbOf2MbPages(pdeBase): - s = '' - for i in range(0x200): - i = ( - pdeBase + - (min(i, 3) << 12) + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def PageMapLevel4Table4GbOf2MbPages(pdptBase): - s = '' - for i in range(0x200): - i = ( - pdptBase + - (min(i, 0) << 12) + - PAGE_CACHE_DISABLE + - PAGE_ACCESSED + - PAGE_READ_WRITE + - PAGE_PRESENT - ) - s += pack('Q', i) - return s - - def First4GbPageEntries(topAddress): - PDE = PageDirectoryEntries4GbOf2MbPages(0L) - pml4tBase = topAddress - 0x1000 - pdptBase = pml4tBase - 0x1000 - pdeBase = pdptBase - len(PDE) - PDPT = PageDirectoryPointerTable4GbOf2MbPages(pdeBase) - PML4T = PageMapLevel4Table4GbOf2MbPages(pdptBase) - return PDE + PDPT + PML4T - - def AlignAndAddPageTables(): - d = open(sys.argv[1], 'rb').read() - code = NopAlign4k(d) - topAddress = 0x100000000 - len(code) - d = ('\x90' * 4) + First4GbPageEntries(topAddress) + code - f = open(sys.argv[1], 'wb') - f.write(d) - f.close() - - AlignAndAddPageTables() - -- cgit v1.2.3