diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-04-03 10:12:15 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-04-04 10:54:27 +0200 |
commit | d2ebeb2944a5d92ce988f56568d5f70095651c4d (patch) | |
tree | e8ea4b01dcf6c86626128c61e46138f63f5c6f7c /arch/arm/mach-imx/boot.c | |
parent | d366ae8382451d16b1e0e693f2cdede7e9c6a337 (diff) | |
download | barebox-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.c | 18 |
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 |