VIM4 have possibility boot-up from : eMMC, TF Card, SPI-Flash
We talking there only about 1st stage SoC boot,
next second stage OS loading possible for any other devices like USB storage's,
NVMe etc … and depends from u-boot configurations
You can change the boot priority of the eMMC and SPI-Flash via the KBI(Khadas Boot Instructions) from u-boot shell
Change boot priority to: TF-Card ⇒ eMMC ⇒ SPI-Flash
kvim4# kbi bootmode w emmc
Change boot priority to: TF-Card ⇒ SPI-Flash ⇒ eMMC
kvim4# kbi bootmode w spi
for apply setting for next boot, need reboot device by RESET button or re-plug power cable or power-off device or reboot via mcu
i2cset -f -y 6 0x18 0x20 1 # setup default eMMC boot-mode
i2cset -f -y 6 0x18 0x20 0 # setup SPI-flash boot-mode
i2cset -f -y 6 0x18 0x91 1
Hold FUNCTION and short press RESET to force boot OOWOW service from SPI-flash, and skip other boot sources
TF-card slot must be empty.