[PATCH v2 1/5] arm: mach-omap: Change mountpoint of boot partitions

Daniel Schultz d.schultz at phytec.de
Fri May 12 04:20:19 PDT 2017


Hi,

Am 11.05.2017 um 11:14 schrieb Sascha Hauer:
> Hi Daniel,
>
> Your series wasn't forgotten. It's only that it took me some time to try
> and implement links to directories. With this series I just sent and
> "fs: Create automount entries for the default mount pathes" you should
> be able to make this series a bit nicer. What I think of is that /boot
> becomes a link to /mnt/mmcx.y or whatever provided /boot previously.
>
> Could you give it a try?
I added this to the newest patch series. Now, all AM335x boards can 
either boot from /boot or one of the /mnt/ boot partitions. Non Phytec 
Boards won't need an environment change. Thanks!

You can decide if you want the 4th path (delete BBB environment).

Daniel

>
> Sascha
>
>> If using EMMC and SD as bootsources, mounting the boot partition of both
>> devices to /boot makes trouble. Either the correct device is mounted to
>> /boot or a remount of /boot has to be performed.
>>
>> To ensure this problem each MMCn bootsource will be mounted to his own
>> path in /mnt/mmcN.0
>>
>> Signed-off-by: Daniel Schultz <d.schultz at phytec.de>
>> ---
>>  arch/arm/mach-omap/omap_generic.c | 31 ++++++++++++++++++++-----------
>>  1 file changed, 20 insertions(+), 11 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap/omap_generic.c b/arch/arm/mach-omap/omap_generic.c
>> index 1d03eac..aa7424d 100644
>> --- a/arch/arm/mach-omap/omap_generic.c
>> +++ b/arch/arm/mach-omap/omap_generic.c
>> @@ -113,12 +113,15 @@ const char *omap_get_bootmmc_devname(void)
>>  }
>>
>>  #if defined(CONFIG_ENV_HANDLING)
>> -#define ENV_PATH "/boot/barebox.env"
>> +static char *envpath = "/mnt/mmc0.0/barebox.env";
>> +
>>  static int omap_env_init(void)
>>  {
>> -	char *partname;
>> -	const char *diskdev;
>>  	int ret;
>> +	const char *diskdev;
>> +	char *partname;
>> +	struct cdev *cdev;
>> +	const char *rootpath;
>>
>>  	if (bootsource_get() != BOOTSOURCE_MMC)
>>  		return 0;
>> @@ -129,18 +132,24 @@ static int omap_env_init(void)
>>  		diskdev = "disk0";
>>
>>  	device_detect_by_name(diskdev);
>> +	partname = basprintf("%s.0", diskdev);
>> +	cdev = cdev_by_name(partname);
>> +	if (cdev == NULL) {
>> +		pr_err("Failed to get device %s\n", partname);
>> +		goto out;
>> +	}
>>
>> -	partname = basprintf("/dev/%s.0", diskdev);
>> -
>> -	mkdir("/boot", 0666);
>> -	ret = mount(partname, "fat", "/boot", NULL);
>> -	if (ret) {
>> -		pr_err("Failed to load environment: mount %s failed (%d)\n", partname, ret);
>> +	rootpath = cdev_mount_default(cdev, NULL);
>> +	if (IS_ERR(rootpath)) {
>> +		pr_err("Failed to load environment: mount %s failed (%d)\n",
>> +						cdev->name, IS_ERR(rootpath));
>>  		goto out;
>>  	}
>> +	envpath = basprintf("%s/barebox.env", rootpath);
>>
>> -	pr_debug("Loading default env from %s on device %s\n", ENV_PATH, partname);
>> -	default_environment_path_set(ENV_PATH);
>> +	pr_debug("Loading default env from %s on device %s\n", envpath,
>> +								partname);
>> +	default_environment_path_set(envpath);
>>
>>  out:
>>  	free(partname);
>> --
>> 1.9.1
>>
>>
>> _______________________________________________
>> barebox mailing list
>> barebox at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/barebox
>>
>

-- 
Mit freundlichen Grüßen,
With best regards,
   Daniel Schultz



More information about the barebox mailing list