The RockPI boards always prefer to boot from their on-board flash.
If there's a valid u-boot image there, it will boot that.
U-boot boots Linux preferentially from the SDcard (if both SDNAND and SDcard images are valid)
My board was fetching a v2024.10 U-Boot from its built-in SDNAND flash,
then pulling the kernel from the SDcard. There was only the v2022.04 U-boot on your RockPi-S,
which explains why my RockPI-S always booted.
I can simulate the failures you all saw by holding in the button to disable the SDNAND flash.
In that case, my first stage loader pulls the v2022.04 U-Boot from the SDcard and fails to boot.
Unfortunately,
Neither apt update nor the armbian-install of the upgraded image can update the U-Boot to v2024.10. It simply is not present anywhere in the upgraded image.
The simplest fix is to download https://dl.armbian.com/nightly/rockpi-s/Trixie_current_minimal
and use it to update the boot loader on the broken apt upgraded image.
You will need some way to mount the broken apt upgraded SDcard on your RockPI-S while the trixie SD-card is loaded. I used a USB sdcard adapter for this.
Then:
0. boot the RockPI-S from the trixie SDcard, insert the USB SDcard adapter
verify the broken image is at /dev/sda
# cd /usr/lib
# source u-boot/platform_install.sh #this is a script used by armbian-install
# write_uboot_platform linux-u-boot-current-rockpi-s /dev/sda
# mount /dev/sda1 /mnt
# mkdir /mnt/usr/lib/original
# mv /mnt/usr/lib/*u-boot* original
# cp -a *u-boot* /mnt/usr/lib
# poweroff
replace the trixie SDcard with the upgraded one
reset
The first 4 steps replace the active bootloader with the one from trixie
The remainder ensures that future armbian-installs will install trixie's v2024.10 bootloader rather than v2022.04
If you have no USB to SDcard adapter you can plug into your RockPI-S,
the procedure above can be run on any Linux box. Just take care to note where it mounts your SDcards, as /dev/sda may be your boot filesystem!