Flashing Firmware Image Files Using The Rockchip Tool

From wiki
Revision as of 12:37, 20 November 2014 by AVRman (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page describes how to install an image to the nand flash of Marsboard RK3066, ie, how to flash the board. You can choose to either flash the whole image (ie, update.img) to the board or just flash the selected partitions. You can download the prebuilt images or from our server the images.


Before you start

Keep in mind that:

   You can always flash the MarsBoard, it never bricks (as the name :)) unless some hardware damage occurs.

What you will need to flash the board is:

  • a MarsBoard RK3066 board
  • a PC running Windows (XP 32/64bit, Windows 7 32/64 bit) or Linux (32/64bit)
  • a micro USB cable with one side plugged in to the OTG port of MarsBoard and the other side plugged into the USB port on PC.


The Windows tool for flashing the image is provided by Rockchip. To flash the update.img, you need to use the RKBatchTool and to flash the partitions, you will need to use RKDevelopTool. Both RKBatchTool and RKDevelopTool rely on the RK USB driver so you will need to install it first as below:

Install driver

There two ways to install the driver under Windows:

  1. install using RKDriverAssistant tools - the easy way
  2. install manually

If you have already installed the USB driver please skip this step.

Install using RK Driver Assistant tools

There’s no need to connect your Rockchip device during this procedure just download and extract RKDriverAssistant.zip Then double click on DriverInstall.exe in the RKDriverAssistant directory to start the utility. If you've previously tried to install the Rockchip USB drivers for any Rockchip devices make sure you click “Uninstall Driver” first.

RK Driver Assistant Install Uninstall.jpg

Then click “Install Driver”, and depending on your version of Windows the Security below may show up twice during installation. Just click “Install”

RK Driver Assistant Windows Security.jpg

when the driver has finish installing then shut down MarsBoard and connect the MarsBoard to your computer and let the board go to recovery mode, then your computer will detect the board and you will see it within device manager.

RK Driver Assistant Install Usb driver.png

Now the driver should have been installed successfully!

Install Manually

Download the file (Rockusb_Driver_v3.7.rar) from here and shut down the MarsBoard then connect the MarsBoard to the computer and let the board go to recovery mode. After your computer should detect the board and you will see an unknown device within device manager.

Flash image 1.jpg

Select the Unknown device then right click and select "Update Driver Software".

Flash image 2.jpg

Select "Browse the computer for driver software".

Flash image 2.5.jpg

Find the file unzipped file you downloaded earlier (Rockusb_Driver_v3.7.rar) and select either the 32/64bit folder then click "OK" to install.

When the driver is installed successful you will then see a Rockusb Device in the device manager window.

Flash image 6.jpg

Now the driver is installed successfully.

Flash Image

There are two methods to flash an image use android tools.

  1. use Download Image (can flash by partitions)

Android tools 1.jpg

  1. use upgrading firmware (flash update.img only, it will erase everything.)

Android tools 2.jpg

Using AndroidTool to flash update.img (Firmware)

Download AndroidTool from here. Then unzip it and double click AndroidTool.exe

Select an image (RK3066 update.img), click Firmware. For information on how to make an update.img see update.img

Power down the MarsBoard and connect the MarsBoard to the computer then let the board go to recovery mode after the program should detect the device.
Android tools 3.jpg

Click the "Upgrade" button to begin flashing and when the flashing process finishes successfully you will see the following interface.
Android tools 4.jpg

If the flashing has aborted ,it could possibly be an error with the update.img, you can either try to redo the operations above or make the update.img again!

Using AndroidTool to falsh image by partition

Download AndroidTool from here. Unzip it the file and double click AndroidTool.exe.

Power down the MarsBoard and connect the MarsBoard to the computer and let the board go to recovery mode then the program will detect it.

Android tools 1.jpg

There are eight selections to choose from so select the correct row and then select the checkbox to the left of the row to select it. After you must click the column on the right side for the path of the file you want to flash. You can then select one or more files and flash them at once. Finally Click "Run" to flash images to the device (the right most selection shows the log of the progress).

If successful the board will disconnect from the tool and boot into the system.

Please Note:

  1. The kernel is contained within the boot.img when you package the image by "./mkimage.sh ota" please see Android Build for more information.
  2. you can flash one of more image at one time as needed

Preparing IDB failed

This happens at upgrading bootloader, if you need to upgrade the bootloader or the update.img contains a new bootloader, you probably will meet this. The marsboard is "bricked". Follow this unbrick instructions to unbrick it.


Rockchip has provided tools for upgrading within Linux (closed source) since Android 4.4. The initial RE work of the Rockchip bootloader updating protocol is by naobsd and has been improved by some in rkflashtool. linuxerwang has made a GUI version of the rkflashtool called rkflashkit.

Warning: both rkflashtool and rkflashkit can not flash the update.img.

Using Linux Upgrade Tool to flash update.img

Download the Rockchip linux upgrade tool here. Unzip it and you will get a file called upgrade_tool which is a binary executable file under Linux.

Flash update.img

Let the board go to recovery mode and run the following command to flash the update.img:

   sudo ./upgrade_tool uf  /path/update.img          #(UF Upgrade Flash)

Lowlevel Format nand

If you have an error with upgrading you can low level format the nand flash first with the following command:

   sudo ./upgrade_tool lf       #(LF Lowlevel Format) This will erase everything on nand

Flash parameter

   sudo ./upgrade_tool di -p /path/parameter    #(DI Download Image)

Flash bootloader

   sudo ./upgrade_tool ul /path/bootloader  #(UL Upgrade Loader)

Flash the boot.img

   sudo ./upgrade_tool di -b /path/boot.img    #(DI Download Image)

Flash the kernel.img

   sudo ./upgrade_tool di -k /path/kernel.img    #(DI Download Image)


There are other commands in the upgrade_tool, such as:

   UL: upgrade the loader
   EF: erease the nand flash

Installing RkFlashKit

In order to install RkFlashKit in Debian or Ubuntu, you need to get the source code, build it,You can download the pre-built rkflashkit here or build it yourself with the following command:

   git clone https://github.com/linuxerwang/rkflashkit 
   cd rkflashkit 
   ./waf debian 

And install it with the following command

   sudo apt-get install python-gtk2 
   sudo dpkg -i rkflashkit_0.1.1_all.deb

Flashing firmware with RkFlashKit

Run it with the following command

   sudo rkflashkit


The tool is similar to RkAndroidTool as it can burn partition images to specific partitions. You’ll need to enter recovery mode just like you would do in Windows, by pressing the recovery button, before powering the device via the USB port, and connect the USB cable to your PC. RkFlashKit should automatically find your device, so you just have to select the correct NAND partition, select the image file to flash, and click on Flash image.

  1. Click the Nand partition and you will see the partitions of the board listed then choose the one you want to flash.
  2. Choose the location of the image you want to flash to that partition.
  3. Click the "Flash image" button and it will start flashing
  4. After it's finished click "Reboot Device" button to reboot the board.

Flash RKBatchTool Firmware File with RkFlashKit

the firmware updates are often distributed using RKBatchTool file format, which can not be directly handled by RkFlashKit. Luckily, there are some other tools available to extract the partitions file from such firmware.

You’ll first need to build rk-tools:

 git clone https://github.com/rk3066/rk-tools.git
 cd rk-tools
 sudo apt-get install libssl-dev libcrypto++-dev

Then use img_unpack tools to unpack the firmware to another format:

 ./img_unpack update_mk908_106j2107_04.img update_mk908_106j2107_04_unpack.img 
 rom header code: 1060000
 rom version: 4.1.1
 build time: 2013-09-07 10:39:22
 chip: 70
 checking md5sum....OK

Finally, run afptool to extract the files from the resulting file into “firmware” directory:

./afptool -unpack update_mk908_106j2107_04_unpack.img firmware Check file...OK

UNPACK -------
 package-file    0x00000800    0x00000242
 RK3188Loader(L)_V1.20.bin    0x00001000    0x0002F8AE
 parameter    0x00031000    0x00000264
 Image/misc.img    0x00031800    0x0000C000
 Image/boot.img    0x0003D800    0x00A2C000
 Image/recovery.img    0x00A69800    0x00BFC000
 Image/system.img    0x01665800    0x1A630000
 backupimage/backup.img    0x1BC95800    0x01665004
 update-script    0x1D2FB000    0x000003A5
 recover-script    0x1D2FB800    0x0000010A
 UnPack OK!

Now that we’ve got our partition files, simply use RkFlashKit as mentioned above.

blog comments powered by Disqus

Personal tools