summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/boot.c
diff options
context:
space:
mode:
authorAlexander Shiyan <shc_work@mail.ru>2012-03-25 21:15:16 +0400
committerSascha Hauer <s.hauer@pengutronix.de>2012-04-02 10:07:48 +0200
commit904ebefe2199dc3d5e3e223c0debdf95c9fbb6dc (patch)
treee3b7272ab109ffc018b5151879e437feba929447 /arch/arm/mach-imx/boot.c
parent71cd4b22cebe0258c98121edeeb49671f9b5cf23 (diff)
downloadbarebox-904ebefe2199dc3d5e3e223c0debdf95c9fbb6dc.tar.gz
barebox-904ebefe2199dc3d5e3e223c0debdf95c9fbb6dc.tar.xz
i.MX27: Export boot source to magic variables
Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/boot.c')
-rw-r--r--arch/arm/mach-imx/boot.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/boot.c b/arch/arm/mach-imx/boot.c
index 8b82655d4f..9f2def6b2b 100644
--- a/arch/arm/mach-imx/boot.c
+++ b/arch/arm/mach-imx/boot.c
@@ -86,9 +86,34 @@ static int imx_25_35_boot_save_loc(void)
return 0;
}
-
coredevice_initcall(imx_25_35_boot_save_loc);
BAREBOX_MAGICVAR(barebox_loc, "The source barebox has been booted from");
+#endif
+
+#if defined(CONFIG_ARCH_IMX27)
+static int imx_27_boot_save_loc(void)
+{
+ switch ((GPCR & GPCR_BOOT_MASK) >> GPCR_BOOT_SHIFT) {
+ case GPCR_BOOT_UART_USB:
+ setenv("barebox_loc", "serial");
+ break;
+ case GPCR_BOOT_8BIT_NAND_2k:
+ case GPCR_BOOT_16BIT_NAND_2k:
+ case GPCR_BOOT_16BIT_NAND_512:
+ case GPCR_BOOT_8BIT_NAND_512:
+ setenv("barebox_loc", "nand");
+ break;
+ default:
+ setenv("barebox_loc", "nor");
+ break;
+ }
+ export("barebox_loc");
+
+ return 0;
+}
+coredevice_initcall(imx_27_boot_save_loc);
+
+BAREBOX_MAGICVAR(barebox_loc, "The source barebox has been booted from");
#endif