This patch set adds a mechanism for simple and fail-safe MMC U-Boot upgrades.
Although vbe-abrec provides a similar method for fail-safe upgrades, it is not always possible to use because, if I am not mistaken, it requires control over the TPL. On some devices such as the RK3576, only a binary blob is provided from the vendor. VBE is also much more complex than this approach, but the added complexity does not provide anything of value for my use-case. Another way to achieve a similar result, would be to use MMCSD_MODE_EMMCBOOT, but it is not possible to verify that the new bootloader actually works using that method. The proposed changes make it possible to switch between 2 different boot sectors by writing to a separate control sector. The boot sector can be changed temporarily. A temprary boot target will only be tried once by the SPL and the control block subsequently reset. Andri Yngvason (2): spl: Add A/B sector mode for mmc raw mode Forward chosen raw mmc A/B sector to OS boot/fdt_support.c | 20 +++++++++++ common/bloblist.c | 1 + common/spl/Kconfig | 28 +++++++++++++-- common/spl/spl_mmc.c | 85 ++++++++++++++++++++++++++++++++++++++++++-- include/bloblist.h | 1 + include/spl.h | 10 ++++++ 6 files changed, 140 insertions(+), 5 deletions(-) -- 2.50.0