fastboot: ARM: OMAP5: Enable reboot-bootloader
authorDileep Katta <dileep.katta@linaro.org>
Fri, 27 Mar 2015 17:36:57 +0000 (23:06 +0530)
committerTom Rini <trini@konsulko.com>
Thu, 23 Apr 2015 18:55:44 +0000 (14:55 -0400)
Implemented fb_set_reboot_flag() for OMAP5 to set
an environment variable 'dofastboot' when reboot-bootloader called.

This environment variable will be checked in boot command and fastboot
will be called if the variable is set.
If the bootcmd env variable of OMAP5 common is overwritten with board-specific
command, then these changes will not apply.

This was originally intended for DRA7 platform, but now applies to all OMAP5.

Ref:
http://git.omapzoom.org/?p=repo/u-boot.git;a=commit;h=19da2e436e9806259cf1f4988b9e046ab256bf2c

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Dileep Katta <dileep.katta@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
[trini: Make it check for !CONFIG_ENV_IS_NOWHERE as we can't saveenv()
in that case]
Signed-off-by: Tom Rini <trini@konsulko.com>
arch/arm/cpu/armv7/omap-common/boot-common.c
include/configs/ti_omap5_common.h

index f2f6897eb646dfaf2cefc982bcb9231ebf657e2c..bbc6bed7cac9bc765553093d3d6655afffbc15c7 100644 (file)
@@ -162,3 +162,13 @@ void arch_preboot_os(void)
        ahci_reset((void __iomem *)DWC_AHSATA_BASE);
 }
 #endif
        ahci_reset((void __iomem *)DWC_AHSATA_BASE);
 }
 #endif
+
+#if defined(CONFIG_CMD_FASTBOOT) && !defined(CONFIG_ENV_IS_NOWHERE)
+int fb_set_reboot_flag(void)
+{
+       printf("Setting reboot to fastboot flag ...\n");
+       setenv("dofastboot", "1");
+       saveenv();
+       return 0;
+}
+#endif
index 7957a7338419cb75d6708c5027f21d0fd582cf47..f2be8d583ef6db2fa3c3244290ee60cb7121fe51 100644 (file)
        "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile};\0" \
        DFUARGS \
 
        "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile};\0" \
        DFUARGS \
 
+
 #define CONFIG_BOOTCOMMAND \
 #define CONFIG_BOOTCOMMAND \
+       "if test ${dofastboot} -eq 1; then " \
+               "echo Boot fastboot requested, resetting dofastboot ...;" \
+               "setenv dofastboot 0; saveenv;" \
+               "echo Booting into fastboot ...; fastboot;" \
+       "fi;" \
        "run findfdt; " \
        "run mmcboot;" \
        "setenv mmcdev 1; " \
        "setenv bootpart 1:2; " \
        "setenv mmcroot /dev/mmcblk0p2 rw; " \
        "run mmcboot;" \
        "run findfdt; " \
        "run mmcboot;" \
        "setenv mmcdev 1; " \
        "setenv bootpart 1:2; " \
        "setenv mmcroot /dev/mmcblk0p2 rw; " \
        "run mmcboot;" \
+       ""
 
 
 /*
 
 
 /*