[RFC PATCH 2/2] OMAP: Add option to use enviroment from MMC
Teresa Gamez
t.gamez at phytec.de
Wed Mar 27 04:10:28 EDT 2013
Am 26.03.2013 21:17, schrieb Alexander Aring:
> 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 at phytec.de>
>> Tested-by: Jan Weitzel <j.weitzel at 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
> 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.
Oh, missed that one....
>
>> 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.
Is this used for the am335x_beaglebone_mlo_large_defconfig?
Teresa
> Alex
More information about the barebox
mailing list