summaryrefslogtreecommitdiffstats
path: root/src/soc/amd/picasso/smihandler.c
diff options
context:
space:
mode:
authorMarshall Dawson <marshall.dawson@amd.corp-partner.google.com>2020-04-03 12:07:00 -0600
committerFelix Held <felix-coreboot@felixheld.de>2020-05-27 19:20:15 +0000
commit4dc4cb6b5c835ca947356a4d4e8c10228966bebc (patch)
tree7d2834cd94f2b02b5346f024f0182db5ece6ecd1 /src/soc/amd/picasso/smihandler.c
parent5c5049e2832d2a6869a075e44966e0525dae5fab (diff)
downloadcoreboot-4dc4cb6b5c835ca947356a4d4e8c10228966bebc.tar.gz
coreboot-4dc4cb6b5c835ca947356a4d4e8c10228966bebc.tar.bz2
coreboot-4dc4cb6b5c835ca947356a4d4e8c10228966bebc.zip
soc/amd/picasso: Use SMU to put system into S3
Send a message to the SMU to turn off the system power. SMU will take the proper final steps based on PmControl[SlpTyp]. BUG=b:153264473 TEST=verify system can enter S3 Change-Id: I3c0d98110c12963aa6fef5d176fd9acaa7ed9f26 Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com> Reviewed-on: https://chromium-review.googlesource.com/2140471 Reviewed-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/41626 Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/amd/picasso/smihandler.c')
-rw-r--r--src/soc/amd/picasso/smihandler.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/soc/amd/picasso/smihandler.c b/src/soc/amd/picasso/smihandler.c
index d7a46d34619e..992dc2b55a6d 100644
--- a/src/soc/amd/picasso/smihandler.c
+++ b/src/soc/amd/picasso/smihandler.c
@@ -15,6 +15,7 @@
#include <amdblocks/acpi.h>
#include <amdblocks/psp.h>
#include <elog.h>
+#include <soc/smu.h>
/* bits in smm_io_trap */
#define SMM_IO_TRAP_PORT_OFFSET 16
@@ -209,11 +210,9 @@ static void sb_slp_typ_handler(void)
psp_notify_sx_info(slp_typ);
- /*
- * An IO cycle is required to trigger the STPCLK/STPGNT
- * handshake when the Pm1 write is reissued.
- */
- outw(pm1cnt | SLP_EN, pm_read16(PM1_CNT_BLK));
+ smu_sx_entry(); /* Leave SlpTypeEn clear, SMU will set */
+ printk(BIOS_ERR, "Error: System did not go to sleep\n");
+
hlt();
}
}