summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Chang <kenc@nvidia.com>2015-02-06 14:06:16 +0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-02-10 08:46:06 +0000
commitc93ddb60aae37fc06f614a1b79e6f3fee25b97c4 (patch)
treec30cc6028a2af3dc1b9f43a9f8881c6e0fe3aa6b
parent864fae2d78f88a1ec3865c6eeffa9eb605cc6b38 (diff)
downloadvboot-c93ddb60aae37fc06f614a1b79e6f3fee25b97c4.tar.gz
crossystem: read recovery switch status from chromeos_arm device
The kernel chromeos_arm platform device provides the recovery status with the consideration of active polarity. Thus make crossystem to read from chromeos_arm device first. If this is not available, read directly from gpio pin status. BUG=chrome-os-partner:36425 BRANCH=none TEST=ran on kitty, 'crossystem recoverysw_cur' return 0 with recovery switch off 'crossystem recoverysw_cur' return 1 with recovery switch on Change-Id: Ie20630d7d07aeadf24044cd3ffc495df7cdd8a4a Signed-off-by: Ken Chang <kenc@nvidia.com> Reviewed-on: https://chromium-review.googlesource.com/246883 Tested-by: Titan Lee <titanlee@nvidia.com> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Titan Lee <titanlee@nvidia.com>
-rw-r--r--host/arch/arm/lib/crossystem_arch.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/host/arch/arm/lib/crossystem_arch.c b/host/arch/arm/lib/crossystem_arch.c
index 21e21696..b032ed30 100644
--- a/host/arch/arm/lib/crossystem_arch.c
+++ b/host/arch/arm/lib/crossystem_arch.c
@@ -524,6 +524,11 @@ int VbGetArchPropertyInt(const char* name) {
return VbGetVarGpio("developer-switch");
} else if (!strcasecmp(name, "recoverysw_cur")) {
+ int value;
+ value = VbGetPlatformGpioStatus("recovery");
+ if (value != -1)
+ return value;
+
return VbGetVarGpio("recovery-switch");
} else if (!strcasecmp(name, "wpsw_cur")) {
int value;