Maybe of interest for MNT machines?
This relies on a feature of the RPi bootloader called “tryboot”. To my knowledege, u-boot does not have that. Somebody [tm] would have to implement that first.
Personally I would allocate my time to move things into the other direction: make the Reforms less like a weird embedded platform and make it look more like a “real” desktop. So move away from u-boot and flash-kernel and let it boot via EFI, for example. I have worked on a proof-of-concept which makes EFI booting possible here: Draft: amd64 POC (!133) · Merge requests · Reform / reform-system-image · GitLab @bkeys has successfully tested this already by using EDK2 instead of u-boot on their RK3588 classic Reform. With EFI, we could just let the Reform boot via grub, for example.
My motivation would be to make things more similar to what users are already used to from other platforms. I would like to make the learning curve less steep. There is already so much stuff to discover and so many rough edges (as you also have discovered). Those who are technically savvy enough still have the option to change their bootloader to something less bloated than grub but the default would be something familiar.
UEFI doesn’t prevent you from bricking your system if you don’t setup grub with a recovery option. And A/B is truly designed for computer newbies - something grub is not.
I like A/B personally. But I’m not the target audience. So anything works for me
From what I can tell, upstream u-boot now appears to have an UEFI impl and also defaults to booting UEFI apps?
The annoying part is probably display support still
BTW, here’s a good presentation on how to implement A/B on u-boot platforms:
Generally I agree that platforms should become less weird
Yes. But I heard that EDK2 has working display.
These are some good slides, thank you! There are some very creative ideas in there. Though I really fear messing with u-boot variables. What happens when your script messes up? There is no A/B partition for the u-boot variables.