[PATCH 1/2] config: Add 'update_bootimg' command to update flash.bin on Phytec's imx8mm

Lukasz Majewski lukma at denx.de
Fri Aug 2 12:31:41 CEST 2024


Hi Benjamin,

> Hi Lukasz,
> 
> On 01.08.24 14:54, Lukasz Majewski wrote:
> > This command allows easy update on SD card (hence the
> > update_mmc_part=1) of the flash.bin generated during u-boot build.
> >
> > Signed-off-by: Lukasz Majewski <lukma at denx.de>
> > ---
> >   include/configs/phycore_imx8mm.h | 11 +++++++++++
> >   1 file changed, 11 insertions(+)
> >
> > diff --git a/include/configs/phycore_imx8mm.h
> > b/include/configs/phycore_imx8mm.h index ce6dc87c69..fdeb11933f
> > 100644 --- a/include/configs/phycore_imx8mm.h
> > +++ b/include/configs/phycore_imx8mm.h
> > @@ -29,6 +29,17 @@
> >   	"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
> >   	"mmcpart=1\0" \
> >   	"mmcroot=2\0" \
> > +	"update_mmc_part=1\0" \  
> 
> You define the update_mmc_part variable here, but do not use it 
> anywhere. You use the mmcdev variable later which is good, because
> the function then works not only for SD-Card, but also for eMMC.
> 
> In the commit description you say it is for updating SD-Card, which 
> would be mmc dev 1, but the name of the variable would indicate that
> is is for a partition.
> As I understand it you want to update just the U-Boot, which is not 
> inside any partition, so you would not need this variable.

Yes, for updating u-boot it is not required. I will remove it.

> 
> > +	"update_offset=0x42\0" \
> > +	"update_filename=flash.bin\0" \
> > +	"hostname=/tftpboot/lukma/\0" \  
> We adivse to use /srv/tftp  as tftp dir in our BSP documentation. But
> I don't think you need that variable at all, because the dhcp command 
> should find the tftp dir automatically.

I can follow your documentation adn add /srv/tftp

> > +	"update_bootimg="
> > 	\
> > +		"mmc dev ${mmcdev} ; "		\
> > +		"if dhcp ${hostname}/${update_filename} ; then
> > "	\  
> 
> Does this work? For me it does not. As far as I know the syntax of
> this command is "dhcp <loadaddr> <filename>". So I would expect this
> to be: dhcp ${loadaddr} ${update_filename}
> 

When you don't provide the <loadaddr> the one from ${loadaddr} is used
by default.

However, yes - the latter - i.e. one with ${loadaddr} is more readable
and shall be used.

> > +		"setexpr fw_sz ${filesize} / 0x200 ; "	/*
> > SD block size */ \
> > +		"setexpr fw_sz ${fw_sz} + 1 ; "
> > 		\  
> Why do you add one here? Is this important for something?

Yes, it is. The / division is only giving you the value without
reminder. As the filesize can be not aligned to 0x200 you wouldn't
flash the whole binary.

> For me it 
> works also without the one.

Sometimes it works, sometimes not - it depends if you crop the relevant
part.

> It is also described in our BSP documentation without adding one. See:
> https://phytec.github.io/doc-bsp-yocto/bsp/imx8/imx8mp/mainline-head.html#flash-emmc-u-boot-image-via-network-from-running-u-boot 
> 

If you are 100% sure that all the time the size of the binary is
aligned to 0x200, then you can omit the 1 as well.

> (This is for our imx8mp mainline release but is the same for imx8mm
> with another offset).
> 
> Benjamin
> > +		"mmc write ${loadaddr} ${update_offset} ${fw_sz} ;
> > "	\
> > +		"fi\0" \
> >   	"mmcautodetect=yes\0" \
> >   	"mmcargs=setenv bootargs console=${console} " \
> >   		"root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait
> > rw\0" \  
> 
> 


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20240802/65ea6bb2/attachment.sig>


More information about the U-Boot mailing list