You've already forked slimbootloader
mirror of
https://github.com/Dasharo/slimbootloader.git
synced 2026-03-06 15:26:20 -08:00
5e10bd1e07
To align with EDK2, update file license to use BSD+Patent license Signed-off-by: Guo Dong <guo.dong@intel.com>
57 lines
1.9 KiB
C
57 lines
1.9 KiB
C
/** @file
|
|
|
|
Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#include <FspApiLibInternal.h>
|
|
#include <Library/BoardInitLib.h>
|
|
|
|
|
|
/**
|
|
This FSP API is called after TempRamExit API.
|
|
FspMemoryInit, TempRamExit and FspSiliconInit APIs provide an alternate method to complete the
|
|
silicon initialization.
|
|
|
|
@retval EFI_SUCCESS FSP execution environment was initialized successfully.
|
|
@retval EFI_INVALID_PARAMETER Input parameters are invalid.
|
|
@retval EFI_UNSUPPORTED The FSP calling conditions were not met.
|
|
@retval EFI_DEVICE_ERROR FSP initialization failed.
|
|
@retval FSP_STATUS_RESET_REQUIREDx A reset is reuired. These status codes will not be returned during S3.
|
|
**/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
CallFspSiliconInit (
|
|
VOID
|
|
)
|
|
{
|
|
UINT8 FspsUpd[FixedPcdGet32 (PcdFSPSUpdSize)];
|
|
UINT8 *DefaultSiliconInitUpd;
|
|
FSP_INFO_HEADER *FspHeader;
|
|
FSP_SILICON_INIT FspSiliconInit;
|
|
EFI_STATUS Status;
|
|
|
|
FspHeader = (FSP_INFO_HEADER *) (PcdGet32 (PcdFSPSBase) + FSP_INFO_HEADER_OFF);
|
|
|
|
ASSERT (FspHeader->Signature == FSP_INFO_HEADER_SIGNATURE);
|
|
ASSERT (FspHeader->ImageBase == PcdGet32 (PcdFSPSBase));
|
|
|
|
// Copy default UPD data
|
|
DefaultSiliconInitUpd = (UINT8 *) (FspHeader->ImageBase + FspHeader->CfgRegionOffset);
|
|
CopyMem (&FspsUpd, DefaultSiliconInitUpd, FspHeader->CfgRegionSize);
|
|
|
|
/* Update architectural UPD fields */
|
|
UpdateFspConfig (FspsUpd);
|
|
|
|
ASSERT (FspHeader->FspSiliconInitEntryOffset != 0);
|
|
FspSiliconInit = (FSP_SILICON_INIT) (FspHeader->ImageBase + \
|
|
FspHeader->FspSiliconInitEntryOffset);
|
|
|
|
DEBUG ((DEBUG_INFO, "Call FspSiliconInit ... \n"));
|
|
Status = FspSiliconInit (&FspsUpd);
|
|
DEBUG ((DEBUG_INFO, "%r\n", Status));
|
|
|
|
return Status;
|
|
}
|