From bccc7e707201833215d2c002533b3e05443ca298 Mon Sep 17 00:00:00 2001 From: Wim Vervoorn Date: Wed, 15 Jan 2020 11:31:25 +0100 Subject: {soc,southbridge}/*/*/acpi: Add possibility to disable S4 Some boards don't support S3 or S4. The S4 state can't be removed from the available sleep states. Add a config item that allows removal of the S4 state from the list of available sleep states. The S4 state can be removed by selecting the item on board level. For the AMD chipsets the SSFG mask is updated to remove the S4 state. BUG=N/A TEST=build Change-Id: Id802c4cc40308ddf39e99e7f226d55e0e020f0c9 Signed-off-by: Wim Vervoorn Reviewed-on: https://review.coreboot.org/c/coreboot/+/38431 Reviewed-by: Frans Hendriks Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- src/Kconfig | 6 ++++++ src/soc/amd/picasso/acpi/sleepstates.asl | 3 +++ src/soc/amd/stoneyridge/acpi/sleepstates.asl | 3 +++ src/southbridge/amd/common/acpi/sleepstates.asl | 3 +++ src/southbridge/intel/common/acpi/sleepstates.asl | 2 ++ 5 files changed, 17 insertions(+) diff --git a/src/Kconfig b/src/Kconfig index 9118914e3c..9522542cc3 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -525,6 +525,12 @@ config HAVE_ACPI_RESUME default n depends on RELOCATABLE_RAMSTAGE +config DISABLE_ACPI_HIBERNATE + bool + default n + help + Removes S4 from the available sleepstates + config RESUME_PATH_SAME_AS_BOOT bool default y if ARCH_X86 diff --git a/src/soc/amd/picasso/acpi/sleepstates.asl b/src/soc/amd/picasso/acpi/sleepstates.asl index d4aabdb7af..c5e979e268 100644 --- a/src/soc/amd/picasso/acpi/sleepstates.asl +++ b/src/soc/amd/picasso/acpi/sleepstates.asl @@ -19,6 +19,9 @@ Name(SSFG, 0x09) If (CONFIG(HAVE_ACPI_RESUME)) { Store(0x0D, SSFG) } +If (CONFIG(DISABLE_ACPI_HIBERNATE)) { + Store(And(SSFG, 0xF7), SSFG) +} /* Supported sleep states: */ Name(\_S0, Package () {0x00, 0x00, 0x00, 0x00} ) /* (S0) - working state */ diff --git a/src/soc/amd/stoneyridge/acpi/sleepstates.asl b/src/soc/amd/stoneyridge/acpi/sleepstates.asl index d4aabdb7af..c5e979e268 100644 --- a/src/soc/amd/stoneyridge/acpi/sleepstates.asl +++ b/src/soc/amd/stoneyridge/acpi/sleepstates.asl @@ -19,6 +19,9 @@ Name(SSFG, 0x09) If (CONFIG(HAVE_ACPI_RESUME)) { Store(0x0D, SSFG) } +If (CONFIG(DISABLE_ACPI_HIBERNATE)) { + Store(And(SSFG, 0xF7), SSFG) +} /* Supported sleep states: */ Name(\_S0, Package () {0x00, 0x00, 0x00, 0x00} ) /* (S0) - working state */ diff --git a/src/southbridge/amd/common/acpi/sleepstates.asl b/src/southbridge/amd/common/acpi/sleepstates.asl index 21037243f9..9ee20b5dfa 100644 --- a/src/southbridge/amd/common/acpi/sleepstates.asl +++ b/src/southbridge/amd/common/acpi/sleepstates.asl @@ -20,6 +20,9 @@ Name (SSFG, 0x0D) #else Name (SSFG, 0x09) #endif +If (CONFIG(DISABLE_ACPI_HIBERNATE)) { + Store(And(SSFG, 0xF7), SSFG) +} /* Supported sleep states: */ Name(\_S0, Package () {0x00, 0x00, 0x00, 0x00} ) /* (S0) - working state */ diff --git a/src/southbridge/intel/common/acpi/sleepstates.asl b/src/southbridge/intel/common/acpi/sleepstates.asl index 79818a109a..32cc22bd39 100644 --- a/src/southbridge/intel/common/acpi/sleepstates.asl +++ b/src/southbridge/intel/common/acpi/sleepstates.asl @@ -20,5 +20,7 @@ Name(\_S1, Package(){0x1,0x0,0x0,0x0}) #else Name(\_S3, Package(){0x5,0x0,0x0,0x0}) #endif +#if !CONFIG(DISABLE_ACPI_HIBERNATE) Name(\_S4, Package(){0x6,0x0,0x0,0x0}) +#endif Name(\_S5, Package(){0x7,0x0,0x0,0x0}) -- cgit v1.2.3