X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=IntelFspWrapperPkg%2FFspInitPei%2FSecMain.c;fp=IntelFspWrapperPkg%2FFspInitPei%2FSecMain.c;h=4d0878a9df0b3b8b00f59b5a66f89ea10cb9cdbf;hp=10550e74de1a33af5aea5d9f20d2a544ea0da485;hb=d8043ce905a5832f911361ef30be28765afbdc6b;hpb=d5fb1edfb16a2af29486ffbf5aa32a036da9caa4 diff --git a/IntelFspWrapperPkg/FspInitPei/SecMain.c b/IntelFspWrapperPkg/FspInitPei/SecMain.c index 10550e74de..4d0878a9df 100644 --- a/IntelFspWrapperPkg/FspInitPei/SecMain.c +++ b/IntelFspWrapperPkg/FspInitPei/SecMain.c @@ -1,7 +1,7 @@ /** @file C functions in SEC - Copyright (c) 2014, Intel Corporation. All rights reserved.
+ Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -28,6 +28,10 @@ EFI_PEI_PPI_DESCRIPTOR mPeiSecMainPpi[] = { }, }; +FSP_INIT_DONE_PPI gFspInitDonePpi = { + FspInitDoneGetFspHobList +}; + // // These are IDT entries pointing to 10:FFFFFFE4h. // @@ -267,3 +271,40 @@ SecStartupPhase2( // return ; } + +/** + Return Hob list produced by FSP. + + @param[in] PeiServices The pointer to the PEI Services Table. + @param[in] This The pointer to this instance of this PPI. + @param[out] FspHobList The pointer to Hob list produced by FSP. + + @return EFI_SUCCESS FReturn Hob list produced by FSP successfully. +**/ +EFI_STATUS +EFIAPI +FspInitDoneGetFspHobList ( + IN CONST EFI_PEI_SERVICES **PeiServices, + IN FSP_INIT_DONE_PPI *This, + OUT VOID **FspHobList + ) +{ + VOID *TopOfTemporaryRamPpi; + EFI_STATUS Status; + + Status = (*PeiServices)->LocatePpi ( + PeiServices, + &gTopOfTemporaryRamPpiGuid, + 0, + NULL, + (VOID **) &TopOfTemporaryRamPpi + ); + if (EFI_ERROR (Status)) { + return EFI_NOT_FOUND; + } + + *FspHobList = (VOID *)(UINTN)(*(UINT32 *)((UINTN)TopOfTemporaryRamPpi - sizeof(UINT32))); + + return EFI_SUCCESS; +} +