[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