Flash the RPU
Write the Asimov RPU image to the Radxa CM5 onboard storage.
The RPU has no microSD card slot. Flash its onboard storage over USB-C while it is in MaskROM mode.
Install the Flashing Tool
On Ubuntu 22.10 or newer and current Debian:
sudo apt install rkdeveloptool
rkdeveloptool -VIf the package is unavailable, build it from source:
sudo apt install -y libudev-dev libusb-1.0-0-dev dh-autoreconf pkg-config build-essential git
git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool
autoreconf -i
./configure
make -j"$(nproc)"
sudo cp rkdeveloptool /usr/local/sbin/
rkdeveloptool -VUse sudo with the flashing commands below.
Install rkdeveloptool with Homebrew:
brew tap IgorKha/rkdeveloptool
brew install rkdeveloptool
rkdeveloptool -VIf the tap is unavailable, build from source:
brew install automake autoconf libusb pkg-config gcc@15
git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool
autoreconf -i
CXX=/opt/homebrew/bin/g++-15 ./configure
make- Download DriverAssistant v5.14 from Radxa, extract it, and run
DriverInstall.exeas administrator. - Download and extract RKDevTool v2.96.
- Install 7-Zip to decompress the
.img.xzimage. - Follow Radxa's RKDevTool guide after entering MaskROM mode.
Enter MaskROM Mode
The order matters: hold the MaskROM button before the RPU first receives power, and connect power last.
- Connect the data-capable USB-C cable between the laptop and the RPU USB-C port.
- Hold the RPU MaskROM button.
- While holding the button, connect battery power to the RPU.
- Release the button.
- On macOS or Linux, run:
rkdeveloptool ldThe result must include Mode=Maskrom. On Windows, RKDevTool must show Found One MASKROM Device. If the device is missing, disconnect power, check that the cable carries data, and repeat the sequence.
Write the Image
Rename rk3588_spl_loader_v1.15.113.bin to rk3588_spl_loader.bin, then run:
rkdeveloptool db rk3588_spl_loader.bin
xz -dk asimov-rpu-<version>.img.xz
rkdeveloptool wl 0 asimov-rpu-<version>.img
rkdeveloptool rdThe loader command must report Downloading bootloader succeeded, the write must reach 100%, and reset must report Reset Device OK.
Rename rk3588_spl_loader_v1.15.113.bin to rk3588_spl_loader.bin, then run:
rkdeveloptool db rk3588_spl_loader.bin
xz -dk asimov-rpu-<version>.img.xz
rkdeveloptool wl 0 asimov-rpu-<version>.img
rkdeveloptool rdThe loader command must report Downloading bootloader succeeded, the write must reach 100%, and reset must report Reset Device OK.
Decompress the .img.xz with 7-Zip. In RKDevTool, load rk3588_spl_loader.bin as the loader and the decompressed asimov-rpu-<version>.img as the image, then start the write.
Writing takes several minutes. When it finishes, reset the RPU and remove power.
How is this guide?