I think I managed to pick again a challenging project and board combination, although I thought I learned my lessons from the previous ones...
Board is: Radxa Rock 3B
version: latest 24.10.0 (vanilla EXT4 image from the firmware-selector page)
I have also updated the SPI Image using the Radxa suggested steps and their latest loader + image)
The goal is to have Openwrt boot from NVME and install dockerman to run a handful of dockers that are essential to the network at the same level as the router/wifi. Adguard,(which will be an openwrt installed "plugin" and not a docker), HomeaAssistant, Unifi controller(s), Uptime Kuma, Wireguard site to site VPNs.
At the moment I am able to boot from SD card and run everything, but not from nvme. No matter what I try.
So my question is.. How does one get the board boot OpenWrt from Nvme?
I am lost at the moment and can't really grasp where should I attack the problem... Is it the "radxa loader", the SPI Image or U-boot
I followed the BSP framework that Radxa provides, but the result is a 2023/10 U-boot. from the serial output I can see, that with an SD card present the system picks up and starts the u-boot from that which is a 2024.10-OpenWrt version.
There is a lot of information in that Radxa 3 forum where you already posted (and got a reply): https://forum.radxa.com/t/spi-image-with-current-u-boot/20085/9 Are you able to NVMe boot with another supported OS, like Armbian or Debian? If not, then you probably should try changing either the power supply or the NVMe, as suggested in the posts over there by "t4_4t" and "devon".
I was able to boot with armbian, but that state (spi+uboot) was not able to boot the Openwrt image from the nvme.
The only way I was able to manage to boot from nvme:
flash the emmc (or sd card) and the Nvme with the same image
change the UUID for the 2nd partition of the NVME
edit the boot.scr on the first partition of the emmc to hardcode the changed UUID of the NVME in the bootargs line (instead of root=PARTUUID=${uuid} I swapped out the ${uuid} with the changed UUID of the nvme)
resized the 2nd partitions on both the nvme and the emmc to max size.
This way the system initiates boot from the emmc, but makes the nvme as the root partition... janky in my opinion, but it works for now.
I presume the spl is too out of date (2023.10) compared to the latest uboot 2024.12. (which is used in the Openwrt image) but I feel like I am missing a puzzle here.
For now I will be testrunning the system with the emmc+nvme method as a proof of concept.