Lean Sheng Tan has submitted this change. ( https://review.coreboot.org/c/coreboot/+/74761 )
Change subject: sb/intel/sleepstates.asl: Use variable to enable sleepstates ......................................................................
sb/intel/sleepstates.asl: Use variable to enable sleepstates
In order to make supported sleep states a runtime configuration option use a variable. A follow-up patch will implement updating this variable based on an SSDT generated IntObj.
Signed-off-by: Arthur Heymans arthur@aheymans.xyz Change-Id: I6910c2c75e668e6f75a6f431813edeb59d52dd93 Reviewed-on: https://review.coreboot.org/c/coreboot/+/74761 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Lean Sheng Tan sheng.tan@9elements.com --- M src/southbridge/intel/common/acpi/sleepstates.asl 1 file changed, 44 insertions(+), 10 deletions(-)
Approvals: build bot (Jenkins): Verified Lean Sheng Tan: Looks good to me, approved
diff --git a/src/southbridge/intel/common/acpi/sleepstates.asl b/src/southbridge/intel/common/acpi/sleepstates.asl index 30e12a0..079ab1a 100644 --- a/src/southbridge/intel/common/acpi/sleepstates.asl +++ b/src/southbridge/intel/common/acpi/sleepstates.asl @@ -1,14 +1,31 @@ /* SPDX-License-Identifier: GPL-2.0-only */
-Name(_S0, Package(){0x0,0x0,0x0,0x0}) -#if !CONFIG(HAVE_ACPI_RESUME) -#if !CONFIG(ACPI_S1_NOT_SUPPORTED) -Name(_S1, Package(){0x1,0x0,0x0,0x0}) -#endif +/* S1 support: bit 0, S2 Support: bit 1, etc. S0 & S5 assumed */ +#if CONFIG(HAVE_ACPI_RESUME) +Name (SSFG, 0x0D) #else -Name(_S3, Package(){0x5,0x0,0x0,0x0}) +Name (SSFG, 0x09) #endif -#if !CONFIG(DISABLE_ACPI_HIBERNATE) -Name(_S4, Package(){0x6,0x0,0x0,0x0}) -#endif -Name(_S5, Package(){0x7,0x0,0x0,0x0}) + +If (CONFIG(ACPI_S1_NOT_SUPPORTED)) { + SSFG &= 0xfe +} + +If (CONFIG(DISABLE_ACPI_HIBERNATE)) { + SSFG &= 0xf7 +} + +/* Supported sleep states: */ +Name(_S0, Package () {0x00, 0x00, 0x00, 0x00} ) /* (S0) - working state */ + +If (SSFG & 0x01) { + Name(_S1, Package () {0x01, 0x00, 0x00, 0x00} ) /* (S1) - sleeping w/CPU context */ +} +If (SSFG & 0x04) { + Name(_S3, Package () {0x05, 0x00, 0x00, 0x00} ) /* (S3) - Suspend to RAM */ +} +If (SSFG & 0x08) { + Name(_S4, Package () {0x06, 0x04, 0x00, 0x00} ) /* (S4) - Suspend to Disk */ +} + +Name(_S5, Package () {0x07, 0x00, 0x00, 0x00} ) /* (S5) - Soft Off */