Upgrade firmware

Introduction

This page introduces how to use the Micro USB OTG cable to write the firmware image file on the host into the flash memory of the development board.

Before upgrading, please choose the right way to do it. You can decide it according to your host operation system and firmware type.

Preparation

  • Firefly-PX3-SE development board

  • Firmware

  • Host

  • Micro USB OTG cable

  • There are two kinds of firmware files:

  • Single global firmware update.img, packing the loader, parameters and all the partition images together for firmware release.

  • Multi partition images, such as kernel.img, rootfs.img, recovery.img and etc., are generated during development process.

  • You can find the Released firmware. Please download the firmware package and decompress it. Meanwhile, you can also follow the instruction of Build root filesystem to compile the firmware of your own.

  • Supported host operation systems are as below:

  • Windows XP (32/64 bit)

  • Windows 7 (32/64 bit)

  • Windows 8 (32/64 bit)

  • Linux (32/64 bit)

Windows

In the past, we used the following two tools to upgrade the RK firmware.

  • Mass production tool RKBatchTool,used for upgrading the unified firmware image(update.img).

  • Developer tool RKDevelopTool,used for upgrading partition images respectively.

Later, RK released the AndroidTool tool, adding support for the unified firmware (update.img) based on RKDevelopTool, so only this tool is needed now.

Before using the upgrading tool, please install the RK USB driver first. If you have already installed the driver, just skip to the next step.

Install RK USB driver

Download Release_DriverAssistant.zip and decompress it, and then run the DriverInstall.exe in the above package. To ensure all the devices using the updated driver, please choose “Uninstall driver” first and then choose “Install driver”.

_images/Rk3288_driverassistant_install.png

Device connection

There are two ways to enter the upgrade mode

One way is to disconnect the power adapter and the Micro USB OTG from the device:

  • One end of the Micro USB OTG cable is connected to the host.

  • Press the RECOVERY button on the device and hold the button.

  • Connect the other end of the Micro USB OTG cable to the device.

  • Wait for about 2 seconds and release the RECOVERY button.

Another way is to disconnect the power adapter and the Micro USB OTG cable is also connected.

  • Connect the device and the host with the Micro USB OTG cable.

  • Press the RECOVERY button on the device and hold the button.

  • Short press the RESET button.

  • Wait for about 2 seconds and release the RECOVERY button.

The host will tell you that the new hardware is discovered and the driver is configured. Open the device manager and you will find the new device “Rockusb Device” listed. If not, you need go back to the last stept to reinstall the driver and try again.

_images/Rk3288_xp_devicemanager.png

Upgrade firmware

Download AndroidTool and decompress it. Run AndroidTool.exe under AndroidTool_Release_v2.33 directory.(Note: if your host operation system is Windows 7/8, you need right click the mouse to run the application as administrator), as shown in the following figure._images/loader.png

Upgrade the unified firmware: update.img

The steps to upgrade the Unified firmware are as below:

  1. switch to the Firmware upgrade page.

  2. select the Firmware button to choose the firmware you want to upgrade and open it. The upgrade tool will list the detailed firmware information.

  3. click the Upgrade button to start upgrading firmware.

  4. if the upgrading failed, you can click the Erase Flash button to erase the flash and try to upgrade the firmware again.

Note: if the loader version of the firmware that you want to upgrade is different from the former one on the device, please click the Erase Flash button before you upgrading the firmware.

_images/Fireprime_android_tool_burn_update.png

Upgrade partition image

The steps to upgrade partition image are as below:

  1. switch to Image download page;

  2. select the partition(s) you need to upgrade (you can choose more than one partitions).

  3. make sure that the image file path is correct. If needed, you can click the blank table cell in the right of the path to rechoose the path.

  4. click the Execute button to start upgrade. Once finished, the device will restart automatically. _images/loader.png

Linux

RK provides a command line tool upgrade_tool under Linux, which supports to upgrade the unified firmware image and also the partition image.

While there are two open source tools for you to choose:

Both of the above two tools support partition image upgrade but not support unified firmware image upgrade. rkflashtool is a command line tool while rkflashkit has a friendly GUI and is also supported with command line tool. We will only introduce rkflashkit in the next part.

Under Linux, you don’t need to install any device drive. Just refer to the chapters in Windows to connect to the device.

upgrade_tool

Download Linux_Upgrade_Tool and installed into the system as follows, easy to call:

unzip Linux_Upgrade_Tool_v1.24.zip
cd Linux_UpgradeTool_v1.24
sudo mv upgrade_tool /usr/local/bin
sudo chown root:root /usr/local/bin/upgrade_tool

Upgrade the unified firmware: update.img

sudo upgrade_tool uf update.img

Upgrade partition image:

sudo upgrade_tool di -b /path/to/boot.img
sudo upgrade_tool di -k /path/to/kernel.img
sudo upgrade_tool di -s /path/to/system.img
sudo upgrade_tool di -r /path/to/recovery.img
sudo upgrade_tool di -m /path/to/misc.img
sudo upgrade_tool di resource /path/to/resource.img
sudo upgrade_tool di -p paramater   #upgrade parameter
sudo upgrade_tool ul bootloader.bin # Upgrade bootloader

If error occurs during the upgrading progress due to flash problems, please try to execute a low-level formatting to erase the flash:

sudo upgrade_tool lf   # low-level fomat
sudo upgrade_tool ef   # erase format

rkflashkit

Install:

sudo apt-get install build-essential fakeroot 
git clone https://github.com/linuxerwang/rkflashkit
cd rkflashkit
./waf debian
sudo apt-get install python-gtk2
sudo dpkg -i rkflashkit_0.1.4_all.deb

GUI:

sudo rkflashkit

_images/Fireprime_rkflashkit.png

Command lines:

$ rkflashkit --help
Usage:  [args] [ [args]...]

part                              List partition
flash @    Flash partition with image file
cmp @      Compare partition with image file
backup @   Backup partition to image file
erase  @               Erase partition
reboot                            Reboot device

For example, flash device with boot.img and kernel.img, then reboot:

sudo rkflashkit flash @boot boot.img @kernel.img kernel.img reboot

There are examples of use in the help information. It can be seen that one command can burn multiple image files and restart the device. It is a good news for developers who need to compile and burn kernel image frequently.

FAQ

How to enter into MaskRom mode by force

If you fail to make the board enter into Loader mode and it is invalid to boot the SD card, you can try to enter into MaskRom mode by force. Please refer to the article MaskRom Mode for details.