summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2014-10-16 12:50:36 +0200
committerStefan Agner <stefan.agner@toradex.com>2014-10-23 11:11:04 +0200
commit781895e999b05fb75d13650600ab12587841fd74 (patch)
treea16b59644182ed774d0856eb8a6fba617c907c16
parent016f4846a53b5a756fc2f199cd48327ce009b84f (diff)
colibri_vf: disable automatic boot when using recovery mode
Since we use the same UART to download U-Boot and get the U-Boot prompt, it is quite hard to switch between the download program and the terminal emulator within the boot delay. This patch disables the automatic boot by setting the bootdelay to -1 when using the recovery mode (serial downloader).
-rw-r--r--arch/arm/include/asm/arch-vf610/imx-regs.h8
-rw-r--r--board/toradex/colibri_vf/colibri_vf.c8
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/include/asm/arch-vf610/imx-regs.h b/arch/arm/include/asm/arch-vf610/imx-regs.h
index 6c7c2d83db..2341e9d342 100644
--- a/arch/arm/include/asm/arch-vf610/imx-regs.h
+++ b/arch/arm/include/asm/arch-vf610/imx-regs.h
@@ -261,6 +261,14 @@
/* Slow Clock Source Controller Module (SCSC) */
#define SCSC_SOSC_CTR_SOSC_EN (0x1)
+/* System Reset Controller (SRC) */
+#define SRC_SBMR2_BMOD_MASK (0x3 << 24)
+#define SRC_SBMR2_BMOD_SHIFT 24
+#define SRC_SBMR2_BMOD_FUSES 0x0
+#define SRC_SBMR2_BMOD_SERIAL 0x1
+#define SRC_SBMR2_BMOD_RCON 0x2
+
+
#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
#include <asm/types.h>
diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
index 3be74e0d67..a977f64c9f 100644
--- a/board/toradex/colibri_vf/colibri_vf.c
+++ b/board/toradex/colibri_vf/colibri_vf.c
@@ -252,6 +252,8 @@ int board_early_init_f(void)
#ifdef CONFIG_BOARD_LATE_INIT
int board_late_init(void)
{
+ struct src *src = (struct src *)SRC_BASE_ADDR;
+
/* Default memory arguments */
if (!getenv("memargs")) {
switch (gd->ram_size) {
@@ -268,6 +270,12 @@ int board_late_init(void)
}
}
+ if (((src->sbmr2 & SRC_SBMR2_BMOD_MASK) >> SRC_SBMR2_BMOD_SHIFT)
+ == SRC_SBMR2_BMOD_SERIAL) {
+ printf("Serial Downloader recovery mode, disable autoboot\n");
+ setenv("bootdelay", "-1");
+ }
+
return 0;
}
#endif /* CONFIG_BOARD_LATE_INIT */