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

2017-05-12 Thread Daniel Schultz

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 
---
 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@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox





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

___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH v3 1/4] arm: mach-omap: Change mountpoint of boot partitions

2017-05-12 Thread Daniel Schultz
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 
---
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


[PATCH v3 3/4] arm: boards: phytec-som-am335x: Update boot scripts

2017-05-12 Thread Daniel Schultz
Expand the boot scripts with EMMC and add a default file source for
expansions.

Removed "rw" and "rootwait" bootargs from existing boot scripts.
Added "rootflags='data=journal'" bootarg to SD card boot script.

Signed-off-by: Daniel Schultz 
---
 .../defaultenv-physom-am335x/boot/emmc  |  7 +++
 .../phytec-som-am335x/defaultenv-physom-am335x/boot/mmc |  7 ---
 .../defaultenv-physom-am335x/boot/nand  |  4 +++-
 .../phytec-som-am335x/defaultenv-physom-am335x/boot/net | 17 +
 .../phytec-som-am335x/defaultenv-physom-am335x/boot/spi |  4 +++-
 .../defaultenv-physom-am335x/init/bootsource| 16 
 6 files changed, 46 insertions(+), 9 deletions(-)
 create mode 100644 
arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/emmc
 create mode 100644 
arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/net

diff --git 
a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/emmc 
b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/emmc
new file mode 100644
index 000..6ad5f87
--- /dev/null
+++ b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/emmc
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+[ -e /env/config-expansions ] && /env/config-expansions
+
+global.bootm.image=/mnt/mmc1.0/linuximage
+global.bootm.oftree=/mnt/mmc1.0/oftree
+global.linux.bootargs.dyn.root="root=/dev/mmcblk1p2 rootflags='data=journal'"
diff --git 
a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/mmc 
b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/mmc
index 834669d..0fefeb2 100644
--- a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/mmc
+++ b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/mmc
@@ -1,6 +1,7 @@
 #!/bin/sh
 
-global.bootm.image=/boot/linuximage
-global.bootm.oftree=/boot/oftree
+[ -e /env/config-expansions ] && /env/config-expansions
 
-global.linux.bootargs.dyn.root="root=/dev/mmcblk0p2 rw rootwait"
+global.bootm.image=/mnt/mmc0.0/linuximage
+global.bootm.oftree=/mnt/mmc0.0/oftree
+global.linux.bootargs.dyn.root="root=/dev/mmcblk0p2 rootflags='data=journal'"
diff --git 
a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/nand 
b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/nand
index ece44b7..fa695bb 100644
--- a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/nand
+++ b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/nand
@@ -1,8 +1,10 @@
 #!/bin/sh
 
+[ -e /env/config-expansions ] && /env/config-expansions
+
 [ ! -e /dev/nand0.root.ubi ] && ubiattach /dev/nand0.root
 
 global.bootm.image="/dev/nand0.root.ubi.kernel"
 global.bootm.oftree="/dev/nand0.root.ubi.oftree"
 
-global.linux.bootargs.dyn.root="root=ubi0:root ubi.mtd=root rw 
rootfstype=ubifs"
+global.linux.bootargs.dyn.root="root=ubi0:root ubi.mtd=root rootfstype=ubifs"
diff --git 
a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/net 
b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/net
new file mode 100644
index 000..6dbd2aa
--- /dev/null
+++ b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/net
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+path="/mnt/tftp"
+
+global.bootm.image="${path}/${global.user}-linux-${global.hostname}"
+
+oftree="${path}/${global.user}-oftree-${global.hostname}"
+if [ -f "${oftree}" ]; then
+global.bootm.oftree="$oftree"
+fi
+
+nfsroot="/nfsroot/${global.hostname}"
+bootargs-ip
+
+[ -e /env/config-expansions ] && /env/config-expansions
+
+global.linux.bootargs.dyn.root="root=/dev/nfs nfsroot=$nfsroot,vers=3,udp"
diff --git 
a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/spi 
b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/spi
index 71c5834..2d88626 100644
--- a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/spi
+++ b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/spi
@@ -1,7 +1,9 @@
 #!/bin/sh
 
+[ -e /env/config-expansions ] && /env/config-expansions
+
 global.bootm.image="/dev/m25p0.kernel"
 global.bootm.oftree="/dev/m25p0.oftree"
 
 # Use rootfs from NAND
-global.linux.bootargs.dyn.root="root=ubi0:root ubi.mtd=nand0.root rw 
rootfstype=ubifs"
+global.linux.bootargs.dyn.root="root=ubi0:root ubi.mtd=nand0.root 
rootfstype=ubifs"
diff --git 
a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/init/bootsource 
b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/init/bootsource
index 3f2ff4b..61a0879 100644
--- a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/init/bootsource
+++ b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/init/bootsource
@@ -4,12 +4,20 @@ if [ -n "$nv.boot.default" ]; then
exit
 fi
 
-if [ $bootsource = mmc ]; then
-   global.boot.default="mmc nand spi net"
+if [ -e /dev/mmc1.0 ]; then
+   nvmem="emmc"
+else
+   nvmem="nand"
+fi
+
+if [ $bootsource = mmc -a 

[PATCH v3 2/4] arm: boards: phytec-som-am335x: Add automount script

2017-05-12 Thread Daniel Schultz
Each MMC boot source is mounted to /mnt/mmcN.0. To make the not-mounted
boot source available in Barebox, an automount script mounts
this device also to /mnt/, if the directory will be accessed.

Signed-off-by: Daniel Schultz 
---
 .../defaultenv-physom-am335x/init/automount | 21 +
 1 file changed, 21 insertions(+)
 create mode 100644 
arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/init/automount

diff --git 
a/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/init/automount 
b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/init/automount
new file mode 100644
index 000..53ecbe3
--- /dev/null
+++ b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/init/automount
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# automount tftp server based on $eth0.serverip
+
+mkdir -p /mnt/tftp
+automount /mnt/tftp 'ifup eth0 && mount -t tftp $eth0.serverip /mnt/tftp'
+
+# automount nfs server's nfsroot
+
+mkdir -p /mnt/nfs
+automount /mnt/nfs 'ifup eth0 && mount -t nfs 
${eth0.serverip}:/home/${global.user}/nfsroot/${global.hostname} /mnt/nfs'
+
+#automount SD card and EMMC boot partitions
+
+if [ $bootsource = mmc -a $bootsource_instance = 1 ]; then
+   mkdir -p /mnt/mmc0.0
+   automount /mnt/mmc0.0 '[ -e /dev/mmc0.0 ] && mount /dev/mmc0.0 
/mnt/mmc0.0'
+else
+   mkdir -p /mnt/mmc1.0
+   automount /mnt/mmc1.0 '[ -e /dev/mmc1.0 ] && mount /dev/mmc1.0 
/mnt/mmc1.0'
+fi
-- 
1.9.1


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


[PATCH v3 4/4] arm: boards: beaglebone: Delete default env

2017-05-12 Thread Daniel Schultz
The Beaglebone environment should be set from outside with an application
specific environment.

Signed-off-by: Daniel Schultz 
---
 arch/arm/boards/beaglebone/Makefile | 1 -
 arch/arm/boards/beaglebone/board.c  | 2 --
 arch/arm/boards/beaglebone/defaultenv-beaglebone/boot/sd| 6 --
 .../arm/boards/beaglebone/defaultenv-beaglebone/init/usb-limit-1300 | 5 -
 4 files changed, 14 deletions(-)
 delete mode 100644 arch/arm/boards/beaglebone/defaultenv-beaglebone/boot/sd
 delete mode 100644 
arch/arm/boards/beaglebone/defaultenv-beaglebone/init/usb-limit-1300

diff --git a/arch/arm/boards/beaglebone/Makefile 
b/arch/arm/boards/beaglebone/Makefile
index 21a1a29..092c31d 100644
--- a/arch/arm/boards/beaglebone/Makefile
+++ b/arch/arm/boards/beaglebone/Makefile
@@ -1,3 +1,2 @@
 lwl-y += lowlevel.o
 obj-y += board.o
-bbenv-y += defaultenv-beaglebone
diff --git a/arch/arm/boards/beaglebone/board.c 
b/arch/arm/boards/beaglebone/board.c
index 5717c45..fc16aea 100644
--- a/arch/arm/boards/beaglebone/board.c
+++ b/arch/arm/boards/beaglebone/board.c
@@ -85,8 +85,6 @@ static int beaglebone_devices_init(void)
 
black = is_beaglebone_black();
 
-   defaultenv_append_directory(defaultenv_beaglebone);
-
globalvar_add_simple("board.variant", black ? "boneblack" : "bone");
 
printf("detected 'BeagleBone %s'\n", black ? "Black" : "White");
diff --git a/arch/arm/boards/beaglebone/defaultenv-beaglebone/boot/sd 
b/arch/arm/boards/beaglebone/defaultenv-beaglebone/boot/sd
deleted file mode 100644
index aa94b2f..000
--- a/arch/arm/boards/beaglebone/defaultenv-beaglebone/boot/sd
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-global.bootm.image=/boot/uImage
-global.bootm.oftree=/boot/oftree
-#global.bootm.initrd=
-global.linux.bootargs.dyn.root="root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
diff --git 
a/arch/arm/boards/beaglebone/defaultenv-beaglebone/init/usb-limit-1300 
b/arch/arm/boards/beaglebone/defaultenv-beaglebone/init/usb-limit-1300
deleted file mode 100644
index 56313bf..000
--- a/arch/arm/boards/beaglebone/defaultenv-beaglebone/init/usb-limit-1300
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-echo -n "changing USB current limit to 1300 mA... "
-i2c_write -b 0 -a 0x24 -r 0x01 0x3e
-echo "done"
-- 
1.9.1


___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox