summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Chen <chenjh@rock-chips.com>2019-03-08 17:21:24 +0800
committerJianhong Chen <chenjh@rock-chips.com>2019-03-26 11:04:33 +0800
commitda051cc8bbb62b506d838dcb8ceb0a7837be305e (patch)
tree489d486bc89f7bf3789147eb088dfe876cc4edba
parent309d75e75589415a91feba58ea385e1ec28759b9 (diff)
rockchip: add ctrl+f hotkey to enter fastboot mode
Change-Id: I1f0a98793307b5a261958fe8c29da3271f2d8e4e Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
-rw-r--r--arch/arm/mach-rockchip/boot_mode.c2
-rw-r--r--common/boot_rkimg.c11
-rw-r--r--include/console.h1
3 files changed, 11 insertions, 3 deletions
diff --git a/arch/arm/mach-rockchip/boot_mode.c b/arch/arm/mach-rockchip/boot_mode.c
index a738bfd79c..f271c5b945 100644
--- a/arch/arm/mach-rockchip/boot_mode.c
+++ b/arch/arm/mach-rockchip/boot_mode.c
@@ -164,6 +164,8 @@ void rockchip_dnl_mode_check(void)
printf("recovery key pressed, entering recovery mode!\n");
env_set("reboot_mode", "recovery");
}
+ } else if (gd->console_evt == CONSOLE_EVT_CTRL_F) {
+ env_set("reboot_mode", "fastboot");
}
}
diff --git a/common/boot_rkimg.c b/common/boot_rkimg.c
index 9c2aedf03d..66a5dfebda 100644
--- a/common/boot_rkimg.c
+++ b/common/boot_rkimg.c
@@ -364,9 +364,14 @@ int rockchip_get_boot_mode(void)
* USB attach will do env_set("reboot_mode", "recovery");
*/
env_reboot_mode = env_get("reboot_mode");
- if (env_reboot_mode && !strcmp(env_reboot_mode, "recovery")) {
- boot_mode = BOOT_MODE_RECOVERY;
- printf("boot mode: recovery\n");
+ if (env_reboot_mode) {
+ if (!strcmp(env_reboot_mode, "recovery")) {
+ boot_mode = BOOT_MODE_RECOVERY;
+ printf("boot mode: recovery\n");
+ } else if (!strcmp(env_reboot_mode, "fastboot")) {
+ boot_mode = BOOT_MODE_BOOTLOADER;
+ printf("boot mode: fastboot\n");
+ }
}
if (boot_mode != -1)
diff --git a/include/console.h b/include/console.h
index d72c8cdf35..c5eac9cba2 100644
--- a/include/console.h
+++ b/include/console.h
@@ -12,6 +12,7 @@ extern char console_buffer[];
#define CONSOLE_EVT_CTRL_B 0x02
#define CONSOLE_EVT_CTRL_D 0x04
+#define CONSOLE_EVT_CTRL_F 0x06
/* common/console.c */
int console_init_f(void); /* Before relocation; uses the serial stuff */