From 9faae2b939d0c83632baeefe80bef1739e125018 Mon Sep 17 00:00:00 2001 From: Nico Huber Date: Wed, 14 Nov 2018 00:00:35 +0100 Subject: Kconfig: Unify power-after-failure options The newest and most useful incarnation was hiding in soc/intel/common/. We move it into the Mainboard menu and extend it with various flags to be selected to control the default and which options are visible. Also add a new `int` config MAINBOARD_POWER_FAILURE_STATE that moves the boolean to int conversion into Kconfig: 0 - S5 1 - S0 2 - previous state This patch focuses on the Kconfig code. The C code could be unified as well, e.g. starting with a common enum and safe wrapper around the get_option() call. TEST=Did what-jenkins-does with and without this commit and compared binaries. Nothing changed for the default configurations. Change-Id: I61259f864c8a8cfc7099cc2699059f972fa056c0 Signed-off-by: Nico Huber Reviewed-on: https://review.coreboot.org/c/29680 Tested-by: build bot (Jenkins) Reviewed-by: Felix Held --- src/mainboard/Kconfig | 54 ++++++++++++++++++++++++++++++++++ src/mainboard/asrock/h81m-hds/Kconfig | 5 ---- src/mainboard/asus/kcma-d8/Kconfig | 5 +--- src/mainboard/asus/kfsn4-dre/Kconfig | 5 +--- src/mainboard/asus/kgpe-d16/Kconfig | 5 +--- src/mainboard/msi/ms9652_fam10/Kconfig | 5 +--- src/mainboard/samsung/lumpy/Kconfig | 4 --- src/mainboard/samsung/stumpy/Kconfig | 4 --- 8 files changed, 58 insertions(+), 29 deletions(-) (limited to 'src/mainboard') diff --git a/src/mainboard/Kconfig b/src/mainboard/Kconfig index 2de807026b..363df55da2 100644 --- a/src/mainboard/Kconfig +++ b/src/mainboard/Kconfig @@ -177,3 +177,57 @@ config ENABLE_POWER_BUTTON config ENABLE_POWER_BUTTON def_bool y if !POWER_BUTTON_IS_OPTIONAL && POWER_BUTTON_FORCE_ENABLE def_bool n if !POWER_BUTTON_IS_OPTIONAL && POWER_BUTTON_FORCE_DISABLE + +config HAVE_POWER_STATE_AFTER_FAILURE + bool + +if HAVE_POWER_STATE_AFTER_FAILURE + +config HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE + bool + +config POWER_STATE_DEFAULT_ON_AFTER_FAILURE + bool + help + Selected by platforms or mainboards that want a "default on" + behaviour. + +choice + prompt "System Power State after Failure" + default POWER_STATE_ON_AFTER_FAILURE \ + if POWER_STATE_DEFAULT_ON_AFTER_FAILURE + default POWER_STATE_OFF_AFTER_FAILURE + help + Provides a default for the power state the system should + go into after G3 (power loss). On many boards this can be + overridden by an NVRAM option. + +config POWER_STATE_OFF_AFTER_FAILURE + bool "S5 Soft Off" + help + Choose this option if you want to put system into + S5 after reapplying power after failure. + +config POWER_STATE_ON_AFTER_FAILURE + bool "S0 Full On" + help + Choose this option if you want to keep system in + S0 after reapplying power after failure. + +config POWER_STATE_PREVIOUS_AFTER_FAILURE + bool "Keep Previous State" + depends on HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE + help + Choose this option if you want to keep system in the + same power state as before failure after reapplying + power. + +endchoice + +config MAINBOARD_POWER_FAILURE_STATE + int + default 2 if POWER_STATE_PREVIOUS_AFTER_FAILURE + default 1 if POWER_STATE_ON_AFTER_FAILURE + default 0 + +endif # HAVE_POWER_STATE_AFTER_FAILURE diff --git a/src/mainboard/asrock/h81m-hds/Kconfig b/src/mainboard/asrock/h81m-hds/Kconfig index 5299c21b03..55f163769f 100644 --- a/src/mainboard/asrock/h81m-hds/Kconfig +++ b/src/mainboard/asrock/h81m-hds/Kconfig @@ -64,11 +64,6 @@ config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID hex default 0x1849 -# This is overridden if CMOS is used for configuration values. -config MAINBOARD_POWER_ON_AFTER_POWER_FAIL - bool - default n - config MAX_CPUS int default 8 diff --git a/src/mainboard/asus/kcma-d8/Kconfig b/src/mainboard/asus/kcma-d8/Kconfig index 7d66707bee..1a2dd904e3 100644 --- a/src/mainboard/asus/kcma-d8/Kconfig +++ b/src/mainboard/asus/kcma-d8/Kconfig @@ -31,6 +31,7 @@ config BOARD_SPECIFIC_OPTIONS select DRIVERS_I2C_W83795 select DRIVERS_ASPEED_AST2050 select MAINBOARD_FORCE_NATIVE_VGA_INIT + select POWER_STATE_DEFAULT_ON_AFTER_FAILURE config MAINBOARD_DIR string @@ -89,10 +90,6 @@ config ONBOARD_VGA_IS_PRIMARY bool default y -config MAINBOARD_POWER_ON_AFTER_POWER_FAIL - bool - default y - config MAX_REBOOT_CNT int default 10 diff --git a/src/mainboard/asus/kfsn4-dre/Kconfig b/src/mainboard/asus/kfsn4-dre/Kconfig index d81eb3a2ea..ff980807dd 100644 --- a/src/mainboard/asus/kfsn4-dre/Kconfig +++ b/src/mainboard/asus/kfsn4-dre/Kconfig @@ -19,6 +19,7 @@ config BOARD_SPECIFIC_OPTIONS select ENABLE_APIC_EXT_ID select DRIVERS_I2C_W83793 select DRIVERS_XGI_Z9S + select POWER_STATE_DEFAULT_ON_AFTER_FAILURE config MAINBOARD_DIR string @@ -80,10 +81,6 @@ config ONBOARD_VGA_IS_PRIMARY bool default y -config MAINBOARD_POWER_ON_AFTER_POWER_FAIL - bool - default y - config MAX_REBOOT_CNT int default 10 diff --git a/src/mainboard/asus/kgpe-d16/Kconfig b/src/mainboard/asus/kgpe-d16/Kconfig index efdade8eac..32c4dbc85a 100644 --- a/src/mainboard/asus/kgpe-d16/Kconfig +++ b/src/mainboard/asus/kgpe-d16/Kconfig @@ -32,6 +32,7 @@ config BOARD_SPECIFIC_OPTIONS select DRIVERS_I2C_W83795 select DRIVERS_ASPEED_AST2050 select MAINBOARD_FORCE_NATIVE_VGA_INIT + select POWER_STATE_DEFAULT_ON_AFTER_FAILURE config MAINBOARD_DIR string @@ -94,10 +95,6 @@ config VGA_BIOS_ID string default "1a03,2000" -config MAINBOARD_POWER_ON_AFTER_POWER_FAIL - bool - default y - config MAX_REBOOT_CNT int default 10 diff --git a/src/mainboard/msi/ms9652_fam10/Kconfig b/src/mainboard/msi/ms9652_fam10/Kconfig index 29c1d40d2d..22f655a116 100644 --- a/src/mainboard/msi/ms9652_fam10/Kconfig +++ b/src/mainboard/msi/ms9652_fam10/Kconfig @@ -20,6 +20,7 @@ config BOARD_SPECIFIC_OPTIONS select LIFT_BSP_APIC_ID select IOAPIC select SMP + select POWER_STATE_DEFAULT_ON_AFTER_FAILURE config MAINBOARD_DIR string @@ -59,10 +60,6 @@ config DEFAULT_CONSOLE_LOGLEVEL int default 9 -config MAINBOARD_POWER_ON_AFTER_POWER_FAIL - bool - default y - config USBDEBUG bool default n diff --git a/src/mainboard/samsung/lumpy/Kconfig b/src/mainboard/samsung/lumpy/Kconfig index 33ee21b651..fdfd763753 100644 --- a/src/mainboard/samsung/lumpy/Kconfig +++ b/src/mainboard/samsung/lumpy/Kconfig @@ -44,10 +44,6 @@ config VGA_BIOS_FILE string default "pci8086,0106.rom" -config MAINBOARD_POWER_ON_AFTER_POWER_FAIL - bool - default n - if EARLY_PCI_BRIDGE config EARLY_PCI_BRIDGE_DEVICE diff --git a/src/mainboard/samsung/stumpy/Kconfig b/src/mainboard/samsung/stumpy/Kconfig index 2deed529bd..2fca957705 100644 --- a/src/mainboard/samsung/stumpy/Kconfig +++ b/src/mainboard/samsung/stumpy/Kconfig @@ -42,8 +42,4 @@ config VGA_BIOS_FILE string default "pci8086,0106.rom" -config MAINBOARD_POWER_ON_AFTER_POWER_FAIL - bool - default n - endif # BOARD_SAMSUNG_STUMPY -- cgit v1.2.3