[RFC 0/2] A/B firmware update based in eMMC boot partition.
Alexander Dahl
ada at thorsis.com
Wed Jan 26 09:28:18 CET 2022
Hello,
Am Tue, Jan 25, 2022 at 03:43:29PM +0100 schrieb Wolfgang Denk:
> Dear Ying-Chun Liu,
>
> In message <20220125135535.224061-1-grandpaul at gmail.com> you wrote:
> >
> > I've implemented A/B firmware update based on eMMC hw partitions.
> > Normally we have 2 boot partitions on eMMC. One is active and another
> > is inactive. We can then flash the firmware to the inactive one and
> > make it active.
>
> We have been doing software updates using U-Boot scripts etc. for
> many, many years. But during that time a large number of
> restrictions and shortcomings became clear. this is why projects
> like SWUpdate [1] came into life, and U-Boot supports this only with
> very basic features:
>
> - watchdog support to reset a hanging system
> - boot counter to switch to an alternate boot command in case of too
> many failed boot attempts
>
> That's all. Not more is needed, and not more should be used in
> U-Boot.
>
> I'm not sure if you know SWUpdate - if not, you should definitely
> look into it. I strongly recommend not to try to reinvent that
> wheel - poorly - in U-Boot. We have been there before, and got rid
> of this approach for a pretty long list of good reasons.
>
>
> [1] https://sbabic.github.io/swupdate/
FWIW, if you don't want to reinvent the wheel and evaluate
alternatives, you might also want to checkout RAUC [1]. It has
builtin support for that eMMC boot partition scenario. The u-boot
integration is not as sophisticated as for other bootloaders, but I
got that running with u-boot last year on raw NAND flash and it's a
lot better than hacking together your own A/B update scheme scripts.
HTH & Greets
Alex
[1] https://www.rauc.io/
More information about the U-Boot
mailing list