TianoCore EDK2 master
Loading...
Searching...
No Matches
SecMigrationPei.c File Reference

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI SecTemporaryRamDonePostMemory (VOID)
 
EFI_STATUS EFIAPI SecTemporaryRamSupportPostMemory (IN CONST EFI_PEI_SERVICES **PeiServices, IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase, IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase, IN UINTN CopySize)
 
EFI_STATUS EFIAPI GetPerformancePostMemory (IN CONST EFI_PEI_SERVICES **PeiServices, IN PEI_SEC_PERFORMANCE_PPI *This, OUT FIRMWARE_SEC_PERFORMANCE *Performance)
 
EFI_STATUS EFIAPI SecPlatformInformationPostMemory (IN CONST EFI_PEI_SERVICES **PeiServices, IN OUT UINT64 *StructureSize, OUT EFI_SEC_PLATFORM_INFORMATION_RECORD *PlatformInformationRecord)
 
EFI_STATUS EFIAPI RepublishSecPpis (VOID)
 
EFI_STATUS EFIAPI SecMigrationPeiInitialize (IN EFI_PEI_FILE_HANDLE FileHandle, IN CONST EFI_PEI_SERVICES **PeiServices)
 

Variables

STATIC REPUBLISH_SEC_PPI_PPI mEdkiiRepublishSecPpiPpi
 
GLOBAL_REMOVE_IF_UNREFERENCED EFI_SEC_PLATFORM_INFORMATION_PPI mSecPlatformInformationPostMemoryPpi
 
GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_TEMPORARY_RAM_DONE_PPI mSecTemporaryRamDonePostMemoryPpi
 
GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI mSecTemporaryRamSupportPostMemoryPpi
 
GLOBAL_REMOVE_IF_UNREFERENCED PEI_SEC_PERFORMANCE_PPI mSecPerformancePpi
 
STATIC EFI_PEI_PPI_DESCRIPTOR mEdkiiRepublishSecPpiDescriptor
 
GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_PPI_DESCRIPTOR mSecPlatformInformationPostMemoryDescriptor
 
GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_PPI_DESCRIPTOR mSecTemporaryRamDonePostMemoryDescriptor
 
GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_PPI_DESCRIPTOR mSecTemporaryRamSupportPostMemoryDescriptor
 
GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_PPI_DESCRIPTOR mSecPerformancePpiDescriptor
 

Detailed Description

Migrates SEC structures after permanent memory is installed.

Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file SecMigrationPei.c.

Function Documentation

◆ GetPerformancePostMemory()

EFI_STATUS EFIAPI GetPerformancePostMemory ( IN CONST EFI_PEI_SERVICES **  PeiServices,
IN PEI_SEC_PERFORMANCE_PPI This,
OUT FIRMWARE_SEC_PERFORMANCE Performance 
)

This interface conveys performance information out of the Security (SEC) phase into PEI.

This service is published by the SEC phase. The SEC phase handoff has an optional EFI_PEI_PPI_DESCRIPTOR list as its final argument when control is passed from SEC into the PEI Foundation. As such, if the platform supports collecting performance data in SEC, this information is encapsulated into the data structure abstracted by this service. This information is collected for the boot-strap processor (BSP) on IA-32.

Parameters
[in]PeiServicesThe pointer to the PEI Services Table.
[in]ThisThe pointer to this instance of the PEI_SEC_PERFORMANCE_PPI.
[out]PerformanceThe pointer to performance data collected in SEC phase.
Return values
EFI_SUCCESSThe performance data was successfully returned.
EFI_INVALID_PARAMETERThe This or Performance is NULL.
EFI_NOT_FOUNDCan't found the HOB created by the SecMigrationPei component.

Definition at line 145 of file SecMigrationPei.c.

◆ RepublishSecPpis()

EFI_STATUS EFIAPI RepublishSecPpis ( VOID  )

This interface re-installs PPIs installed in SecCore from a post-memory PEIM.

This is to allow a platform that may not support relocation of SecCore to update the PPI instance to a post-memory copy from a PEIM that has been shadowed to permanent memory.

Return values
EFI_SUCCESSThe SecCore PPIs were re-installed successfully.
OthersAn error occurred re-installing the SecCore PPIs.

Definition at line 231 of file SecMigrationPei.c.

◆ SecMigrationPeiInitialize()

EFI_STATUS EFIAPI SecMigrationPeiInitialize ( IN EFI_PEI_FILE_HANDLE  FileHandle,
IN CONST EFI_PEI_SERVICES **  PeiServices 
)

This function is the entry point which installs an instance of REPUBLISH_SEC_PPI_PPI.

It install the RepublishSecPpi depent on PcdMigrateTemporaryRamFirmwareVolumes, install the PPI when the PcdMigrateTemporaryRamFirmwareVolumes enabled.

Parameters
[in]FileHandlePointer to image file handle.
[in]PeiServicesPointer to PEI Services Table
Return values
EFI_ABORTEDDisable evacuate temporary memory feature by disable PcdMigrateTemporaryRamFirmwareVolumes.
EFI_SUCCESSAn instance of REPUBLISH_SEC_PPI_PPI was installed successfully.
OthersAn error occurred installing and instance of REPUBLISH_SEC_PPI_PPI.

Definition at line 370 of file SecMigrationPei.c.

◆ SecPlatformInformationPostMemory()

EFI_STATUS EFIAPI SecPlatformInformationPostMemory ( IN CONST EFI_PEI_SERVICES **  PeiServices,
IN OUT UINT64 *  StructureSize,
OUT EFI_SEC_PLATFORM_INFORMATION_RECORD PlatformInformationRecord 
)

This interface conveys state information out of the Security (SEC) phase into PEI.

Parameters
[in]PeiServicesPointer to the PEI Services Table.
[in,out]StructureSizePointer to the variable describing size of the input buffer.
[out]PlatformInformationRecordPointer to the EFI_SEC_PLATFORM_INFORMATION_RECORD.
Return values
EFI_SUCCESSThe data was successfully returned.
EFI_NOT_FOUNDCan't found the HOB created by SecMigrationPei component.
EFI_BUFFER_TOO_SMALLThe size of buffer pointed by StructureSize is too small and will return the minimal required size in the buffer pointed by StructureSize.
EFI_INVALID_PARAMETERThe StructureSize is NULL or PlatformInformationRecord is NULL.

Definition at line 183 of file SecMigrationPei.c.

◆ SecTemporaryRamDonePostMemory()

EFI_STATUS EFIAPI SecTemporaryRamDonePostMemory ( VOID  )

Disables the use of Temporary RAM.

If present, this service is invoked by the PEI Foundation after the EFI_PEI_PERMANANT_MEMORY_INSTALLED_PPI is installed.

Return values
EFI_SUCCESSDummy function, alway return this value.

Definition at line 82 of file SecMigrationPei.c.

◆ SecTemporaryRamSupportPostMemory()

EFI_STATUS EFIAPI SecTemporaryRamSupportPostMemory ( IN CONST EFI_PEI_SERVICES **  PeiServices,
IN EFI_PHYSICAL_ADDRESS  TemporaryMemoryBase,
IN EFI_PHYSICAL_ADDRESS  PermanentMemoryBase,
IN UINTN  CopySize 
)

This service of the EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI that migrates temporary RAM into permanent memory.

Parameters
PeiServicesPointer to the PEI Services Table.
TemporaryMemoryBaseSource Address in temporary memory from which the SEC or PEIM will copy the Temporary RAM contents.
PermanentMemoryBaseDestination Address in permanent memory into which the SEC or PEIM will copy the Temporary RAM contents.
CopySizeAmount of memory to migrate from temporary to permanent memory.
Return values
EFI_SUCCESSThe data was successfully returned.
EFI_INVALID_PARAMETERPermanentMemoryBase + CopySize > TemporaryMemoryBase when TemporaryMemoryBase > PermanentMemoryBase.

Definition at line 111 of file SecMigrationPei.c.

Variable Documentation

◆ mEdkiiRepublishSecPpiDescriptor

STATIC EFI_PEI_PPI_DESCRIPTOR mEdkiiRepublishSecPpiDescriptor
Initial value:
= {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gRepublishSecPpiPpiGuid,
&mEdkiiRepublishSecPpiPpi
}

Definition at line 41 of file SecMigrationPei.c.

◆ mEdkiiRepublishSecPpiPpi

STATIC REPUBLISH_SEC_PPI_PPI mEdkiiRepublishSecPpiPpi
Initial value:
= {
}
EFI_STATUS EFIAPI RepublishSecPpis(VOID)

Definition at line 21 of file SecMigrationPei.c.

◆ mSecPerformancePpi

Initial value:
= {
}
EFI_STATUS EFIAPI GetPerformancePostMemory(IN CONST EFI_PEI_SERVICES **PeiServices, IN PEI_SEC_PERFORMANCE_PPI *This, OUT FIRMWARE_SEC_PERFORMANCE *Performance)

Definition at line 37 of file SecMigrationPei.c.

◆ mSecPerformancePpiDescriptor

Initial value:
= {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gPeiSecPerformancePpiGuid,
&mSecPerformancePpi
}

Definition at line 65 of file SecMigrationPei.c.

◆ mSecPlatformInformationPostMemoryDescriptor

GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_PPI_DESCRIPTOR mSecPlatformInformationPostMemoryDescriptor
Initial value:
= {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEfiSecPlatformInformationPpiGuid,
&mSecPlatformInformationPostMemoryPpi
}

Definition at line 47 of file SecMigrationPei.c.

◆ mSecPlatformInformationPostMemoryPpi

Initial value:
= {
}
EFI_STATUS EFIAPI SecPlatformInformationPostMemory(IN CONST EFI_PEI_SERVICES **PeiServices, IN OUT UINT64 *StructureSize, OUT EFI_SEC_PLATFORM_INFORMATION_RECORD *PlatformInformationRecord)

Definition at line 25 of file SecMigrationPei.c.

◆ mSecTemporaryRamDonePostMemoryDescriptor

GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_PPI_DESCRIPTOR mSecTemporaryRamDonePostMemoryDescriptor
Initial value:
= {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEfiTemporaryRamDonePpiGuid,
&mSecTemporaryRamDonePostMemoryPpi
}

Definition at line 53 of file SecMigrationPei.c.

◆ mSecTemporaryRamDonePostMemoryPpi

Initial value:
= {
}
EFI_STATUS EFIAPI SecTemporaryRamDonePostMemory(VOID)

Definition at line 29 of file SecMigrationPei.c.

◆ mSecTemporaryRamSupportPostMemoryDescriptor

GLOBAL_REMOVE_IF_UNREFERENCED EFI_PEI_PPI_DESCRIPTOR mSecTemporaryRamSupportPostMemoryDescriptor
Initial value:
= {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEfiTemporaryRamSupportPpiGuid,
&mSecTemporaryRamSupportPostMemoryPpi
}

Definition at line 59 of file SecMigrationPei.c.

◆ mSecTemporaryRamSupportPostMemoryPpi

Initial value:
= {
}
EFI_STATUS EFIAPI SecTemporaryRamSupportPostMemory(IN CONST EFI_PEI_SERVICES **PeiServices, IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase, IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase, IN UINTN CopySize)

Definition at line 33 of file SecMigrationPei.c.