diff options
-rw-r--r-- | board/lge/sniper/sniper.c | 18 | ||||
-rw-r--r-- | include/configs/sniper.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/board/lge/sniper/sniper.c b/board/lge/sniper/sniper.c index d5318c4f328..44d422da1b9 100644 --- a/board/lge/sniper/sniper.c +++ b/board/lge/sniper/sniper.c @@ -9,6 +9,7 @@ #include <config.h> #include <common.h> #include <dm.h> +#include <linux/ctype.h> #include <asm/arch/mmc_host_def.h> #include <asm/arch/sys_proto.h> #include <asm/arch/mem.h> @@ -67,6 +68,23 @@ int board_init(void) return 0; } +int misc_init_r(void) +{ + char reboot_mode[2] = { 0 }; + + /* Reboot mode */ + + reboot_mode[0] = omap_reboot_mode(); + if (reboot_mode[0] > 0 && isascii(reboot_mode[0])) { + if (!getenv("reboot-mode")) + setenv("reboot-mode", (char *)reboot_mode); + + omap_reboot_mode_clear(); + } + + return 0; +} + void set_muxconf_regs(void) { MUX_SNIPER(); diff --git a/include/configs/sniper.h b/include/configs/sniper.h index bf788baaeeb..2ac9291c440 100644 --- a/include/configs/sniper.h +++ b/include/configs/sniper.h @@ -35,6 +35,7 @@ */ #define CONFIG_SYS_GENERIC_BOARD +#define CONFIG_MISC_INIT_R /* * Clocks @@ -251,6 +252,8 @@ #define CONFIG_BOOTCOMMAND \ "setenv boot_mmc_part ${kernel_mmc_part}; " \ + "if test reboot-${reboot-mode} = reboot-r; then " \ + "echo recovery; setenv boot_mmc_part ${recovery_mmc_part}; fi; " \ "part start mmc ${boot_mmc_dev} ${boot_mmc_part} boot_mmc_start; " \ "part size mmc ${boot_mmc_dev} ${boot_mmc_part} boot_mmc_size; " \ "mmc dev ${boot_mmc_dev}; " \ |