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

Sascha Hauer s.hauer at pengutronix.de
Thu May 11 02:14:46 PDT 2017


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?

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
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list