Lines Matching +full:mode +full:- +full:recovery

4  * SPDX-License-Identifier:     GPL-2.0+
27 int cnt, recovery = 0; in misc_require_recovery() local
40 cnt = DIV_ROUND_UP(sizeof(struct bootloader_message), dev_desc->blksz); in misc_require_recovery()
41 bmsg = memalign(ARCH_DMA_MINALIGN, cnt * dev_desc->blksz); in misc_require_recovery()
43 recovery = 0; in misc_require_recovery()
45 recovery = !strcmp(bmsg->command, "boot-recovery"); in misc_require_recovery()
47 if (!strcmp(bmsg->recovery, "recovery\n--rk_fwupdate\n")) in misc_require_recovery()
49 else if (!strcmp(bmsg->recovery, "recovery\n--factory_mode=whole") || in misc_require_recovery()
50 !strcmp(bmsg->recovery, "recovery\n--factory_mode=small")) in misc_require_recovery()
57 return recovery; in misc_require_recovery()
74 * There are three ways to get reboot-mode:
78 * No3. Env variable "reboot_mode" which is added by U-Boot
80 * Recovery mode from:
81 * - Android BCB in misc.img
82 * - "reboot recovery" command
83 * - recovery key pressed without usb attach
88 { -EINVAL, -EINVAL, -EINVAL }; in rockchip_get_boot_mode()
89 static int bcb_offset = -EINVAL; /* static */ in rockchip_get_boot_mode()
101 * Env variable "reboot_mode" which is added by U-Boot, reading ever time. in rockchip_get_boot_mode()
105 if (!strcmp(env_reboot_mode, "recovery-key")) { in rockchip_get_boot_mode()
106 printf("boot mode: recovery (key)\n"); in rockchip_get_boot_mode()
108 } else if (!strcmp(env_reboot_mode, "recovery-usb")) { in rockchip_get_boot_mode()
109 printf("boot mode: recovery (usb)\n"); in rockchip_get_boot_mode()
111 } else if (!strcmp(env_reboot_mode, "recovery")) { in rockchip_get_boot_mode()
112 printf("boot mode: recovery (env)\n"); in rockchip_get_boot_mode()
115 printf("boot mode: fastboot\n"); in rockchip_get_boot_mode()
118 printf("boot mode: normal(env)\n"); in rockchip_get_boot_mode()
137 * PH and PL is from boot mode register and reading once. in rockchip_get_boot_mode()
139 * Return the boot mode according to priority: PH > PM > PL. in rockchip_get_boot_mode()
142 boot_mode[PM] = -EINVAL; in rockchip_get_boot_mode()
146 /* directly return if there is already valid mode */ in rockchip_get_boot_mode()
147 if (boot_mode[PH] != -EINVAL) in rockchip_get_boot_mode()
149 else if (boot_mode[PM] != -EINVAL) in rockchip_get_boot_mode()
151 else if (boot_mode[PL] != -EINVAL) in rockchip_get_boot_mode()
155 * Boot mode priority in rockchip_get_boot_mode()
157 * Anyway, we should set download boot mode as the highest priority, so: in rockchip_get_boot_mode()
158 * reboot loader/bootloader/fastboot > misc partition "recovery" > reboot xxx. in rockchip_get_boot_mode()
162 printf("boot mode: loader\n"); in rockchip_get_boot_mode()
166 printf("boot mode: dfu\n"); in rockchip_get_boot_mode()
170 printf("boot mode: bootloader\n"); in rockchip_get_boot_mode()
174 printf("boot mode: recovery (misc)\n"); in rockchip_get_boot_mode()
176 run_command("env default -af", 0); in rockchip_get_boot_mode()
181 printf("boot mode: normal\n"); in rockchip_get_boot_mode()
186 printf("boot mode: recovery (cmd)\n"); in rockchip_get_boot_mode()
191 printf("boot mode: ums\n"); in rockchip_get_boot_mode()
196 printf("boot mode: charging\n"); in rockchip_get_boot_mode()
201 printf("boot mode: panic\n"); in rockchip_get_boot_mode()
205 printf("boot mode: watchdog\n"); in rockchip_get_boot_mode()
209 printf("boot mode: quiescent\n"); in rockchip_get_boot_mode()
213 printf("boot mode: None\n"); in rockchip_get_boot_mode()
219 * We don't clear boot mode reg when its value stands for the reboot in rockchip_get_boot_mode()
225 if (boot_mode[PH] != -EINVAL) in rockchip_get_boot_mode()
227 else if (boot_mode[PM] != -EINVAL) in rockchip_get_boot_mode()