Krzysztof M Sywula has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/31894
Change subject: soc/intel/cannonlake: Enable shutdown before OS ......................................................................
soc/intel/cannonlake: Enable shutdown before OS
This change enables user to shutdown the system by shortly pressing shutdown button (<10sec) before OS is loaded. Main use case is shutdown from recovery/broken screen.
Tested on Fircrest SKU2-3 (Whisky Lake EVT board)
Change-Id: I7655daf65ff058df7d9bad4567f74b4f4007acb4 Signed-off-by: Krzysztof Sywula krzysztof.m.sywula@intel.com --- M src/soc/intel/cannonlake/pmc.c 1 file changed, 15 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/94/31894/1
diff --git a/src/soc/intel/cannonlake/pmc.c b/src/soc/intel/cannonlake/pmc.c index 931c4af..5cd31f9 100644 --- a/src/soc/intel/cannonlake/pmc.c +++ b/src/soc/intel/cannonlake/pmc.c @@ -62,6 +62,21 @@ pmc_set_afterg3(PCH_DEV_PMC, CONFIG_MAINBOARD_POWER_FAILURE_STATE); }
+static void pm1_enable_pwrbtn_smi(void *unused) +{ + /* + * Enable power button SMI only before jumping to payload. This ensures + * that: + * 1. Power button SMI is enabled only after coreboot is done. + * 2. On resume path, power button SMI is not enabled and thus avoids + * any shutdowns because of power button presses due to power button + * press in resume path. + */ + pmc_update_pm1_enable(PWRBTN_EN); +} + +BOOT_STATE_INIT_ENTRY(BS_PAYLOAD_LOAD, BS_ON_EXIT, pm1_enable_pwrbtn_smi, NULL); + static void config_deep_sX(uint32_t offset, uint32_t mask, int sx, int enable) { uint32_t reg;