soc/intel/common/block/smm: Keep selected wake sources enabled in S5
The generic Intel SMM S5 entry path disables all GPEs before asserting SLP_EN, which clears OS-armed wake enables (e.g. LAN_WAKE) and prevents Wake-on-LAN from S5. Add a mainboard override hook, mainboard_smi_sleep_finalize(), called after the S5 teardown but before SLP_EN is asserted, allowing boards to restore required wake sources. Change-Id: I9e97308ed94961fc4c08a10714b1b53f198bb593 Signed-off-by: Sean Rhodes <sean@starlabs.systems> Reviewed-on: https://review.coreboot.org/c/coreboot/+/90792 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
This commit is contained in:
parent
2bccc76db6
commit
8602d0e2aa
3 changed files with 5 additions and 0 deletions
|
|
@ -226,6 +226,7 @@ void __weak southbridge_smi_handler(void) {}
|
|||
void __weak mainboard_smi_gpi(u32 gpi_sts) {}
|
||||
int __weak mainboard_smi_apmc(u8 data) { return 0; }
|
||||
void __weak mainboard_smi_sleep(u8 slp_typ) {}
|
||||
void __weak mainboard_smi_sleep_finalize(u8 slp_typ) {}
|
||||
void __weak mainboard_smi_finalize(void) {}
|
||||
|
||||
void __weak smm_soc_early_init(void) {}
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ void southbridge_smi_handler(void);
|
|||
void mainboard_smi_gpi(u32 gpi_sts);
|
||||
int mainboard_smi_apmc(u8 data);
|
||||
void mainboard_smi_sleep(u8 slp_typ);
|
||||
void mainboard_smi_sleep_finalize(u8 slp_typ);
|
||||
void mainboard_smi_finalize(void);
|
||||
int mainboard_set_smm_log_level(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -220,6 +220,9 @@ void smihandler_southbridge_sleep(
|
|||
break;
|
||||
}
|
||||
|
||||
/* Allow mainboard to restore wake sources (e.g. for S5 WOL). */
|
||||
mainboard_smi_sleep_finalize(slp_typ);
|
||||
|
||||
/*
|
||||
* Write back to the SLP register to cause the originally intended
|
||||
* event again. We need to set BIT13 (SLP_EN) though to make the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue