How to flash firmware to Rockchip devices in Windows and Linux (2021 Edition)

We’ve written several articles detailing methods to flash firmware to Rockchip devices in Windows or Linux over the years, with tools like RKAndroidTool, RkFlashKit, upgrade_tool, or the open-source rkdeveloptool utility. This is mostly useful to flash another OS or if the device does not boot, as most products will now support OTA firmware updates.

But following my review of Zidoo M6 with Android 11, I’ve now got a Linux image for the Rockchip RK3566 mini PC, so let’s revisit the firmware flashing methods in 2021. Zidoo sent me instructions for Windows, but since I’m a Ubuntu user, I flashed the firmware with the Linux tools used by Firefly. The same methods should work for the older processors such as RK3066, RK3288, and RK3399, besides the more recent Rockchip RK3566 and RK3568 processors.

How to flash Rockchip firmware in Linux

[Important update: If your device comes with both eMMC flash and SPI flash, you may want to use the Windows tool instead to avoid bricking your device. See Willy’s comment for details]

We’ll need the firmware file (update.img) and the upgrade_tool utility downloaded from the Firefly website. Then we’ll need to enter the Loader mode to flash the image.

To do so, connect the USB OTG port from the board to your PC, press the boot/recovery button from your board, mini PC, or TV box (I used a SIM card tool here), and connect the power, wait one or two seconds and release the button. The first time, I thought connecting the power adapter first, pressing the recovery button, and inserting the USB cable would work too, as I got the following output from the dmesg:


I thought it meant the box was properly detected, but I could not upgrade the firmware.


So it’s important to press the recovery button before powering up the device or board, and we can see it shows as a “USB download gadget”


In this mode, I had no trouble to flash the board:


Connecting the mini PC is a TV confirmed everything worked as planned.

The Android 11 firmware was replaced by a Linux image with Qt. It’s basically the same method as in previous years, and it works without too many difficulties for me.

Rockchip firmware update in Windows

I have not personally tried the Windows version, but I’ll share the method Zidoo provided me in a Word file. Updating firmware on Rockchip hardware in Windows requires a bit more effort than the Linux method with driver installation and a graphical utility to perform the firmware update. You can download both on Mega in a single ZIP file called M6 Flash Tool.zip.

The latest version of USB DriverAssitant can be found in the ZIP file in /Flash Tool/PC Drive/DriverAssitant_v5.1.1.zip, while FactoryTool.exe is located in /Flash Tool/Flash Tool/FactoryTool_1.72.4. Extract DriverAssitant and run DriveInstall.exe executable to install the proper drivers.

Now extract FactoryTool run the program, optional change the language, and load the update.img image with the Firmware button on the top left corner.

Now we need to connect the Rockchip device to the computer with a USB cable (USB OTG from board to a USB port on the computer), and enter the Loader mode as per the same method detailed in the Linux section, which involves pressing the recovery button and connecting the power.
A “Loader” type device should be detected in FactoryTool, and we can now press the Run button to perform the update…

That’s it.

Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

10 Replies to “How to flash firmware to Rockchip devices in Windows and Linux (2021 Edition)”

    1. Yes. The same tools are used for all Rockchip devices, but the firmware file is different for each device.

      I’ve currently “bricked” my Zidoo M6 by flashing the Ubuntu 20.04 firmware for Firefly RK3566 mini PC, and it will not show as a USB device anymore. Normally, it’s possible to enter maskrom mode (code from the read-only ROM inside the processor) to get USB OTG working again, and flash another firmware. The maskrom mode makes the Rockchip device unbrickable, I’m just waiting for Zidoo to provide the method, usually a switch on the board, or shorting some pins.

  1. Note, the procedure will vary depending on available storage. The Linux versions of the flashing utilities do not allow you to select the target device, and in my case, I bricked two Station-M2 devices by applying the exact documented procedure, just because apparently the eMMC image was sent to the NOR, which resulted in confusing the ROM code, preventing from detecting the NOR when booted from SD, thus not being able to erase it anymore. Once in this situation, even the Windows utility failed with timeouts. I could recover only one of the two by pure luck. I started to seriously doubt about the device being physically damaged at some point. The firefly team replaced the remaining faulty one, and confirmed the hardware was OK and that it was “only” a problem of image flashed at the wrong place. Sadly I don’t think there is any solution to this problem for now given how limited the linux tools are, so in short if you buy an RK3566 device which contains both NOR+eMMC, either use the Windows utility, or if like me, you do not have this OS, ask for the device to be sent pre-flashed with at least a working boot loader! BTW the Station-M2 probably is the coolest ARM board I’ve had, but now I know I won’t upgrade it anymore, by fear of bricking it again!

    1. I thought Rockchip hardware was unbrickable as there’s a bootROM in the chip, so if something goes wrong it’s always possible to switch to USB OTG mode from the bootROM.

      In my case, I’ll have to short some pins connected to the eMMC flash, but indeed if there’s an SPI flash, it might be tricker.

      1. It was still possible to boot off micro-SD but from there there was no access to the SPI. And the image they used to provide was only in the crappy Rockchip’s proprietary format, so you couldn’t simply flash the eMMC from a valid working image. In short, in order to use the vendor’s image, you needed to open it via the stupid tools that tried to write it to the NOR, and once the machine booted to a boot-loader or kernel, these ones didn’t detect it to allow to fix it. Trying to erase it from the stupid tools would timeout.

        1. By the way I suspect that simply desoldering the NOR would have fixed everything but I didn’t want to hack on it before a possible RMA 🙂

    2. The really is a need for a protected software area on today devices, a software boot to bios feature, so as to reduce bricked devices.

      1. I agree. Ideally boot loaders ought to always be pre-loaded to ease the deployment of any other OS. That’s what EFI based firmware do, but they come with their own other set of problems 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

Advertisement
Advertisement