All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/4] arm: mach-omap: Change mountpoint of boot partitions
@ 2017-05-12 11:07 Daniel Schultz
  2017-05-12 11:07 ` [PATCH v3 2/4] arm: boards: phytec-som-am335x: Add automount script Daniel Schultz
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Daniel Schultz @ 2017-05-12 11:07 UTC (permalink / raw)
  To: barebox

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@phytec.de>
---
Changes:
	v3: Added symlink from rootpath to BOOT_PATH

 arch/arm/mach-omap/omap_generic.c | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-omap/omap_generic.c b/arch/arm/mach-omap/omap_generic.c
index 1d03eac..694c951 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,29 @@ 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;
 	}
+	ret = symlink(rootpath, "/boot");
+	if (ret < 0)
+		pr_warn("Failed to create symlink from %s to %s\n", rootpath
+								, "/boot");
+
+	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@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2017-06-06 10:58 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-12 11:07 [PATCH v3 1/4] arm: mach-omap: Change mountpoint of boot partitions Daniel Schultz
2017-05-12 11:07 ` [PATCH v3 2/4] arm: boards: phytec-som-am335x: Add automount script Daniel Schultz
2017-05-17  6:26   ` Sascha Hauer
2017-06-02  7:59     ` Daniel Schultz
2017-05-12 11:07 ` [PATCH v3 3/4] arm: boards: phytec-som-am335x: Update boot scripts Daniel Schultz
2017-05-17  6:30   ` Sascha Hauer
2017-06-02  8:07     ` Daniel Schultz
2017-06-06  5:46       ` Sascha Hauer
2017-06-06  9:50         ` Daniel Schultz
2017-05-12 11:07 ` [PATCH v3 4/4] arm: boards: beaglebone: Delete default env Daniel Schultz
2017-05-17  6:35   ` Sascha Hauer
2017-06-06 10:57     ` Daniel Schultz
2017-05-17  6:25 ` [PATCH v3 1/4] arm: mach-omap: Change mountpoint of boot partitions Sascha Hauer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.