soc/intel/alderlake: Skip FSP Notify APIs
Alder Lake SoC deselects Kconfigs as below: - USE_FSP_NOTIFY_PHASE_READY_TO_BOOT - USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE to skip FSP notify APIs (Ready to boot and End of Firmware) and make use of native coreboot driver to perform SoC recommended operations prior booting to payload/OS. Additionally, created a helper function `heci_finalize()` to keep HECI related operations separated for easy guarding again config. TODO: coreboot native implementation to skip FSP notify phase API (post pci enumeration) is still WIP. BUG=b:211954778 TEST=Able to build brya with these changes and coreboot log with this code change as below when ADL SoC selects required configs. BS: BS_PAYLOAD_LOAD run times (exec / console): 135 / 62 ms coreboot skipped calling FSP notify phase: 00000040. coreboot skipped calling FSP notify phase: 000000f0. BS: BS_PAYLOAD_LOAD exit times (exec / console): 0 / 11 ms Finalizing chipset. apm_control: Finalizing SMM. APMC done. HECI: Sending End-of-Post CSE: EOP requested action: continue boot CSE EOP successful, continuing boot HECI: CSE device 16.1 is disabled HECI: CSE device 16.4 is disabled HECI: CSE device 16.5 is disabled BS: BS_PAYLOAD_BOOT entry times (exec / console): 9 / 27 ms Signed-off-by: Subrata Banik <subratabanik@google.com> Change-Id: I0198c9568de0e74053775682a44324405746389a Reviewed-on: https://review.coreboot.org/c/coreboot/+/60406 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
This commit is contained in:
parent
90e318bba4
commit
95986169f9
|
@ -108,8 +108,6 @@ config CPU_SPECIFIC_OPTIONS
|
||||||
select UDELAY_TSC
|
select UDELAY_TSC
|
||||||
select UDK_202005_BINDING
|
select UDK_202005_BINDING
|
||||||
select USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
|
select USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
|
||||||
select USE_FSP_NOTIFY_PHASE_READY_TO_BOOT
|
|
||||||
select USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE
|
|
||||||
|
|
||||||
config ALDERLAKE_A0_CONFIGURE_PMC_DESCRIPTOR
|
config ALDERLAKE_A0_CONFIGURE_PMC_DESCRIPTOR
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -80,6 +80,13 @@ static void sa_finalize(void)
|
||||||
sa_lock_pam();
|
sa_lock_pam();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void heci_finalize(void)
|
||||||
|
{
|
||||||
|
heci_set_to_d0i3();
|
||||||
|
if (CONFIG(DISABLE_HECI1_AT_PRE_BOOT))
|
||||||
|
heci1_disable();
|
||||||
|
}
|
||||||
|
|
||||||
static void soc_finalize(void *unused)
|
static void soc_finalize(void *unused)
|
||||||
{
|
{
|
||||||
printk(BIOS_DEBUG, "Finalizing chipset.\n");
|
printk(BIOS_DEBUG, "Finalizing chipset.\n");
|
||||||
|
@ -88,9 +95,9 @@ static void soc_finalize(void *unused)
|
||||||
apm_control(APM_CNT_FINALIZE);
|
apm_control(APM_CNT_FINALIZE);
|
||||||
tbt_finalize();
|
tbt_finalize();
|
||||||
sa_finalize();
|
sa_finalize();
|
||||||
heci_set_to_d0i3();
|
if (CONFIG(USE_FSP_NOTIFY_PHASE_READY_TO_BOOT) &&
|
||||||
if (CONFIG(DISABLE_HECI1_AT_PRE_BOOT))
|
CONFIG(USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE))
|
||||||
heci1_disable();
|
heci_finalize();
|
||||||
|
|
||||||
/* Indicate finalize step with post code */
|
/* Indicate finalize step with post code */
|
||||||
post_code(POST_OS_BOOT);
|
post_code(POST_OS_BOOT);
|
||||||
|
|
Loading…
Reference in New Issue