summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap/xload.c
diff options
context:
space:
mode:
authorSanjeev Premi <premi@ti.com>2011-10-12 16:33:50 +0530
committerSascha Hauer <s.hauer@pengutronix.de>2011-11-11 12:07:14 +0100
commitb2e9356130713d84e719c84ccf98850e266e2f6b (patch)
treeb774c0af586fa9cf2221d1eeb20f951671b39ff5 /arch/arm/mach-omap/xload.c
parent6756cd2cb2d06b6a75998ef6491265e45d49f198 (diff)
downloadbarebox-b2e9356130713d84e719c84ccf98850e266e2f6b.tar.gz
barebox-b2e9356130713d84e719c84ccf98850e266e2f6b.tar.xz
omap: Unify run_shell() in xload configuration
Currently, there are multiple definitions of run_shell() for each board that can be build in "xload" configuration. Now there is only one function used by all boards. The functions defined in xload.c are used only when "xload" configuration used; but it gets compiled unconditionally. This has been fixed as well. Signed-off-by: Sanjeev Premi <premi@ti.com> Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-omap/xload.c')
-rw-r--r--arch/arm/mach-omap/xload.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
index 216b9b5aba..a52a8ba58f 100644
--- a/arch/arm/mach-omap/xload.c
+++ b/arch/arm/mach-omap/xload.c
@@ -52,3 +52,44 @@ void *omap_xload_boot_mmc(void)
return buf;
}
+
+enum omap_boot_src omap_bootsrc(void)
+{
+#if defined(CONFIG_ARCH_OMAP3)
+ return omap3_bootsrc();
+#elif defined(CONFIG_ARCH_OMAP4)
+ return omap4_bootsrc();
+#endif
+}
+
+/*
+ * Replaces the default shell in xload configuration
+ */
+int run_shell(void)
+{
+ int (*func)(void) = NULL;
+
+ switch (omap_bootsrc())
+ {
+ case OMAP_BOOTSRC_MMC1:
+ printf("booting from MMC1\n");
+ func = omap_xload_boot_mmc();
+ break;
+ case OMAP_BOOTSRC_UNKNOWN:
+ printf("unknown boot source. Fall back to nand\n");
+ case OMAP_BOOTSRC_NAND:
+ printf("booting from NAND\n");
+ func = omap_xload_boot_nand(SZ_128K, SZ_256K);
+ break;
+ }
+
+ if (!func) {
+ printf("booting failed\n");
+ while (1);
+ }
+
+ shutdown_barebox();
+ func();
+
+ while (1);
+}