diff options
author | Joseph Chen <chenjh@rock-chips.com> | 2019-03-08 17:21:24 +0800 |
---|---|---|
committer | Jianhong Chen <chenjh@rock-chips.com> | 2019-03-26 11:04:33 +0800 |
commit | da051cc8bbb62b506d838dcb8ceb0a7837be305e (patch) | |
tree | 489d486bc89f7bf3789147eb088dfe876cc4edba | |
parent | 309d75e75589415a91feba58ea385e1ec28759b9 (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.c | 2 | ||||
-rw-r--r-- | common/boot_rkimg.c | 11 | ||||
-rw-r--r-- | include/console.h | 1 |
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 */ |