mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg SecCore: Add SecPerformancePpiCallBack
Add SecPerformancePpiCallBack to get SEC performance data and build HOB to convey the SEC performance data to DXE phase. Cc: Liming Gao <liming.gao@intel.com> Cc: Jeff Fan <jeff.fan@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
9e9ca2100f
commit
f2e7062974
|
@ -71,6 +71,13 @@
|
||||||
## SOMETIMES_PRODUCES
|
## SOMETIMES_PRODUCES
|
||||||
gEfiSecPlatformInformation2PpiGuid
|
gEfiSecPlatformInformation2PpiGuid
|
||||||
gEfiTemporaryRamDonePpiGuid ## PRODUCES
|
gEfiTemporaryRamDonePpiGuid ## PRODUCES
|
||||||
|
## NOTIFY
|
||||||
|
## SOMETIMES_CONSUMES
|
||||||
|
gPeiSecPerformancePpiGuid
|
||||||
|
|
||||||
|
[Guids]
|
||||||
|
## SOMETIMES_PRODUCES ## HOB
|
||||||
|
gEfiFirmwarePerformanceGuid
|
||||||
|
|
||||||
[Pcd]
|
[Pcd]
|
||||||
gUefiCpuPkgTokenSpaceGuid.PcdPeiTemporaryRamStackSize ## CONSUMES
|
gUefiCpuPkgTokenSpaceGuid.PcdPeiTemporaryRamStackSize ## CONSUMES
|
||||||
|
|
|
@ -21,6 +21,14 @@ EFI_PEI_TEMPORARY_RAM_DONE_PPI gSecTemporaryRamDonePpi = {
|
||||||
EFI_SEC_PLATFORM_INFORMATION_PPI mSecPlatformInformationPpi = { SecPlatformInformation };
|
EFI_SEC_PLATFORM_INFORMATION_PPI mSecPlatformInformationPpi = { SecPlatformInformation };
|
||||||
|
|
||||||
EFI_PEI_PPI_DESCRIPTOR mPeiSecPlatformInformationPpi[] = {
|
EFI_PEI_PPI_DESCRIPTOR mPeiSecPlatformInformationPpi[] = {
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// SecPerformance PPI notify descriptor.
|
||||||
|
//
|
||||||
|
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK,
|
||||||
|
&gPeiSecPerformancePpiGuid,
|
||||||
|
(VOID *) (UINTN) SecPerformancePpiCallBack
|
||||||
|
},
|
||||||
{
|
{
|
||||||
EFI_PEI_PPI_DESCRIPTOR_PPI,
|
EFI_PEI_PPI_DESCRIPTOR_PPI,
|
||||||
&gEfiTemporaryRamDonePpiGuid,
|
&gEfiTemporaryRamDonePpiGuid,
|
||||||
|
@ -55,6 +63,44 @@ SecStartupPhase2(
|
||||||
IN VOID *Context
|
IN VOID *Context
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Entry point of the notification callback function itself within the PEIM.
|
||||||
|
It is to get SEC performance data and build HOB to convey the SEC performance
|
||||||
|
data to DXE phase.
|
||||||
|
|
||||||
|
@param PeiServices Indirect reference to the PEI Services Table.
|
||||||
|
@param NotifyDescriptor Address of the notification descriptor data structure.
|
||||||
|
@param Ppi Address of the PPI that was installed.
|
||||||
|
|
||||||
|
@return Status of the notification.
|
||||||
|
The status code returned from this function is ignored.
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
SecPerformancePpiCallBack (
|
||||||
|
IN EFI_PEI_SERVICES **PeiServices,
|
||||||
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
||||||
|
IN VOID *Ppi
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
PEI_SEC_PERFORMANCE_PPI *SecPerf;
|
||||||
|
FIRMWARE_SEC_PERFORMANCE Performance;
|
||||||
|
|
||||||
|
SecPerf = (PEI_SEC_PERFORMANCE_PPI *) Ppi;
|
||||||
|
Status = SecPerf->GetPerformance ((CONST EFI_PEI_SERVICES **) PeiServices, SecPerf, &Performance);
|
||||||
|
if (!EFI_ERROR (Status)) {
|
||||||
|
BuildGuidDataHob (
|
||||||
|
&gEfiFirmwarePerformanceGuid,
|
||||||
|
&Performance,
|
||||||
|
sizeof (FIRMWARE_SEC_PERFORMANCE)
|
||||||
|
);
|
||||||
|
DEBUG ((DEBUG_INFO, "FPDT: SEC Performance Hob ResetEnd = %ld\n", Performance.ResetEnd));
|
||||||
|
}
|
||||||
|
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
||||||
Entry point to the C language phase of SEC. After the SEC assembly
|
Entry point to the C language phase of SEC. After the SEC assembly
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Master header file for SecCore.
|
Master header file for SecCore.
|
||||||
|
|
||||||
Copyright (c) 2008 - 2016, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2008 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -20,6 +20,9 @@
|
||||||
#include <Ppi/SecPlatformInformation.h>
|
#include <Ppi/SecPlatformInformation.h>
|
||||||
#include <Ppi/SecPlatformInformation2.h>
|
#include <Ppi/SecPlatformInformation2.h>
|
||||||
#include <Ppi/TemporaryRamDone.h>
|
#include <Ppi/TemporaryRamDone.h>
|
||||||
|
#include <Ppi/SecPerformance.h>
|
||||||
|
|
||||||
|
#include <Guid/FirmwarePerformance.h>
|
||||||
|
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
|
@ -157,4 +160,24 @@ RepublishSecPlatformInformationPpi (
|
||||||
VOID
|
VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Entry point of the notification callback function itself within the PEIM.
|
||||||
|
It is to get SEC performance data and build HOB to convey the SEC performance
|
||||||
|
data to DXE phase.
|
||||||
|
|
||||||
|
@param PeiServices Indirect reference to the PEI Services Table.
|
||||||
|
@param NotifyDescriptor Address of the notification descriptor data structure.
|
||||||
|
@param Ppi Address of the PPI that was installed.
|
||||||
|
|
||||||
|
@return Status of the notification.
|
||||||
|
The status code returned from this function is ignored.
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
SecPerformancePpiCallBack (
|
||||||
|
IN EFI_PEI_SERVICES **PeiServices,
|
||||||
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
||||||
|
IN VOID *Ppi
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue