soc/intel: Don't report _S1 state when unsupported

Since skylake Intel hardware does not support this sleep state. Trying
to enter S1 by having the OS enter sleep results in a system hang on at
least Alder lake (prodrive/atlas).

CONFIG_SOC_INTEL_COMMON_BLOCK_PMC is a good proxy whether devices
support 'skylake style' PMC PCI device for ACPI registers.

Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: Ic9e19410696240755e8714db53a0525284f3a2da
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74760
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
This commit is contained in:
Arthur Heymans 2023-04-25 15:48:46 +02:00 committed by Lean Sheng Tan
parent 1dc55aa35e
commit cbc5d3f34b
3 changed files with 9 additions and 0 deletions

View File

@ -711,6 +711,12 @@ config MAX_CPUS
source "src/console/Kconfig" source "src/console/Kconfig"
config ACPI_S1_NOT_SUPPORTED
bool
default n
help
Set this to 'y' on platforms that do not support ACPI S1 state.
config HAVE_ACPI_RESUME config HAVE_ACPI_RESUME
bool bool
default n default n

View File

@ -4,6 +4,7 @@ config SOC_INTEL_COMMON_BLOCK_PMC
bool bool
select HAVE_POWER_STATE_AFTER_FAILURE select HAVE_POWER_STATE_AFTER_FAILURE
select HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE select HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE
select ACPI_S1_NOT_SUPPORTED
help help
Intel Processor common code for Power Management controller(PMC) Intel Processor common code for Power Management controller(PMC)
subsystem subsystem

View File

@ -2,7 +2,9 @@
Name(\_S0, Package(){0x0,0x0,0x0,0x0}) Name(\_S0, Package(){0x0,0x0,0x0,0x0})
#if !CONFIG(HAVE_ACPI_RESUME) #if !CONFIG(HAVE_ACPI_RESUME)
#if !CONFIG(ACPI_S1_NOT_SUPPORTED)
Name(\_S1, Package(){0x1,0x0,0x0,0x0}) Name(\_S1, Package(){0x1,0x0,0x0,0x0})
#endif
#else #else
Name(\_S3, Package(){0x5,0x0,0x0,0x0}) Name(\_S3, Package(){0x5,0x0,0x0,0x0})
#endif #endif