Rockchip RK3066/RK30xx Processors Documentation, Source Code and Tools

Rockchip RK3066 (part of RK30xx family) is a Chinese dual ARM Cortex A9 SoC targeting multimedia products such as tablets (e.g. Cube U30GT), mini PC (e.g UG802, MK808) and in theory set-top boxes, but I can’t find any products based on this Rockchip processor. It seems mini PCs/ HDMI TV sticks have taken over this market.

RK3066 Processor

The processor features two ARM Cortex A9 clocked at up to 1.6 Ghz with a quad core Mali-400MP GPU. It can support 1080p (3D) encoding/decoding, provides HDMI 1.4a, VGA, composite, component and LVDS video outputs (Dual display support),  USB 2.0 Host and OTG ports, a MAC interface (Ethernet), and much more…

RK3066: Dual core Cortex A9, Video encoder/decoder, JPEG decoder/encoder, Peripherals
Rockchip RK3066 Block Diagram (Click to Enlarge)

Here are the key features of Rockchip RK3066 processor:

  • Dual Core A9 + Quad Core Mali-400MP GPU
  • 2 banks, 8/16 bit Nor flash / SRAM interface
  • 8 banks, 8/16 bit async NAND flash, LBA NAND flash and 8-bit sync ONFI NAND flash, all up to 60-bit hardware ECC
  • 2 GB space for 2 ranks, 16-bit / 32-bit DDR3-800, LPDDR2-800 and LVDDR3-800
  • 3 channels SD/MMC interface to support MMC 4.1 and SD3.0
  • 2 channels TFT LCD interface with 5 layers and 3D display with resolution up to 1920×1080
  • HDMI 1.4 to support 1080p@30 3D video
  • 2 channels 8-bit CCiR656 interface and 10-bit/12-bit raw data interface
  • Audio interfaces: 2 x 2ch  I2S/PCM, 1 x 8ch I2S/PCM interface and SPDIF interface
  • 1x USB OTG 2.0 interface and 1x USB 2.0 Host interface
  • 10/100M RMII interface
  • High-speed ADC interface and TS stream interface
  • Peripheral I/F: 5x I2C, 4x UART, 2x SPI and 4x PWM.
  • Video decoder supporting MPEG-1, MPEG-2, MPEG-4,H.263, H.264, AVS, VC-1, RV8/RV9/RV10, VP6/VP8, Sorenson Spark and MVC codecs.
  • Video encoder supporting H.264 ([email protected], [email protected], [email protected]), MVC and VP8
  • JPEG decoder/encoder

The chip contains a 10 KB internal bootROM that support system boot from 8bits/16bits Async Nand Flash, SPI0 interface and eMMC interface. So if you were expecting to be able to boot from SD card like for AllWinner A10, you’re out of luck. The ROM also supports system code download by USB OTG and  UART0 in CPU system.

Rockchip usually provides close to zero information about their processors on their website, so most of the information must be gathered from videos, blog articles or leaked documents.

RK3066 Development Boards and Documentation

Rockchip does appear to have some development boards, but I could not find any information apart from the picture below (Source) which shows RK3066 set-top-box reference design board. There must also a MID (Tablet) reference design since the schematics (below) have been leaked ,as well as smartphone development boards as there are mentioned in the source code.

rk3066_box_v1.0 development board
Rockchip RK3066 Set-top Box Reference Design

Documentation is sparse by there’s at least 3 interesting documents that have been leaked (found via ArmTvTech Forums):

  • RK30xx_TRM_Rev2_0_p25_38.pdf – Page 25 to 38 extracted from RK3066 Technical Reference Manual (TRM) revision 2.0 just showing the detailed features of the processor. Better use RK3066 datasheet brief below that contains the same information (and more) and is searchable.
    [Update: You can now download the full Technical Reference Manual (1422pages): https://www.dropbox.com/s/80ubbvgou4g3bmk/Rockchip%20RK30xx%20TRM%20V2.0.pdf]
  • RK3066_MID.pdf – Schematics for RK3066 reference tablet (RK3066_REF_2CELL). See block diagram below.
  • RK3066_datasheet_brief.pdf – RK3066 “datasheet” (46 pages) giving a detailed description of the processor processor features,  pinout and electrical characteristic. Don’t expect to find any information about registers in this document.
RK3066 MID Block Diagram (Click to Enlarge)

This documentation is good if you want to better understand the features of the processor, find the connection on the boards (e.g. UART), but unfortunately they do not help much when it comes to software development.

RK3066 Linux Kernel Source Code

Rockchip and the companies developing products based on their processors usually drag their feet to release the GPL source code. bq, a Spanish company, appears to be the first company to release the GPL source with RK3066 devices, more exactly their bq Edison and Edison 3G tablets.

They released the source as a tarball (GPL_Edison.tar.gz), but omegamoon imported the code to his github account, and added what’s necessary to build the kernel for MK808 mini PC. Please note that only the Linux kernel source code was released, and apparently the bootloader and no part of Android fall under the GPL license…

As the .config in the root directory is for MK808 at the time of writing, I gave it a try as follows:


and was able to build the code successfully on a Debian Wheezy 64-bit build machine. The first time it actually failed because uuencode utility was missing. If you encounter the same issue you can install it with apt-get:


I did not try the kernel since I don’t have RK3066 hardware, but the guys at ArmTvTech appeared to be successful.

I always interesting to look in arch/arm/configs to see what configs are available for a given platform:

  • rk30_sdk_defconfig – RK30 SDK board (Apparently a tablet board)
  • rk3066_sdk_defconfig – RK3066 SDK board. Basically the same as above except a different gyroscope and a different WiFi (memory?) option are used.
  • bqEdison_defconfig – This is the configuration file for bq Edison tablet

In the KConfig we can also find some other hardware (mobile phone boards), but no defconfig files are using those in the source code released:

  • RK30 smart phone board (MACH_RK30_PHONE)
  • RK30 smart phone loquat board (MACH_RK30_PHONE_LOQUAT)
  • RK30 smart phone a22 board (MACH_RK30_PHONE_A22)

Since we now have the source code, and some people have started to work on a Linux port, but this will certainly take some, and don’t expect GPU acceleration ever on RK30xx Linux. And the lack of SD card boot capability really makes it a pain, since you’ll have to choose Linux over Android and vice versa. However, this kernel has already been useful for Android as some kernel modules have been build for MK802/UG802 (e.g. Bluetooth)

RK3066 Tools

There are also some tools available for RK29xx & RK3066 (rktools) mainly to modify ROMs which you can retrieve and build as follows:


This will generate 4 tools:

  • afptool – Tool to unpack and pack the firmware files
    Command line:
    • afptool -pack xxx update.img
    • afptool -unpack update.img xxx
  • img_maker – Tool to create rkimage files (and it seems to convert the old firmware format to the new firmware format)
    Command line: img_maker [-rk30|-rk29] [loader] [major version] [minor version] [subversion] [old image] [out image]
  • img_unpack – A tool to unpack (new format) firmware images
    Command line: ./img_unpack <source> <destination>
  • mkkrnlimg – Tool to pack and unpack Kernel images (Also part of omegamoon github account in binary form).
    Command line: ./mkkrnlimg [-a|-r] <input> <output>

Another tools call rkflashtool can be used to reflash the NAND. The source code is here, and it’s for RK29xx / RK28xx processor, but RK3066 modding instructions are available. “This tool uses a low level protocol supported by the internal bootloader of the RK processor. Because of that, this tool doesn’t need anything to be present on NAND flash, and can be used to successfully reflash bricked tablets”. See Arctablet for details.

Finally Romdump allows you to dump RK3066 ROM to an SD card, check Vondroid for details.

Sorry, if the usage for each tool is not very clear, but it’s just not obvious to me either, and I could not find a wiki or tutorial to use them. So if any reader has already worked with those, better descriptions or links to tutorials/wikis are welcome.

Update:

A new tool called imgRePackerRK is available for download for both Windows and Linux. AFAIK the source code is not public. This tool is still interesting as it will allow you to extract the content of firmware files, for example to extract recovery.img, system.img, etc,, and flash a new firmware via rkbatchbool. I’ve tried to extract a firmware for MK908 (RK3188) and it works.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
31 Comments
oldest
newest
AndrewDB
AndrewDB
11 years ago

Hmmm, it seems this post generated so much traffic on the armtvtech forum that the site was suspended.

deadhp1
deadhp1
11 years ago

Actually what killed my website armtvtech.com is the UG802 JB preview firmware update that I built and uploaded to my server. I had over 500 downloads in under 24 hours, some linked directly to my file from some other forums. I also had over 1000 downloads for the MK808 beta 2 firmware at the same time. This led to using close to 500GB in under 24 hours. So I was suspended for using too much bandwidth. The site should be back up and running by tomorrow, but I will have to reupload my firmwares to free file servers. That’s the… Read more »

AndrewDB
AndrewDB
11 years ago

@deadhp1
Well, if it’s any consolation, I wrote to the company that hosts your website explaining what a great service you were doing for the community.

deadhp1
deadhp1
11 years ago

Thanks a bunch!
When the forum is back up I’ll be asking for input on what file hosts people would like me to upload to.
I’d put the files on torrents, but I still have no power or internet due to the hurricane.
Anyhow we’ll see how it goes. Can’t wait to get back up and running.

userx
userx
11 years ago

Wow that much traffic for the firmwares… amazing. Keep up the great work.
These units are getting a lot of use thanks to the devs that fixed all the bugs.

PetersNL
PetersNL
11 years ago

Sorry for the obviously noob question, but does this mean we can soon be expecting a lot of custom roms for this chipset?

John
John
11 years ago

@PetersNL
Interested in this too. The Liliputing website has said about the RK3066 that there is no support for this chipset running Linux. Does this change that?

deadhp1
deadhp1
11 years ago

armtvtech is back up and running.
I’ve also mirrored most of the firmwares if needed.
Just happy to be back!

boarder
boarder
11 years ago

GPL violation?

./arch/arm/mach-rk30/clock_data.uu
./arch/arm/mach-rk30/ddr.uu
./arch/arm/mach-rk30/ddr_freq.uu
./arch/arm/plat-rk/vpu_mem.uu
./arch/arm/plat-rk/vpu_service.uu
./drivers/net/wireless/rtl8192c/core/rtw_ioctl_set.uu
./drivers/net/wireless/rtl8192c/os_dep/linux/ioctl_linux.uu

AndrewDB
AndrewDB
11 years ago

cnxsoft :
…AndrewDB seems to be motivated to do just that.

I have just managed to boot Ubuntu Quantal armhf on the UG802 in text mode, no networking, no sound support… Alpha status.
Should reach Beta status in a week or so. I am reporting my progress on ArmTVTech.

Nanik
11 years ago

I was just wondering how did you know about this information

“The chip contains a 10 KB internal bootROM that support system boot from 8bits/16bits Async Nand Flash, SPI0 interface and eMMC interface.”

were you able to pick information up from articles or from their datasheet ?.

AndrewDB
AndrewDB
11 years ago

@boarder
Sometimes uuencoded files are used to hold just binary data i.e. values that are copied into registers, sometimes for firmware for MCUs used in some peripherals, that is downloaded at runtime, etc. That has strictly nothing to do with GPL violations.

Tehnicni
Tehnicni
11 years ago

TV Box TVI7 with RK3066 with external WiFi antenna and RJ45
http://www.xenic.pl/pdf/karta_produktu.pdf
http://shrani.si/t/2Z/11M/3HluDiKT/tvi7.jpg

laura
laura
11 years ago

by the way, I looking for a really good tablet with a phone under $300 that actually has a processor that works fast. What do you think about that one? 🙂

laura
laura
11 years ago

oh! thanks so much for that valuable information, and so quickly too!!

Marius
11 years ago

@laura
With a phone meaning 3G included ? It really depends if you want a 10 inch one, a 7 inch one or something in between. Most Chinese tablets don’t have 3G but do support and external 3G USB dongle.
It’s not quite as nice as having integrated 3G but … you can buy a 3G dongle for 30$ or less and get any tablet you want.

joyhaa
joyhaa
11 years ago

where did you get the cross toolchain(e.g. arm-linux-gnueabihf-gcc)

CN_MR.R
CN_MR.R
11 years ago

how to build it in win32?

jayesh
jayesh
11 years ago

Dear,
I have a tablet with 3g supported. Rk30 SDK-4.1.1 firmware. But 2g/3g data connectivity is not working. Pls give me resolution help.
Is it any further firmware required? Pls give source link to download it. As for or info 2g/3g voice calling is working.I had cross carried
To checked APN, access point setting etc but there is no success. Pls help.

jayesh
jayesh
11 years ago

My tablet having processor Rk3066, firmware is Rk30 Sdk Android 4.1.1 V1.00.00, there is 2g/3g data connectivity is not working whereas 2g/3g datavoice is working properly. please given the link so I can update firmware and resolved this issue…pls help me

Salam
Salam
11 years ago

How many USB controller the SoC has? USB has Max 60MB transfer rate and I want to connect one USB hard drive drive and one USB 1Gb Ethernet and may run them at full speed on PC stick which have this SoC.

tomCode
tomCode
11 years ago

nice tutorial! the img_maker requires a loader.
What is it for? Is it only temporarily used for download of the firmware or will it reside on chip?

Khadas VIM4 SBC