Flash the RPU
Install the flashing tool, enter MaskROM mode, and write the image to the Radxa CM5.
The RPU has no SD card slot — you flash its onboard storage over USB-C, with the board in a special MaskROM mode.
2.1 Install the flashing tool
The tool differs by operating system. Windows uses a graphical tool; macOS and Linux use a command-line one. Open the section for your computer.
On Ubuntu 22.10 or newer, and current Debian:
sudo apt install rkdeveloptoolOn older distributions the package may not exist, in which case 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/Check it worked:
rkdeveloptool -VNo driver is needed. You will need sudo for the flashing commands.
Install via Homebrew — no compiling required:
brew tap IgorKha/rkdeveloptool
brew install rkdeveloptoolIf you encounter an untrusted tap error:
Error: Refusing to load formula igorkha/rkdeveloptool/rkdeveloptool from untrusted tap igorkha/rkdeveloptoolFix it via the recovery instructions and run:
brew trust igorkha/rkdeveloptoolCheck it worked:
rkdeveloptool -VIf the tap is unavailable, build from source instead:
# We must use g++ on MacOS when building
brew install automake autoconf libusb pkg-config gcc@15
# Clone and build
git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool && autoreconf -i && CXX=/opt/homebrew/bin/g++-15 ./configure && makeWindows uses RKDevTool, a graphical tool, plus a USB driver. Both come from Radxa:
- Download and extract DriverAssistant v5.14, then run
DriverInstall.exeas administrator. Without this driver Windows will not recognise the board. - Download and extract RKDevTool v2.96, then launch
RKDevTool.exe. - You will also need 7-Zip to decompress the
.img.xzimage into a plain.imgbefore flashing.
The commands in Step 2.3 below are for macOS and Linux. For the RKDevTool click-through, follow Radxa's RKDevTool guide — with the board in MaskROM mode (Step 2.2) it will show “Found One MASKROM Device”, and you write the loader and image from there.
If you have access to a Mac or Linux machine, we recommend using it — that is the path we test against.
2.2 Put the board in MaskROM mode
The order matters — the button must already be held down when the board first receives power. Connect power last.
- Plug the USB-C cable from your laptop into the CM5's USB-C port.
- Hold down the MaskROM button on the board.
- While still holding it, connect battery power to the RPU.
- Release the MaskROM button.
- Confirm the laptop sees it:
rkdeveloptool ld
You should see Mode=Maskrom. For example:
DevNo=1 Vid=0x2207,Pid=0x350b,LocationID=202 MaskromIf the list is empty, re-seat the cable and repeat — the button must be held as the board is first powered, and the cable must carry data.
2.3 Write the image
The bootloader file rk3588_spl_loader.bin is the rk3588_spl_loader_v1.15.113.bin you downloaded in Step 1 — rename it to match, or use its full name in the commands below. Writing takes a few minutes.
When it finishes, unplug the USB-C cable and remove the battery power.
rkdeveloptool db rk3588_spl_loader.bin
# You should see: Downloading bootloader succeeded.
xz -dk asimov-rpu-<version>.img.xz
rkdeveloptool wl 0 asimov-rpu-<version>.img
# The write process will begin. After a few minutes it will reach:
# Write LBA from file (100%)
rkdeveloptool rd
# You should see: Reset Device OK.On Linux these need sudo. The xz -dk line decompresses the image and keeps the original; the write itself needs the plain .img.
In RKDevTool, with the board showing “Found One MASKROM Device”, load rk3588_spl_loader.bin as the loader and the decompressed asimov-rpu-<version>.img as the image, then start the write. Step-by-step screens are in Radxa's RKDevTool guide.
Decompress the .img.xz with 7-Zip first — RKDevTool cannot read the compressed file.
How is this guide?