kc1: OMAP4 reboot mode support
authorPaul Kocialkowski <contact@paulk.fr>
Sat, 27 Feb 2016 18:19:09 +0000 (19:19 +0100)
committerTom Rini <trini@konsulko.com>
Tue, 15 Mar 2016 19:12:55 +0000 (15:12 -0400)
This adds support for the omap4 reboot mode mechanism and exports the reboot
mode via an environment variable, that is used in the boot command to make it
possible to boot from the recovery partition or fastboot.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
board/amazon/kc1/kc1.c
board/amazon/kc1/kc1.h
include/configs/kc1.h

index 29d9c648c7880f4df2c2c67a223156fa2a7eef8a..d526695b7c729860b2031d86cfb0db0b66cd7642 100644 (file)
@@ -85,6 +85,19 @@ int board_init(void)
 
 int misc_init_r(void)
 {
+       char reboot_mode[2] = { 0 };
+
+       /* Reboot mode */
+
+       omap_reboot_mode(reboot_mode, sizeof(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();
+       }
+
        /* Serial number */
 
        omap_die_id_serial();
@@ -123,6 +136,11 @@ void get_board_serial(struct tag_serialnr *serialnr)
        omap_die_id_get_board_serial(serialnr);
 }
 
+int fb_set_reboot_flag(void)
+{
+       return omap_reboot_mode_store("b");
+}
+
 #ifndef CONFIG_SPL_BUILD
 int board_mmc_init(bd_t *bis)
 {
index 67d008f05daf481164fd8ae7db72442650509b7e..14737d7403d082788760aa1e0d6d792295f4c28b 100644 (file)
@@ -11,6 +11,7 @@
 
 #include <asm/arch/mux_omap4.h>
 
+#define KC1_GPIO_USB_ID                52
 #define KC1_GPIO_MBID1         173
 #define KC1_GPIO_MBID0         174
 #define KC1_GPIO_MBID3         177
@@ -28,6 +29,7 @@ const struct pad_conf_entry core_padconf_array[] = {
        { GPMC_AD7,             (IEN  | PTU | M1) }, /* sdmmc2_dat7 */
        { GPMC_NOE,             (IEN  | PTU | M1) }, /* sdmmc2_clk */
        { GPMC_NWE,             (IEN  | PTU | M1) }, /* sdmmc2_cmd */
+       { GPMC_NCS2,            (IEN  | PTD | M3) }, /* gpio_52 */
        /* CAM */
        { CAM_SHUTTER,          (IDIS | DIS | M7) }, /* safe_mode */
        { CAM_STROBE,           (IDIS | DIS | M7) }, /* safe_mode */
index 185e8de3199690b588672287f3a5550eb8a43113..04cb320b3e5226134d59a5be54b49a877c1f2077 100644 (file)
 
 #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; " \
+       "if test reboot-${reboot-mode} = reboot-b; then " \
+       "echo fastboot; fastboot 0; 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}; " \