Is there any way that I can get the Rock Pi 4 to boot from a USB drive (even though there is an eMMC drive)? I want to re-image the eMMC drive without pulling the system apart if possible.
not 100% sure but the boot loader, over the UART, should come up before the kennel / os is loaded.
You should be able to press space (or as prompted) then use that to boot from usb.
Pretty sure the Armbian boot loader works like this, there might even be a
usbboot command that can be run that will automatically load the kernel from a usb drive.
The other option is to overwrite the boot partitions on the eMMC which will allow the system to be used in USB device mode will not work. See Install from USB OTG port
It is really important that you overwrite the boot partition / partition table otherwise you will be stuck without a boot loader and/or a system that is unusable, i.e. unable to use USB device mode.
I have used
dd if=/dev/zero of=[INSERT_EMMC_DEVICE] bs=1M count=100
Also the SD can would take precedence over the eMMC for booting, so perhaps that is an option.
it is possible to boot from emmc/sdcard with switching to the root section usb-hdd/nvme.
you need to transfer the current system to usb-hdd/nvme by changing the root drive in /etc/fstsb and on the boot emmc/sdcard specify the new root section.
/dev/nvme0n1p1 on / type xfs (rw,noatime,nodiratime,errors=remount-ro)
/mnt/mmc/boot on /boot type none (rw,bind)
Ok, so nobody has actually answered the question.
The question asked is (actually); how do you change the boot priority of USB up higher than the eMMC so that when you plug a bootable USB in, it will choose to boot that before the bootable eMMC.
The answer is that the boot priorities are fixed in hardware, which means that the only way to reset boot priorities is by intersecting the boot at an even higher priority boot device, which (somebody correct me if there is an error), is ordered as NVM (if present) --> SDCARD --> eMMC --> USB.
In other words, you can install a bootloader on the NVM (if exists) or the SDCARD, which then boots the next device in whatever priority you choose.
However, I think an easier way to accomplish what OP wants to accomplish, is to forget about the USB and just use an SDCARD, which is already prioritized higher than eMMC. That’s what I do – when I want to re-image the eMMC, I use a bootable sdcard with ubuntu and dd the new image onto the eMMC. If OP needs a USB interface on the other side to write the image (most laptops and some desktops have sdcard sockets, so this is unlikely), a USB-SD adapter can be obtained for about $5.
In the end, I used an SD card. I did need to open up the case, that was all.