Thank you very much for your reply, Werner - and indeed for all the tremendous work you do!
The drive is listed as an /dev/nvme0n1p1, so I think I did choose the right overlay. Rootfs UUID is correct.
I tested SPI/MTD boot with Armbian 26.2.1, rootfs on NVMe.
I erased and reflashed the SPI flash manually:
``` shell
sudo flash_eraseall /dev/mtd0
sudo dd if=/usr/lib/linux-u-boot-vendor-orangepi5/u-boot-rockchip-spi.bin \
of=/dev/mtdblock0 bs=1M conv=fsync status=progress
sync
```
I then verified that the running system was still using /boot from the SD card:
``` shell
findmnt /boot
```
which returned:
``` shell
/boot /dev/mmcblk1p1[/boot]
```
I mounted the NVMe rootfs and compared /boot on SD vs NVMe:
``` shell
sudo mkdir -p /mnt/nvme
sudo mount /dev/nvme0n1p1 /mnt/nvme
ls -la /boot
ls -la /mnt/nvme/boot
```
The NVMe /boot contents were older/stale compared with the SD /boot, so I synchronized them:
``` shell
sudo rsync -aHAX --delete /boot/ /mnt/nvme/boot/
sync
```
I then powered the board off completely, removed the SD card, and tested booting from SPI + NVMe again but it still won't boot without the SD card.
I watched your video on UART debugging, but unfortunately, my serial cable is too slow, so I'll get one of those you recommend and try again.
Thanks again!