Maskrom is special internal firmware of RK3399 that run **Rockusb** driver automatically when there is no bootable firmware found on on-board storage such as SPI flash, eMMC or microSD card. On Helios64, there are two ways to enter the maskrom mode: - Disable SPI flash and eMMC according to [Boot Mode Jumper](/helios64/jumper/#boot-mode-p10-p11) and remove microSD card. - Using [Recovery Button](/helios64/button/#recovery-button) Rockusb is a vendor specific USB class from Rockchip to download firmware. This USB device has Vendor ID *0x2207* and Product ID *0x330c*. !!! Info U-Boot has *rockusb* command, but it is not compatible with the Rockchip utilities ## Prerequisites ### RK3399 loader In maskrom mode, SoC initiliazed without DRAM and storage support therefore it need *loader* to initialized DRAM and prepare the flashing environment. Download the loader from [here](/helios64/files/maskrom/rk3399_loader_v1.24_RevNocRL.126.bin) ### Windows !!! Info Latest version of the tools can be downloaded from [Rockchip GitHub](https://github.com/rockchip-linux/tools/tree/master/windows). #### Rockusb driver Download and extract *DriverAssistant_v4.91.zip* from [here](/helios64/files/maskrom/DriverAssitant_v4.91.zip). Run *DriverInstall.exe* under the extracted folder and press *Install Driver*. #### AndroidTools Download and extract *AndroidTool_Release_v2.71.zip* from [here](/helios64/files/maskrom/AndroidTool_Release_v2.71.zip). ### Linux Download prebuilt rkdevelop from [Rockchip GitHub](https://github.com/rockchip-linux/rkbin/archive/master.zip). Extract the downloaded *rkbin-master.zip* file. Copy *rk3399_loader_v1.24_RevNocRL.126.bin* to *rkbin-master* folder. !!! Note - You could also compile it from source by following instructions at [Rockchip Wiki](http://opensource.rock-chips.com/wiki_Rkdeveloptool). - Prebuilt binaries are tested on Ubuntu 18.04 and 20.04 ## Write OS Image to eMMC Using Maskrom **1)** Make sure the system is powered off. **2)** Put jumper cap to P13 to enable it. ![!Jumper P13](/helios64/img/maskrom/jumper_p13_enabled.jpg) **3)** Plug in USB type-C cable to Helios64 and the other side to PC. **4 a)** Disable SPI flash and eMMC according to [Boot Mode Jumper](/helios64/jumper/#boot-mode-p10-p11) and remove microSD card. Power on the system. or **4 b)** Press and hold Recovery button. Power on the system and release recovery button after [System Activity LED](/helios64/front-panel/#helios64-enclosure) blink twice. ### Under Windows **1.** Open Device Manager and verify whether rockusb device is recognized. ![rockusb on Device Manager](/helios64/img/maskrom/rockusb_device.png) **2.** Run **AndroidTool.exe** and check whether there is **Found One MASKROM Device**. ![!AndroidTool Main Window](/helios64/img/maskrom/androidtools_00_main.png) **3.** Press button to load and select following files, - Loader = rk3399_loader_v1.24_RevNocRL.126.bin - Image = OS image to write !!! Warning The image must be Raw image, not in compressed form. ![!AndroidTool Files loaded](/helios64/img/maskrom/androidtools_01_ready_to_download.png) **4.** Checklist both row and press **Run** button. Observer the log textbox. ![!AndroidTool Writing Images](/helios64/img/maskrom/androidtools_02_download_in_progress.png) **5.** The log textbox will show **Download image OK** when finished and system will automatically reboot. ![!AndroidTool Writing Images](/helios64/img/maskrom/androidtools_03_done.png) **6.** Remove jumper on P13, you should have USB Serial connected to your PC. **7.** Continue to [setup the OS through Serial Console](/helios64/install/first-start/). ### Under Linux **1.** Verify whether rockusb device is recognized. ``` lsusb -d 2207:330c ``` It should return something like, `Bus 001 Device 014: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode` **2.** Open terminal under rkbin-master folder. **3.** Send loader to Helios64 `sudo tools/rkdeveloptool db rk3399_loader_v1.24_RevNocRL.126.bin` **4.** Write OS image to eMMC `sudo tools/rkdeveloptool wl 0 /path/to/os_image.img` !!! Warning The image must be Raw image, not in compressed form. **5.** After image writing finished, reset the system `sudo tools/rkdeveloptool rd` **6.** Remove jumper on P13, you should have USB Serial connected to your PC. **7.** Continue to [setup the OS through Serial Console](/helios64/install/first-start/). ## References [Rkdeveloptool - Rockchip Open Source Document](http://opensource.rock-chips.com/wiki_Rkdeveloptool) [Rockusb - Rockchip Open Source Document](http://opensource.rock-chips.com/wiki_Rockusb)