IntelFsp2WrapperPkg: Support FSP Dispatch mode
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1300 Provides PCD selection for FSP Wrapper to support Dispatch mode. Also PcdFspmBaseAddress should support Dynamic for recovery scenario (multiple FSP-M binary in flash) Test: Verified on internal platform and both API and DISPATCH modes booted successfully. Cc: Jiewen Yao <Jiewen.yao@intel.com> Cc: Desimone Nathaniel L <nathaniel.l.desimone@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
register TemporaryRamDonePpi to call TempRamExit API, and register MemoryDiscoveredPpi
|
||||
notify to call FspSiliconInit API.
|
||||
|
||||
Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
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
|
||||
@@ -65,7 +65,7 @@ PeiFspMemoryInit (
|
||||
FspHobListPtr = NULL;
|
||||
FspmUpdDataPtr = NULL;
|
||||
|
||||
FspmHeaderPtr = (FSP_INFO_HEADER *)FspFindFspHeader (PcdGet32 (PcdFspmBaseAddress));
|
||||
FspmHeaderPtr = (FSP_INFO_HEADER *) FspFindFspHeader (PcdGet32 (PcdFspmBaseAddress));
|
||||
DEBUG ((DEBUG_INFO, "FspmHeaderPtr - 0x%x\n", FspmHeaderPtr));
|
||||
if (FspmHeaderPtr == NULL) {
|
||||
return EFI_DEVICE_ERROR;
|
||||
@@ -155,8 +155,20 @@ FspmWrapperInit (
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = PeiFspMemoryInit ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
if (FixedPcdGet8 (PcdFspModeSelection) == 1) {
|
||||
Status = PeiFspMemoryInit ();
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
} else {
|
||||
PeiServicesInstallFvInfoPpi (
|
||||
NULL,
|
||||
(VOID *)(UINTN) PcdGet32 (PcdFspmBaseAddress),
|
||||
(UINT32)((EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) PcdGet32 (PcdFspmBaseAddress))->FvLength,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
# register TemporaryRamDonePpi to call TempRamExit API, and register MemoryDiscoveredPpi
|
||||
# notify to call FspSiliconInit API.
|
||||
#
|
||||
# Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
@@ -61,6 +61,7 @@
|
||||
[Pcd]
|
||||
gIntelFsp2WrapperTokenSpaceGuid.PcdFspmBaseAddress ## CONSUMES
|
||||
gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress ## CONSUMES
|
||||
gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection ## CONSUMES
|
||||
|
||||
[Sources]
|
||||
FspmWrapperPeim.c
|
||||
|
Reference in New Issue
Block a user