Make loading enviroment from MMC generic for all OMAP. Tested on AM335x, OMAP4.
Signed-off-by: Teresa Gámez <t.ga...@phytec.de> Tested-by: Jan Weitzel <j.weit...@phytec.de> --- arch/arm/boards/panda/board.c | 30 --------------------------- arch/arm/mach-omap/include/mach/generic.h | 1 + arch/arm/mach-omap/omap_generic.c | 32 +++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/arch/arm/boards/panda/board.c b/arch/arm/boards/panda/board.c index 2518d3a..d1f9a5e 100644 --- a/arch/arm/boards/panda/board.c +++ b/arch/arm/boards/panda/board.c @@ -1,12 +1,10 @@ #include <common.h> #include <console.h> #include <init.h> -#include <fs.h> #include <driver.h> #include <io.h> #include <ns16550.h> #include <asm/armlinux.h> -#include <linux/stat.h> #include <generated/mach-types.h> #include <mach/omap4-silicon.h> #include <mach/omap4-devices.h> @@ -20,7 +18,6 @@ #include <asm/mmu.h> #include <mach/gpio.h> #include <envfs.h> -#include <mach/generic.h> #include <i2c/i2c.h> #include <gpio.h> #include <led.h> @@ -164,30 +161,3 @@ static int panda_devices_init(void) return 0; } device_initcall(panda_devices_init); - -#ifdef CONFIG_DEFAULT_ENVIRONMENT -static int panda_env_init(void) -{ - struct stat s; - char *diskdev = "/dev/disk0.0"; - int ret; - - 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; - } - - default_environment_path = "/boot/bareboxenv"; - - return 0; -} -late_initcall(panda_env_init); -#endif diff --git a/arch/arm/mach-omap/include/mach/generic.h b/arch/arm/mach-omap/include/mach/generic.h index edc4f1d..7455404 100644 --- a/arch/arm/mach-omap/include/mach/generic.h +++ b/arch/arm/mach-omap/include/mach/generic.h @@ -35,6 +35,7 @@ enum omap_boot_src { OMAP_BOOTSRC_USB1, }; +enum omap_boot_src omap_bootsrc(void); enum omap_boot_src am33xx_bootsrc(void); enum omap_boot_src omap3_bootsrc(void); enum omap_boot_src omap4_bootsrc(void); diff --git a/arch/arm/mach-omap/omap_generic.c b/arch/arm/mach-omap/omap_generic.c index f2fd1d3..5882794 100644 --- a/arch/arm/mach-omap/omap_generic.c +++ b/arch/arm/mach-omap/omap_generic.c @@ -30,3 +30,35 @@ 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; + } + + printf("Loading enviroment from MMC\n"); + + default_environment_path = "/boot/bareboxenv"; + + return 0; +} +late_initcall(omap_env_init); +#endif -- 1.7.0.4 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox