Re: [PATCH v5] arm: boards: phytec-som-am335x: Update boot scripts
On Tue, Jun 27, 2017 at 11:45:44AM +0200, Daniel Schultz wrote: > Hi Sascha, > > > Normally the desired behaviour is that the bootsource can be changed > > persistently by setting nv.boot.default to the desired source. This > > does not work when global.boot.default gets overwritten after the nvvars > > have been read from the environment. > > > > This behaviour is not changed with this patch, but I would welcome a > > patch that changes this script to the desired behaviour. This could > > be done by changing global.boot.default only when nv.boot.default is > > empty. > > > > This is already implemented by a test above these changes, isn't it? > > snippet from init/bootsource: > 1 #!/bin/sh > > 2 > 3 if [ -n "$nv.boot.default" ]; then > 4 exit > 5 fi Yes, right, that already does it. Sorry for the noise. Sascha -- 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- | ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH v5] arm: boards: phytec-som-am335x: Update boot scripts
Hi Sascha, Am 26.06.2017 um 08:35 schrieb Sascha Hauer: On Tue, Jun 20, 2017 at 05:42:22PM +0200, Daniel Schultz wrote: Expand the boot scripts with EMMC and add a default file source for expansions. Removed "rw" and "rootwait" bootargs from existing boot scripts. Why is "rootwait" removed? From my experience adding "rootwait" is pretty essential when booting from mmc. Has that changed? Ah that's a good point! We add these commands in Yocto, but I forgot the use case without Yocto. So I will add a nv/linux.bootargs.rootfs file with "rootwait ro fsck.repair=yes" (fsck.repair is a systemd unit). -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 $bootsource_instance = 1 ]; then + global.boot.default="emmc mmc spi net" +elif [ $bootsource = mmc -a $bootsource_instance = 0 ]; then + global.boot.default="mmc $nvmem spi net" elif [ $bootsource = nand ]; then global.boot.default="nand spi mmc net" elif [ $bootsource = spi ]; then - global.boot.default="spi nand mmc net" + global.boot.default="spi $nvmem mmc net" elif [ $bootsource = net ]; then - global.boot.default="net nand spi mmc" + global.boot.default="net $nvmem spi mmc" fi Normally the desired behaviour is that the bootsource can be changed persistently by setting nv.boot.default to the desired source. This does not work when global.boot.default gets overwritten after the nvvars have been read from the environment. This behaviour is not changed with this patch, but I would welcome a patch that changes this script to the desired behaviour. This could be done by changing global.boot.default only when nv.boot.default is empty. This is already implemented by a test above these changes, isn't it? snippet from init/bootsource: 1 #!/bin/sh 2 3 if [ -n "$nv.boot.default" ]; then 4 exit 5 fi 6 7 if [ -e /dev/mmc1.0 ]; then ... Sascha -- Mit freundlichen Grüßen, With best regards, Daniel Schultz ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH v5] arm: boards: phytec-som-am335x: Update boot scripts
On Tue, Jun 20, 2017 at 05:42:22PM +0200, Daniel Schultz wrote: > Expand the boot scripts with EMMC and add a default file source for > expansions. > > Removed "rw" and "rootwait" bootargs from existing boot scripts. Why is "rootwait" removed? From my experience adding "rootwait" is pretty essential when booting from mmc. Has that changed? > > -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 $bootsource_instance = 1 ]; then > + global.boot.default="emmc mmc spi net" > +elif [ $bootsource = mmc -a $bootsource_instance = 0 ]; then > + global.boot.default="mmc $nvmem spi net" > elif [ $bootsource = nand ]; then > global.boot.default="nand spi mmc net" > elif [ $bootsource = spi ]; then > - global.boot.default="spi nand mmc net" > + global.boot.default="spi $nvmem mmc net" > elif [ $bootsource = net ]; then > - global.boot.default="net nand spi mmc" > + global.boot.default="net $nvmem spi mmc" > fi Normally the desired behaviour is that the bootsource can be changed persistently by setting nv.boot.default to the desired source. This does not work when global.boot.default gets overwritten after the nvvars have been read from the environment. This behaviour is not changed with this patch, but I would welcome a patch that changes this script to the desired behaviour. This could be done by changing global.boot.default only when nv.boot.default is empty. Sascha -- 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- | ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
[PATCH v5] arm: boards: phytec-som-am335x: Update boot scripts
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--- .../phytec-som-am335x/defaultenv-physom-am335x/boot/emmc | 5 + .../phytec-som-am335x/defaultenv-physom-am335x/boot/mmc | 7 +++ .../phytec-som-am335x/defaultenv-physom-am335x/boot/nand | 2 +- .../phytec-som-am335x/defaultenv-physom-am335x/boot/spi | 2 +- .../defaultenv-physom-am335x/init/bootsource | 16 5 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/emmc 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..b1792a6 --- /dev/null +++ b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/emmc @@ -0,0 +1,5 @@ +#!/bin/sh + +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..77a076d 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,5 @@ #!/bin/sh -global.bootm.image=/boot/linuximage -global.bootm.oftree=/boot/oftree - -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..33f5f02 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 @@ -5,4 +5,4 @@ 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/spi b/arch/arm/boards/phytec-som-am335x/defaultenv-physom-am335x/boot/spi index 71c5834..a321aa9 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 @@ -4,4 +4,4 @@ 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 $bootsource_instance = 1 ]; then + global.boot.default="emmc mmc spi net" +elif [ $bootsource = mmc -a $bootsource_instance = 0 ]; then + global.boot.default="mmc $nvmem spi net" elif [ $bootsource = nand ]; then global.boot.default="nand spi mmc net" elif [ $bootsource = spi ]; then - global.boot.default="spi nand mmc net" + global.boot.default="spi $nvmem mmc net" elif [ $bootsource = net ]; then - global.boot.default="net nand spi mmc" + global.boot.default="net $nvmem spi mmc" fi -- 1.9.1 ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox