android的启动模式会在u-boot中进行判断和处理:
1, arch/arm/mach-rockchip/boot_rkimg.c
setup_download_mode---> if (rockchip_dnl_key_pressed() || is_hotkey(HK_ROCKUSB_DNL))--->判断按键
--->rockchip_u2phy_vbus_detect: 判断usb
---->env_set("reboot_mode", "recovery-key") :设置uboot环境变量
2,arch/arm/mach-rockchip/boot_mode.c
rockchip_get_boot_mode--->
env_reboot_mode = env_get("reboot_mode");
if (env_reboot_mode) {
if (!strcmp(env_reboot_mode, "recovery-key")) {
return BOOT_MODE_RECOVERY;----------------------------------->物理按键进入recovery
/* Recovery mode from:
* - Android BCB in misc.img
* - "reboot recovery" command
* - recovery key pressed without usb attach
*/