IntelFsp2WrapperPkg: Perform post FSP-S process.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1716

In API mode FSP wrapper will perform some post
FSP-S process but such process was skipped in Dispatch
mode which may impact some of the boot loaders.
To align behavior between API and Dispatch, an
End-of-Pei callback is introduced to perform same process
in Dispatch mode.

Note: If boot loader implemented its own
      PostFspsHobProcess (), it has to check
      PcdFspModeSelection and support each mode
      properly.

Test: Verified on internal platform and both
      FSP API and Dispatch modes booted successfully.

Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
This commit is contained in:
Chasel, Chiu
2019-04-12 16:54:47 +08:00
committed by Chasel Chiu
parent eb33b3994d
commit 68d47eea42
3 changed files with 97 additions and 18 deletions

View File

@@ -1,7 +1,7 @@
/** @file
Sample to provide FSP wrapper hob process related function.
Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -378,7 +378,19 @@ PostFspsHobProcess (
IN VOID *FspHobList
)
{
ProcessFspHobList (FspHobList);
//
// PostFspsHobProcess () will be called in both FSP API and Dispatch modes to
// align the same behavior and support a variety of boot loader implementations.
// Boot loader provided library function is recommended to support both API and
// Dispatch modes by checking PcdFspModeSelection.
//
if (PcdGet8 (PcdFspModeSelection) == 1) {
//
// Only in FSP API mode the wrapper has to build hobs basing on FSP output data.
// In this case FspHobList cannot be NULL.
//
ASSERT (FspHobList != NULL);
ProcessFspHobList (FspHobList);
}
return EFI_SUCCESS;
}