summaryrefslogtreecommitdiff
path: root/src/soc/intel/jasperlake/pmc.c
diff options
context:
space:
mode:
authorKane Chen <kane.chen@intel.corp-partner.google.com>2021-05-04 09:53:38 +0800
committerPatrick Georgi <pgeorgi@google.com>2021-05-07 06:05:37 +0000
commit3aee3ad46dd8d415c6236a74b27d15672fd0bb93 (patch)
tree5ac4a54983d6b6cf518f4089bb85520817de03fa /src/soc/intel/jasperlake/pmc.c
parent7b7b33e3a615b0581df9e8e371fb218e97ba2a51 (diff)
downloadcoreboot-3aee3ad46dd8d415c6236a74b27d15672fd0bb93.tar.xz
soc/intel/{adl,tgl,jsl}: Enable power button smi after BS_CHIPS_EXIT
On tgl, we noticed system hang if a shutdown is triggered before fsps. The dut is unable to shutdown properly due to tcss is stuck before tcss_init in fsps. This change enable power button smi on jsl, tgl, adl after fsps. it can also prevent a shutdown failure due to lack of fsps init on certain ip. BUG=b:186194102, b:186815114 TEST=Power on the system and pressing power button repeatedly doesn't cause the system hang during shutdown. Change-Id: I70b871f2676a89bc782116e02beba5c20ec51eef Signed-off-by: Kane Chen <kane.chen@intel.corp-partner.google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/52874 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Diffstat (limited to 'src/soc/intel/jasperlake/pmc.c')
-rw-r--r--src/soc/intel/jasperlake/pmc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/soc/intel/jasperlake/pmc.c b/src/soc/intel/jasperlake/pmc.c
index c0507d6f41..dce791c692 100644
--- a/src/soc/intel/jasperlake/pmc.c
+++ b/src/soc/intel/jasperlake/pmc.c
@@ -93,6 +93,14 @@ static void soc_acpi_mode_init(struct device *dev)
pmc_set_acpi_mode();
}
+static void pm1_enable_pwrbtn_smi(void *unused)
+{
+ /* Enable power button SMI after BS_DEV_INIT_CHIPS (FSP-S) is done. */
+ pmc_update_pm1_enable(PWRBTN_EN);
+}
+
+BOOT_STATE_INIT_ENTRY(BS_DEV_INIT_CHIPS, BS_ON_EXIT, pm1_enable_pwrbtn_smi, NULL);
+
struct device_operations pmc_ops = {
.read_resources = soc_pmc_read_resources,
.set_resources = noop_set_resources,