/** @file
|
Source code file for Report Firmware Volume (FV) PEI module
|
|
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
#include <Base.h>
|
#include <Library/PeiServicesLib.h>
|
#include <Library/ReportFvLib.h>
|
#include <Library/TestPointCheckLib.h>
|
|
EFI_STATUS
|
EFIAPI
|
MemoryDiscoveredPpiNotifyCallback (
|
IN CONST EFI_PEI_SERVICES **PeiServices,
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
IN VOID *Ppi
|
);
|
|
static EFI_PEI_NOTIFY_DESCRIPTOR mMemDiscoveredNotifyList = {
|
(EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
|
&gEfiPeiMemoryDiscoveredPpiGuid,
|
(EFI_PEIM_NOTIFY_ENTRY_POINT) MemoryDiscoveredPpiNotifyCallback
|
};
|
|
/**
|
Install Firmware Volume Hob's once there is main memory
|
@param[in] PeiServices General purpose services available to every PEIM.
|
@param[in] NotifyDescriptor Notify that this module published.
|
@param[in] Ppi PPI that was installed.
|
@retval EFI_SUCCESS The function completed successfully.
|
**/
|
EFI_STATUS
|
EFIAPI
|
MemoryDiscoveredPpiNotifyCallback (
|
IN CONST EFI_PEI_SERVICES **PeiServices,
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
IN VOID *Ppi
|
)
|
{
|
ReportPostMemFv ();
|
|
TestPointMemoryDiscoveredFvInfoFunctional ();
|
|
return EFI_SUCCESS;
|
}
|
|
/**
|
Platform Init before memory PEI module entry point
|
@param[in] FileHandle Not used.
|
@param[in] PeiServices General purpose services available to every PEIM.
|
@retval EFI_SUCCESS The function completes successfully
|
@retval EFI_OUT_OF_RESOURCES Insufficient resources to create database
|
**/
|
EFI_STATUS
|
EFIAPI
|
ReportFvEntryPoint (
|
IN EFI_PEI_FILE_HANDLE FileHandle,
|
IN CONST EFI_PEI_SERVICES **PeiServices
|
)
|
{
|
EFI_STATUS Status;
|
|
ReportPreMemFv ();
|
|
///
|
/// After code reorangized, memorycallback will run because the PPI is already
|
/// installed when code run to here, it is supposed that the InstallEfiMemory is
|
/// done before.
|
///
|
Status = PeiServicesNotifyPpi (&mMemDiscoveredNotifyList);
|
|
return Status;
|
}
|