/** @file
|
This is the FSP driver that initializes the Intel PCH.
|
|
Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
|
#include <Library/DebugLib.h>
|
#include <Library/PeiServicesLib.h>
|
#include "PchInit.h"
|
|
EFI_STATUS
|
EFIAPI
|
PchOnPciEnumCompleteFsp (
|
IN EFI_PEI_SERVICES **PeiServices,
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
IN VOID *Ppi
|
);
|
|
STATIC
|
EFI_PEI_NOTIFY_DESCRIPTOR mPchOnPciEnumCompleteNotifyList[] = {
|
{
|
(EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
|
&gEfiPciEnumerationCompleteProtocolGuid,
|
PchOnPciEnumCompleteFsp
|
}
|
};
|
|
/**
|
<b>FSP PchInit Module Entry Point for FSP</b>\n
|
|
@param[in] FileHandle PEIM's file handle
|
@param[in] PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation
|
|
@retval EFI_SUCCESS The function completed successfully
|
@retval EFI_OUT_OF_RESOURCES Do not have enough resources to initialize the driver
|
**/
|
EFI_STATUS
|
EFIAPI
|
PchInitEntryPointFsp (
|
IN EFI_PEI_FILE_HANDLE FileHandle,
|
IN CONST EFI_PEI_SERVICES **PeiServices
|
)
|
{
|
EFI_STATUS Status;
|
|
DEBUG ((DEBUG_INFO, "PchInitEntryPointFsp() Start\n"));
|
|
PchInitEntryPointCommon ();
|
|
Status = PeiServicesNotifyPpi (mPchOnPciEnumCompleteNotifyList);
|
ASSERT_EFI_ERROR (Status);
|
|
DEBUG ((DEBUG_INFO, "PchInitEntryPointFsp() End\n"));
|
|
return Status;
|
}
|
|
/**
|
Fsp PCH initialization on PCI enumeration complete
|
|
@param[in] PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation
|
@param[in] NotifyDescriptor Address of the notification descriptor data structure.
|
@param[in] Ppi Address of the PPI that was installed.
|
|
@retval EFI_SUCCESS The function completed successfully
|
@retval EFI_OUT_OF_RESOURCES Do not have enough resources to initialize the driver
|
**/
|
EFI_STATUS
|
EFIAPI
|
PchOnPciEnumCompleteFsp (
|
IN EFI_PEI_SERVICES **PeiServices,
|
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
|
IN VOID *Ppi
|
)
|
{
|
DEBUG ((DEBUG_INFO, "PchOnPciEnumCompleteFsp() Start\n"));
|
|
PchOnPciEnumCompleteCommon ();
|
|
DEBUG ((DEBUG_INFO, "PchOnPciEnumCompleteFsp() End\n"));
|
|
return EFI_SUCCESS;
|
}
|