diff mbox series

[v1,3/5] colibri_imx6: add update_uboot wrapper

Message ID 20191204143111.5596-4-igor.opaniuk@gmail.com
State Superseded
Delegated to: Stefano Babic
Headers show
Series toradex: imx: add update_uboot wrapper | expand

Commit Message

Igor Opaniuk Dec. 4, 2019, 2:31 p.m. UTC
From: Igor Opaniuk <igor.opaniuk@toradex.com>

Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.

> tftpboot ${loadaddr} ${board_name}/u-boot.img
> run update_uboot
> tftpboot ${loadaddr} ${board_name}/SPL
> run update_spl

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
---

 include/configs/colibri_imx6.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Lukasz Majewski Dec. 4, 2019, 10:46 p.m. UTC | #1
Hi Igor,

> From: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> Add universal update_uboot wrapper that helps to update
> U-Boot image on internal storage.
> 
> > tftpboot ${loadaddr} ${board_name}/u-boot.img
> > run update_uboot
> > tftpboot ${loadaddr} ${board_name}/SPL
> > run update_spl  
> 
> Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> ---
> 
>  include/configs/colibri_imx6.h | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/include/configs/colibri_imx6.h
> b/include/configs/colibri_imx6.h index 95b5a14b59..750463ef47 100644
> --- a/include/configs/colibri_imx6.h
> +++ b/include/configs/colibri_imx6.h
> @@ -110,6 +110,17 @@
>  	"imx6dl-colibri-eval-v3.dtb fat 0 1;" \
>  	"imx6dl-colibri-cam-eval-v3.dtb fat 0 1"
>  
> +#define UBOOT_UPDATE \
> +	"uboot_hwpart=1\0" \
> +	"uboot_blk=8a\0" \
> +	"uboot_spl_blk=2\0" \
> +	"set_blkcnt=setexpr blkcnt ${filesize} + 0x1ff && " \
> +		"setexpr blkcnt ${blkcnt} / 0x200\0" \
> +	"update_uboot=run set_blkcnt && mmc dev 0 ${uboot_hwpart} &&
> " \
> +		"mmc write ${loadaddr} ${uboot_blk} ${blkcnt}\0" \
> +	"update_spl=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && "
> \
> +		"mmc write ${loadaddr} ${uboot_spl_blk} ${blkcnt}\0"
> +

Do you see any chance to make this code common and being re-usable by
other imx6 devices?

>  #define EMMC_BOOTCMD \
>  	"set_emmcargs=setenv emmcargs ip=off root=PARTUUID=${uuid} "\
>  		"rw,noatime rootfstype=ext4 " \
> @@ -163,6 +174,7 @@
>  	"fdt_fixup=;\0" \
>  	MEM_LAYOUT_ENV_SETTINGS \
>  	NFS_BOOTCMD \
> +	UBOOT_UPDATE \
>  	"setethupdate=if env exists ethaddr; then; else setenv
> ethaddr " \ "00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \
>  		"flash_eth.img && source ${loadaddr}\0" \




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
Igor Opaniuk Dec. 5, 2019, 11:51 a.m. UTC | #2
Hi Lukasz,

On Thu, Dec 5, 2019 at 12:46 AM Lukasz Majewski <lukma@denx.de> wrote:
>
> Hi Igor,
>
> > From: Igor Opaniuk <igor.opaniuk@toradex.com>
> >
> > Add universal update_uboot wrapper that helps to update
> > U-Boot image on internal storage.
> >
> > > tftpboot ${loadaddr} ${board_name}/u-boot.img
> > > run update_uboot
> > > tftpboot ${loadaddr} ${board_name}/SPL
> > > run update_spl
> >
> > Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> > ---
> >
> >  include/configs/colibri_imx6.h | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> >
> > diff --git a/include/configs/colibri_imx6.h
> > b/include/configs/colibri_imx6.h index 95b5a14b59..750463ef47 100644
> > --- a/include/configs/colibri_imx6.h
> > +++ b/include/configs/colibri_imx6.h
> > @@ -110,6 +110,17 @@
> >       "imx6dl-colibri-eval-v3.dtb fat 0 1;" \
> >       "imx6dl-colibri-cam-eval-v3.dtb fat 0 1"
> >
> > +#define UBOOT_UPDATE \
> > +     "uboot_hwpart=1\0" \
> > +     "uboot_blk=8a\0" \
> > +     "uboot_spl_blk=2\0" \
> > +     "set_blkcnt=setexpr blkcnt ${filesize} + 0x1ff && " \
> > +             "setexpr blkcnt ${blkcnt} / 0x200\0" \
> > +     "update_uboot=run set_blkcnt && mmc dev 0 ${uboot_hwpart} &&
> > " \
> > +             "mmc write ${loadaddr} ${uboot_blk} ${blkcnt}\0" \
> > +     "update_spl=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && "
> > \
> > +             "mmc write ${loadaddr} ${uboot_spl_blk} ${blkcnt}\0"
> > +
>
> Do you see any chance to make this code common and being re-usable by
> other imx6 devices?

Not sure, because:
1. Some platforms use "user" hw partition instead of boot0 for
storing SPL/U-boot proper (AFAIK this is actual for i.MX6Q Sabre)
IMHO, for this case it's much more convenient to use DFU/UMS/Fastboot
(which is not possible for boot0/boot1) for flashing instead of some
wrapper like this.
2. I don't have any mx6-based boards other than from Toradex, so at
least I won't be
able to test it.

If you insist, I can add "update_uboot" to the common include, but to be honest
I really doubt that someone will use it :)

>
> >  #define EMMC_BOOTCMD \
> >       "set_emmcargs=setenv emmcargs ip=off root=PARTUUID=${uuid} "\
> >               "rw,noatime rootfstype=ext4 " \
> > @@ -163,6 +174,7 @@
> >       "fdt_fixup=;\0" \
> >       MEM_LAYOUT_ENV_SETTINGS \
> >       NFS_BOOTCMD \
> > +     UBOOT_UPDATE \
> >       "setethupdate=if env exists ethaddr; then; else setenv
> > ethaddr " \ "00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \
> >               "flash_eth.img && source ${loadaddr}\0" \
>
>
>
>
> Best regards,
>
> Lukasz Majewski
>
> --
>
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de

Thanks
--
Best regards - Freundliche GrĂ¼sse - Meilleures salutations

Igor Opaniuk

mailto: igor.opaniuk@gmail.com
skype: igor.opanyuk
+380 (93) 836 40 67
http://ua.linkedin.com/in/iopaniuk
diff mbox series

Patch

diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 95b5a14b59..750463ef47 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -110,6 +110,17 @@ 
 	"imx6dl-colibri-eval-v3.dtb fat 0 1;" \
 	"imx6dl-colibri-cam-eval-v3.dtb fat 0 1"
 
+#define UBOOT_UPDATE \
+	"uboot_hwpart=1\0" \
+	"uboot_blk=8a\0" \
+	"uboot_spl_blk=2\0" \
+	"set_blkcnt=setexpr blkcnt ${filesize} + 0x1ff && " \
+		"setexpr blkcnt ${blkcnt} / 0x200\0" \
+	"update_uboot=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && " \
+		"mmc write ${loadaddr} ${uboot_blk} ${blkcnt}\0" \
+	"update_spl=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && " \
+		"mmc write ${loadaddr} ${uboot_spl_blk} ${blkcnt}\0"
+
 #define EMMC_BOOTCMD \
 	"set_emmcargs=setenv emmcargs ip=off root=PARTUUID=${uuid} "\
 		"rw,noatime rootfstype=ext4 " \
@@ -163,6 +174,7 @@ 
 	"fdt_fixup=;\0" \
 	MEM_LAYOUT_ENV_SETTINGS \
 	NFS_BOOTCMD \
+	UBOOT_UPDATE \
 	"setethupdate=if env exists ethaddr; then; else setenv ethaddr " \
 		"00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \
 		"flash_eth.img && source ${loadaddr}\0" \