summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/boot.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-04-03 10:12:15 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-04-04 10:54:27 +0200
commitd2ebeb2944a5d92ce988f56568d5f70095651c4d (patch)
treee8ea4b01dcf6c86626128c61e46138f63f5c6f7c /arch/arm/mach-imx/boot.c
parentd366ae8382451d16b1e0e693f2cdede7e9c6a337 (diff)
downloadbarebox-d2ebeb2944a5d92ce988f56568d5f70095651c4d.tar.gz
barebox-d2ebeb2944a5d92ce988f56568d5f70095651c4d.tar.xz
ARM: i.MX53: Add bootsource instance information
The i.MX53 has the bootsource instance information stored in SBMR[21:22], expose it to the environment. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> 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.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/mach-imx/boot.c b/arch/arm/mach-imx/boot.c
index 7824206585..bd0cb84d49 100644
--- a/arch/arm/mach-imx/boot.c
+++ b/arch/arm/mach-imx/boot.c
@@ -169,9 +169,10 @@ void imx51_boot_save_loc(void __iomem *src_base)
void imx53_boot_save_loc(void __iomem *src_base)
{
enum bootsource src = BOOTSOURCE_UNKNOWN;
- uint32_t cfg1 = readl(src_base + IMX53_SRC_SBMR) & 0xff;
+ int instance;
+ uint32_t cfg1 = readl(src_base + IMX53_SRC_SBMR);
- switch (cfg1 >> 4) {
+ switch ((cfg1 & 0xff) >> 4) {
case 2:
src = BOOTSOURCE_HD;
break;
@@ -194,7 +195,20 @@ void imx53_boot_save_loc(void __iomem *src_base)
if (cfg1 & (1 << 7))
src = BOOTSOURCE_NAND;
+
+ switch (src) {
+ case BOOTSOURCE_MMC:
+ case BOOTSOURCE_SPI:
+ case BOOTSOURCE_I2C:
+ instance = (cfg1 >> 21) & 0x3;
+ break;
+ default:
+ instance = 0;
+ break;
+ }
+
bootsource_set(src);
+ bootsource_set_instance(instance);
}
#define IMX6_SRC_SBMR1 0x04