Preliminary installation guide for RK3588 boards

This page will soon be moved to the docs subdomain.
Support for these boards will come in a future version of the WoR imager, rendering most of the steps here unnecessary.

Disclaimer

This guide and software presented here are provided "as is", without warranty of any kind. We're not responsible for any damage caused to your devices by following the steps below.

Introduction

We've recently started working on support for the new RK3588 series of Arm SoCs from Rockchip. It may be the first ever series that provides desktop-class performance and I/O on affordable single-board computers.

Hardware support

This is still in its early stages, with the following platforms being officially supported at the moment:

Other similar boards may work too, but there might be unexpected issues. If you're an SBC maker and would like official support for your board(s) in this project, please Contact us.

What works:

  • Single HDMI display output limited at 1080p 60Hz, desktop and apps are software rendered (though video playback is surprisingly smooth at 720p or even 1080p full screen, with minimal tearing and dropped frames)
    • on ROCK 5B it's the one near the USB-C port.
  • USB 3 ports (Type-A and Type-C in host mode), including USB boot, networking and other peripherals with ARM64 native drivers.
    • on ROCK 5B and Orange Pi 5, the top USB 3.0 Type-A port only supports SuperSpeed (3.0) devices (so mouse & keyboard won't work). The other USB 3 ports are limited to 2.0 speeds.
    • on Indiedroid Nova, both USB 3.0 Type-A ports only support SuperSpeed (3.0) devices. It is possible to connect USB 2.0 / 1.1 devices with an USB-C OTG dongle.
  • UART serial console for debugging or EMS & SAC.
  • eMMC Modules with the driver at https://github.com/worproject/Rockchip-Windows-Drivers/releases

What doesn't work:

  • USB 2.0-only ports (depending on how they're wired up internally, for instance the vertically mounted USB 2.0 port on the Orange Pi 5 is shared with USB 3 on the Type-C and so it does work)
  • Proper CPU frequency scaling. Cores are now set to their maximum frequency (1.8 GHz on little cores, 2.4 GHz on the big ones), but Windows reports lower values.
  • Some USB 3.0 SATA to USB enclosures or drives using the following chipsets have been reported to not work. Your mileage may vary.
    • VIA VL711
  • Everything else (PCIe, SATA, SDIO, GMAC Ethernet, Audio (I2S), Display management (incl. DP alt mode), GPU acceleration, NPU, video decoders, GPIO, PWM, SARADC, I2C, SPI, etc.)

Full status can be found at https://github.com/worproject/Rockchip-Windows-Drivers#hardware-support-status

There's no Estimated Time of Arrival (ETA) for anything yet, though we're actively working on improving Rockchip's UEFI and enabling more peripherals with each release.

Prerequisites

You need:

  • one of the supported boards above
  • a power supply that can provide 5V with at least 3A.
  • an HDMI display that supports at least 1080p. Could also be an active HDMI to DP or VGA adapter.
  • an empty USB drive or SD card through an USB card reader of at least 16 GB with decent random I/O performance (SSD highly recommended, avoid really cheap USB 3 sticks, they're likely to be too slow for this). It will be your OS boot drive.
  • given the limited number of USB ports currently working, an USB hub is also recommended.
  • Windows or Linux machine to prepare the board and installation media on

Installation from a Linux computer

There's a script that will guide you through the installation: https://github.com/buddyjojo/workli (thanks to @buddyjojo)

Installation from a Windows computer

Preparing the board

We need to flash an UEFI firmware image to our board, so that it will start behaving almost like a regular desktop PC.

Some of the boards (check product specs) include NOR memory which can hold both the firmware and user settings (like boot order).

If your board doesn't come with such memory, the firmware can be flashed with balenaEtcher / RPi imager / dd and booted off an SD card or EMMC module instead.

These steps need to be performed only when the UEFI is not yet installed or there's an update for it on Github.

1. Install the rkdevtool utility and driver using this guide: https://wiki.radxa.com/Rock5/install/rockchip-flash-tools
2. Download the following files:
3. Open rkdevtool and select the files downloaded above:

Select the indicated empty spaces (they're actually open file dialog buttons).
Choose spl_loader .img as the "Loader" and the UEFI .img as the "Image".

rkdevtool_selbinssimpl

Make sure SPINOR is selected for the Storage field of the "Image" (double-click and then click on the drop-down arrow to change).
You can also choose SD or EMMC instead (if your board doesn't have onboard SPI NOR), but then the image will be stored there and not in the onboard memory.

The Write by Address checkbox below Run must also be checked.

4. Connect the board to your computer via USB while holding the MASKROM button.

Check documentation of your board to see where this button is located. It's usually printed on the board too.

You may need to provide external power to the board if the USB-C data port cannot accept it (as is the case with Orange Pi 5).

The status in RKDevTool should change from No Devices Found to Found One MASKROM Device. If this is not the case, double-check that you've installed the correct drivers, make sure you're pressing the MASKROM button before powering the board, try another USB data cable.

5. Click on the Run button and wait for the image to get flashed

The process is done when the last log is "Download image OK" and the device restarts by itself, thus exiting MASKROM mode.

Preparing the Windows installation media

Since we've made our board act like a PC now by flashing an UEFI, it is very possible to create an installation USB by copying the contents of a regular Windows on Arm ISO to a FAT32 formatted USB drive (or using a tool like Rufus) and perform the installation as usual on a secondary USB drive. TPM, SecureBoot and RAM checks may need to be bypassed with regedit.

However, as we only have 2 or 3 USB ports (without a hub) to work with, it can be impossible to connect two USB drives, mouse and keyboard at the same time. We're going to perform the installation from another computer instead.

1. Get a Windows on Arm image

See the Getting Windows images guide. The maximum build number limitation for Raspberry Pi does not apply here as RK3588 meets the minimum CPU requirements of Windows 11 Arm.

2. Download the Windows on Raspberry imager

Ignore the name, we'll change it in the next version. You can get it from the Downloads page.

3. Plug in an USB drive as described in the Prerequisites
4. Extract the previously downloaded imager tool, run it and follow the wizard

Select Raspberry Pi 3 as the Device type. It will install some 3rd party drivers and boot files but those don't have any effect on other boards.

5. Once the imaging process is done

Disconnect the USB drive and connect it to the only USB port on the board that supports SuperSpeed as described in Hardware support - What works.
Also connect a keyboard and/or mouse to the other working ports, the HDMI display and you're ready to power on the board for the first time.

Windows should now do the rest of the installation process and take you to the out-of-box-experience (OOBE) setup screen where you can configure the OS as you like.

Latest Windows 11 requires an internet connection in OOBE. To skip that, press Shift + F10, type oobe\bypassnro and enter.

That's all!

If you have questions or issues

Join our Discord server.
A few of the frequently asked questions here also apply to Rockchip boards.