Hi, On Tue, Mar 26, 2013 at 03:23:16PM +0100, Teresa Gámez wrote: > Make loading enviroment from MMC generic for all OMAP. > > Tested on AM335x, OMAP4. > > Signed-off-by: Teresa Gámez <t.gamez@xxxxxxxxx> > Tested-by: Jan Weitzel <j.weitzel@xxxxxxxxx> > --- > 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 There is a second env_init in beaglebone: late_initcall(beaglebone_env_init); in arch/arm/boards/beaglebone/board.c I think you need to remove this too. Otherwise this will be called twice. > 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"); s/enviroment/environment > + > + default_environment_path = "/boot/bareboxenv"; > + > + return 0; > +} > +late_initcall(omap_env_init); > +#endif The part in beaglebone/board.c checks for build in environment: IS_ENABLED(CONFIG_OMAP_BUILD_IFT) Maybe you can add this here, too. But remember to disable CONFIG_OMAP_BUILD_IFT to use a mmc environment. But maybe you can drop this here, because you check on CONFIG_MCI_STARTUP. Alex _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox