summaryrefslogtreecommitdiff
path: root/src/mainboard/Kconfig
diff options
context:
space:
mode:
authorNico Huber <nico.h@gmx.de>2018-11-14 00:00:35 +0100
committerNico Huber <nico.h@gmx.de>2019-01-06 15:54:19 +0000
commit9faae2b939d0c83632baeefe80bef1739e125018 (patch)
treea3d62f5f14994f1facc2389d189796a836bd8e81 /src/mainboard/Kconfig
parentd2f678d3bd6ca4c05fa5c652d6cdf4623543e576 (diff)
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 <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/29680 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Diffstat (limited to 'src/mainboard/Kconfig')
-rw-r--r--src/mainboard/Kconfig54
1 files changed, 54 insertions, 0 deletions
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