/** @file
This is the FSP driver that initializes the Intel PCH.
Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#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
}
};
/**
FSP PchInit Module Entry Point for FSP\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;
}