feat: [EHL] enable BoardNotifyPhase during FWU (#1939)
The FSP may request for a reboot when some features are enable/disable. The SiliconInit FW update is one case for the "FSP requested boot". Without the patch, SBL has no way to get the notification from CallFspNotifyPhase. The patch introduces a feature, PcdEnableFwuNotify, to allow SBL to keep BoardNotifyPhase during firmware update. On EHL, the feature can be enabled by "disable BIOS Lock". Verify: EHL-CRB Signed-off-by: Stanley Chang <stanley.chang@intel.com>
This commit is contained in:
parent
41075531d9
commit
8cc2cab427
|
@ -245,6 +245,7 @@
|
||||||
gPlatformModuleTokenSpaceGuid.PcdLegacyEfSegmentEnabled | TRUE | BOOLEAN | 0x20000214
|
gPlatformModuleTokenSpaceGuid.PcdLegacyEfSegmentEnabled | TRUE | BOOLEAN | 0x20000214
|
||||||
gPlatformModuleTokenSpaceGuid.PcdEnableDts | FALSE | BOOLEAN | 0x20000215
|
gPlatformModuleTokenSpaceGuid.PcdEnableDts | FALSE | BOOLEAN | 0x20000215
|
||||||
gPlatformModuleTokenSpaceGuid.PcdEnablePciePm | FALSE | BOOLEAN | 0x20000222
|
gPlatformModuleTokenSpaceGuid.PcdEnablePciePm | FALSE | BOOLEAN | 0x20000222
|
||||||
|
gPlatformModuleTokenSpaceGuid.PcdEnableFwuNotify | FALSE | BOOLEAN | 0x20000225
|
||||||
|
|
||||||
[PcdsDynamic]
|
[PcdsDynamic]
|
||||||
gPlatformModuleTokenSpaceGuid.PcdFspResetStatus | 0 | UINT32 | 0x20000224
|
gPlatformModuleTokenSpaceGuid.PcdFspResetStatus | 0 | UINT32 | 0x20000224
|
|
@ -346,6 +346,7 @@
|
||||||
gPlatformModuleTokenSpaceGuid.PcdEnableDts | $(ENABLE_DTS)
|
gPlatformModuleTokenSpaceGuid.PcdEnableDts | $(ENABLE_DTS)
|
||||||
gPlatformModuleTokenSpaceGuid.PcdEnablePciePm | $(ENABLE_PCIE_PM)
|
gPlatformModuleTokenSpaceGuid.PcdEnablePciePm | $(ENABLE_PCIE_PM)
|
||||||
gPlatformCommonLibTokenSpaceGuid.PcdFspNoEop | $(HAVE_NO_FSP_EOP)
|
gPlatformCommonLibTokenSpaceGuid.PcdFspNoEop | $(HAVE_NO_FSP_EOP)
|
||||||
|
gPlatformModuleTokenSpaceGuid.PcdEnableFwuNotify | $(ENABLE_FWU_NOTIFY)
|
||||||
|
|
||||||
!ifdef $(S3_DEBUG)
|
!ifdef $(S3_DEBUG)
|
||||||
gPlatformModuleTokenSpaceGuid.PcdS3DebugEnabled | $(S3_DEBUG)
|
gPlatformModuleTokenSpaceGuid.PcdS3DebugEnabled | $(S3_DEBUG)
|
||||||
|
|
|
@ -557,7 +557,7 @@ SecStartup (
|
||||||
AddMeasurePoint (0x30B0);
|
AddMeasurePoint (0x30B0);
|
||||||
|
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
if (BootMode != BOOT_ON_FLASH_UPDATE) {
|
if (FeaturePcdGet(PcdEnableFwuNotify) || (BootMode != BOOT_ON_FLASH_UPDATE)) {
|
||||||
BoardNotifyPhase (PostPciEnumeration);
|
BoardNotifyPhase (PostPciEnumeration);
|
||||||
AddMeasurePoint (0x30C0);
|
AddMeasurePoint (0x30C0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
## @file
|
## @file
|
||||||
#
|
#
|
||||||
# Copyright (c) 2016 - 2022, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2016 - 2023, Intel Corporation. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
|
@ -152,6 +152,7 @@
|
||||||
gPlatformCommonLibTokenSpaceGuid.PcdBuildSmmHobs
|
gPlatformCommonLibTokenSpaceGuid.PcdBuildSmmHobs
|
||||||
gPlatformCommonLibTokenSpaceGuid.PcdBootPerformanceMask
|
gPlatformCommonLibTokenSpaceGuid.PcdBootPerformanceMask
|
||||||
gPlatformModuleTokenSpaceGuid.PcdSblResiliencyEnabled
|
gPlatformModuleTokenSpaceGuid.PcdSblResiliencyEnabled
|
||||||
|
gPlatformModuleTokenSpaceGuid.PcdEnableFwuNotify
|
||||||
|
|
||||||
[Depex]
|
[Depex]
|
||||||
TRUE
|
TRUE
|
||||||
|
|
|
@ -56,6 +56,8 @@ class Board(BaseBoard):
|
||||||
# 0: Disable 1: Enable 2: Auto (disable for UEFI payload, enable for others)
|
# 0: Disable 1: Enable 2: Auto (disable for UEFI payload, enable for others)
|
||||||
self.ENABLE_SMM_REBASE = 2
|
self.ENABLE_SMM_REBASE = 2
|
||||||
self.ENABLE_FRAMEBUFFER_INIT = 1
|
self.ENABLE_FRAMEBUFFER_INIT = 1
|
||||||
|
# allow FSP notify during FWU
|
||||||
|
self.ENABLE_FWU_NOTIFY = 1
|
||||||
|
|
||||||
# EHL FSP Ready To Boot does not call EOP
|
# EHL FSP Ready To Boot does not call EOP
|
||||||
self.HAVE_NO_FSP_EOP = 1
|
self.HAVE_NO_FSP_EOP = 1
|
||||||
|
|
|
@ -1890,6 +1890,7 @@ UpdateFspConfig (
|
||||||
|
|
||||||
if (GetBootMode () == BOOT_ON_FLASH_UPDATE) {
|
if (GetBootMode () == BOOT_ON_FLASH_UPDATE) {
|
||||||
Fspscfg->PchLockDownBiosInterface = FALSE;
|
Fspscfg->PchLockDownBiosInterface = FALSE;
|
||||||
|
Fspscfg->PchLockDownBiosLock = FALSE;
|
||||||
Fspscfg->RtcBiosInterfaceLock = FALSE;
|
Fspscfg->RtcBiosInterfaceLock = FALSE;
|
||||||
Fspscfg->PchSbAccessUnlock = TRUE;
|
Fspscfg->PchSbAccessUnlock = TRUE;
|
||||||
Fspscfg->SkipMpInit = TRUE;
|
Fspscfg->SkipMpInit = TRUE;
|
||||||
|
|
Loading…
Reference in New Issue