All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] board: engicam: Handle mmc recovery partition, root
@ 2019-04-26  9:01 Shyam Saini
  2019-04-26  9:01 ` [U-Boot] [PATCH 2/2] configs: imx6-engicam: Update the recoveryboot setting Shyam Saini
  2019-06-10  9:44 ` [U-Boot] [PATCH 1/2] board: engicam: Handle mmc recovery partition, root Stefano Babic
  0 siblings, 2 replies; 4+ messages in thread
From: Shyam Saini @ 2019-04-26  9:01 UTC (permalink / raw)
  To: u-boot

From: Jagan Teki <jagan@amarulasolutions.com>

Since i.CoreM6 support recovery boot via bootcount, update
the mmcpart and mmcroot dynamically based on used mmc partition
layout instead statically defined in include/configs.

Tested-by: Shyam Saini <shyam.saini@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 board/engicam/common/board.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/board/engicam/common/board.c b/board/engicam/common/board.c
index 7486f0ac2d..571d36fc63 100644
--- a/board/engicam/common/board.c
+++ b/board/engicam/common/board.c
@@ -19,12 +19,20 @@ static void mmc_late_init(void)
 {
 	char cmd[32];
 	char mmcblk[32];
+	unsigned long bootcount = bootcount_load() + 1;
+	unsigned long bootlimit = env_get_ulong("bootlimit", 10, 0);
 	u32 dev_no = mmc_get_env_dev();
+	u32 mmcpart = 1;
 
 	env_set_ulong("mmcdev", dev_no);
 
+	if (bootlimit && bootcount > bootlimit)
+		mmcpart = 3;
+
+	env_set_ulong("mmcpart", mmcpart);
+
 	/* Set mmcblk env */
-	sprintf(mmcblk, "/dev/mmcblk%dp2 rootwait rw", dev_no);
+	sprintf(mmcblk, "/dev/mmcblk%dp%d rootwait rw", dev_no, mmcpart + 1);
 	env_set("mmcroot", mmcblk);
 
 	sprintf(cmd, "mmc dev %d", dev_no);
-- 
2.11.0

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

* [U-Boot] [PATCH 2/2] configs: imx6-engicam: Update the recoveryboot setting
  2019-04-26  9:01 [U-Boot] [PATCH 1/2] board: engicam: Handle mmc recovery partition, root Shyam Saini
@ 2019-04-26  9:01 ` Shyam Saini
  2019-06-10  9:49   ` [U-Boot] [PATCH 2/2] configs: imx6-engicam: Update the recoveryboot sbabic at denx.de
  2019-06-10  9:44 ` [U-Boot] [PATCH 1/2] board: engicam: Handle mmc recovery partition, root Stefano Babic
  1 sibling, 1 reply; 4+ messages in thread
From: Shyam Saini @ 2019-04-26  9:01 UTC (permalink / raw)
  To: u-boot

From: Jagan Teki <jagan@amarulasolutions.com>

Since recovery boot on mmc can get the mmcpart and mmcroot
dynamically, drop the static definitions and handle it
properly.

Tested-by: Shyam Saini <shyam.saini@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 include/configs/imx6-engicam.h | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/include/configs/imx6-engicam.h b/include/configs/imx6-engicam.h
index 571852d803..56b3c7503e 100644
--- a/include/configs/imx6-engicam.h
+++ b/include/configs/imx6-engicam.h
@@ -43,30 +43,20 @@
 	"fdt_addr=" FDT_ADDR "\0" \
 	"boot_fdt=try\0" \
 	"mmcpart=1\0" \
-	"recovery_device=0\0" \
-	"recovery_part=2\0" \
-	"recovery_root=/dev/mmcblk0p2 rootwait rw\0" \
 	"nandroot=ubi0:rootfs rootfstype=ubifs\0" \
 	"mmcautodetect=yes\0" \
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
 		"root=${mmcroot}\0" \
-	"recovery_mmcargs= setenv bootargs console=${console},${baudrate} "\
-		"root=${recovery_root}\0" \
 	"ubiargs=setenv bootargs console=${console},${baudrate} " \
 		"ubi.mtd=5 root=${nandroot} ${mtdparts}\0" \
 	"loadbootscript=" \
 		"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
 	"bootscript=echo Running bootscript from mmc ...; " \
 		"source\0" \
-	"recovery_loadimage=ext2load mmc ${recovery_device}:${recovery_part} ${loadaddr} ${image}\0" \
-	"recovery_loadfdt=ext2load mmc ${recovery_device}:${recovery_part} ${fdt_addr} ${fdt_file}\0" \
 	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
 	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
 	"loadfit=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${fit_image}\0" \
-	"altbootcmd=run recovery_boot\0"\
-	"recovery_boot=echo Recovery Boot from mmc ...; " \
-		"run recovery_loadimage ; run recovery_loadfdt; run recovery_mmcargs; "\
-		"bootm ${loadaddr} - ${fdt_addr}\0" \
+	"altbootcmd=run recoveryboot\0"\
 	"fitboot=echo Booting FIT image from mmc ...; " \
 		"run mmcargs; " \
 		"bootm ${loadaddr}\0" \
@@ -108,7 +98,12 @@
 		"run ubiargs; " \
 		"nand read ${loadaddr} kernel 0x800000; " \
 		"nand read ${fdt_addr} dtb 0x100000; " \
-		"bootm ${loadaddr} - ${fdt_addr}\0"
+		"bootm ${loadaddr} - ${fdt_addr}\0" \
+	"recoveryboot=if test ${modeboot} = mmcboot; then " \
+			"run mmcboot; " \
+		"else " \
+			"run nandboot; " \
+		"fi\0"
 
 #define CONFIG_BOOTCOMMAND		"run $modeboot"
 
-- 
2.11.0

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

* [U-Boot] [PATCH 1/2] board: engicam: Handle mmc recovery partition, root
  2019-04-26  9:01 [U-Boot] [PATCH 1/2] board: engicam: Handle mmc recovery partition, root Shyam Saini
  2019-04-26  9:01 ` [U-Boot] [PATCH 2/2] configs: imx6-engicam: Update the recoveryboot setting Shyam Saini
@ 2019-06-10  9:44 ` Stefano Babic
  1 sibling, 0 replies; 4+ messages in thread
From: Stefano Babic @ 2019-06-10  9:44 UTC (permalink / raw)
  To: u-boot

Hi Shyam, Jagan,

On 26/04/19 11:01, Shyam Saini wrote:
> From: Jagan Teki <jagan@amarulasolutions.com>
> 
> Since i.CoreM6 support recovery boot via bootcount, update
> the mmcpart and mmcroot dynamically based on used mmc partition
> layout instead statically defined in include/configs.
> 
> Tested-by: Shyam Saini <shyam.saini@amarulasolutions.com>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  board/engicam/common/board.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/board/engicam/common/board.c b/board/engicam/common/board.c
> index 7486f0ac2d..571d36fc63 100644
> --- a/board/engicam/common/board.c
> +++ b/board/engicam/common/board.c
> @@ -19,12 +19,20 @@ static void mmc_late_init(void)
>  {
>  	char cmd[32];
>  	char mmcblk[32];
> +	unsigned long bootcount = bootcount_load() + 1;

Does it work ? I cannot build with this set because bootcount_load is
not defined.

> +	unsigned long bootlimit = env_get_ulong("bootlimit", 10, 0);
>  	u32 dev_no = mmc_get_env_dev();
> +	u32 mmcpart = 1;
>  
>  	env_set_ulong("mmcdev", dev_no);
>  
> +	if (bootlimit && bootcount > bootlimit)
> +		mmcpart = 3;
> +
> +	env_set_ulong("mmcpart", mmcpart);
> +
>  	/* Set mmcblk env */
> -	sprintf(mmcblk, "/dev/mmcblk%dp2 rootwait rw", dev_no);
> +	sprintf(mmcblk, "/dev/mmcblk%dp%d rootwait rw", dev_no, mmcpart + 1);

Maybe I repeat myself - this is your board, and fine for me if you do in
this way. But is not much more flexible to do this with a script instead
of hard code into the board file ?

>  	env_set("mmcroot", mmcblk);
>  
>  	sprintf(cmd, "mmc dev %d", dev_no);
> 

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

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

* [U-Boot] [PATCH 2/2] configs: imx6-engicam: Update the recoveryboot
  2019-04-26  9:01 ` [U-Boot] [PATCH 2/2] configs: imx6-engicam: Update the recoveryboot setting Shyam Saini
@ 2019-06-10  9:49   ` sbabic at denx.de
  0 siblings, 0 replies; 4+ messages in thread
From: sbabic at denx.de @ 2019-06-10  9:49 UTC (permalink / raw)
  To: u-boot

> From: Jagan Teki <jagan@amarulasolutions.com>
> Since recovery boot on mmc can get the mmcpart and mmcroot
> dynamically, drop the static definitions and handle it
> properly.
> Tested-by: Shyam Saini <shyam.saini@amarulasolutions.com>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

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

end of thread, other threads:[~2019-06-10  9:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-26  9:01 [U-Boot] [PATCH 1/2] board: engicam: Handle mmc recovery partition, root Shyam Saini
2019-04-26  9:01 ` [U-Boot] [PATCH 2/2] configs: imx6-engicam: Update the recoveryboot setting Shyam Saini
2019-06-10  9:49   ` [U-Boot] [PATCH 2/2] configs: imx6-engicam: Update the recoveryboot sbabic at denx.de
2019-06-10  9:44 ` [U-Boot] [PATCH 1/2] board: engicam: Handle mmc recovery partition, root Stefano Babic

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.