/** @file
Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _BOARD_INIT_LIB_H_
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
/**
Board specific hook points.
Implement board specific initialization during the boot flow.
@param[in] InitPhase Current phase in the boot flow.
**/
VOID
EFIAPI
BoardInit (
IN BOARD_INIT_PHASE InitPhase
);
/**
Update FSP-S/FSP-M UPD config data
@param FspUpdPtr The pointer to the FSP-S/FSP-M UPD to be updated.
**/
VOID
EFIAPI
UpdateFspConfig (
VOID *FspUpdPtr
);
/**
Disable watch dog timer (Halt TCO timer).
**/
VOID
EFIAPI
DisableWatchDogTimer (
VOID
);
/**
Enables the execution by writing to the MSR.
**/
VOID
EFIAPI
EnableCodeExecution (
VOID
);
/**
Search for the saved MrcParam to initialize Memory for fastboot.
@retval Found MrcParam or NULL
**/
VOID *
EFIAPI
FindNvsData (
VOID
);
/**
Save MRC data onto the Flash region from NVS buffer.
@param Param pointer to an NVS data
@param Length Length of the NVS data(MRC)
@retval EFI_SUCCESS
@retval RETURN_ALREADY_STARTED
@retval EFI_DEVICE_ERROR
@retval EFI_INVALID_PARAMETER
**/
EFI_STATUS
EFIAPI
SaveNvsData (
IN VOID *Param,
IN UINT32 Length
);
/**
Builds a Handoff Information Table HOB.
@param BootMode - Current Bootmode
@param MemoryBegin - Start Memory Address.
@param MemoryLength - Length of Memory.
@return EFI_SUCCESS Always success to initialize HOB.
**/
EFI_STATUS
EFIAPI
BuildHobHandoffInfoTable (
IN EFI_BOOT_MODE BootMode,
IN EFI_PHYSICAL_ADDRESS MemoryBegin,
IN UINT64 MemoryLength
);
/**
Update Hob Info with platform specific data
@param Guid The GUID to tag the customized HOB.
@param HobInfo The start address of GUID HOB data.
**/
VOID
EFIAPI
PlatformUpdateHobInfo (
IN CONST EFI_GUID *Guid,
OUT VOID *HobInfo
);
/**
Update PCH NVS and SA NVS area address and size in ACPI table.
@param[in] Current Pointer to ACPI description header
@return EFI_STATUS Success.
@return EFI_DEVICE_ERROR ACPI Device error.
**/
EFI_STATUS
EFIAPI
PlatformUpdateAcpiTable (
IN UINT8 *Current
);
/**
Dynamic update of Global NVS data.
@param[in] GnvsIn Pointer to global nvs region
**/
VOID
EFIAPI
PlatformUpdateAcpiGnvs (
IN VOID *GnvsIn
);
/**
Get size of Platform Specific Data.
@param[in] none
@retval UINT32 Size of Platform Specific Data
**/
UINT32
EFIAPI
GetPlatformDataSize (
IN VOID
);
#endif