diff options
author | Teresa Gámez <t.gamez@phytec.de> | 2013-04-02 14:48:07 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-04-03 09:21:13 +0200 |
commit | c1bea6f4eddfe68c8e46aca63814e9513eb89c9a (patch) | |
tree | b4bae054cae12f3ab3a21405063b6d62069b65c9 /arch/arm/mach-omap/omap_generic.c | |
parent | c61cc9809129d31295b9069f76368917db3523ba (diff) | |
download | barebox-c1bea6f4eddfe68c8e46aca63814e9513eb89c9a.tar.gz barebox-c1bea6f4eddfe68c8e46aca63814e9513eb89c9a.tar.xz |
OMAP: Add option to use environment from MMC
Make loading environment from MMC generic for all OMAP.
Tested on AM335x, OMAP4.
Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
Tested-by: Jan Weitzel <j.weitzel@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-omap/omap_generic.c')
-rw-r--r-- | arch/arm/mach-omap/omap_generic.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-omap/omap_generic.c b/arch/arm/mach-omap/omap_generic.c index f2fd1d33af..580ed3e165 100644 --- a/arch/arm/mach-omap/omap_generic.c +++ b/arch/arm/mach-omap/omap_generic.c @@ -30,3 +30,36 @@ enum omap_boot_src omap_bootsrc(void) return am33xx_bootsrc(); #endif } + +#if defined(CONFIG_DEFAULT_ENVIRONMENT) && defined(CONFIG_MCI_STARTUP) +static int omap_env_init(void) +{ + struct stat s; + char *diskdev = "/dev/disk0.0"; + int ret; + + if (omap_bootsrc() != OMAP_BOOTSRC_MMC1) + return 0; + + ret = stat(diskdev, &s); + if (ret) { + printf("no %s. using default env\n", diskdev); + return 0; + } + + mkdir("/boot", 0666); + ret = mount(diskdev, "fat", "/boot"); + if (ret) { + printf("failed to mount %s\n", diskdev); + return 0; + } + + if (IS_ENABLED(CONFIG_OMAP_BUILD_IFT)) + default_environment_path = "/dev/defaultenv"; + else + default_environment_path = "/boot/barebox.env"; + + return 0; +} +late_initcall(omap_env_init); +#endif |