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 [email protected] 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.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

35
Leave a Reply

avatar
34 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
16 Comment authors
tomCodeSalamjayeshCN_MR.Rjoyhaa Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
trackback

[…] those considering buying a RK3066 equipped Android stick I found some interesting reading material Rockchip RK3066/RK30xx Processors Documentation, Source Code and Tools | CNXSoft – Embedded So… Cheers Reply With Quote […]

AndrewDB
Guest
AndrewDB

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

deadhp1
Guest

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 only I can keep it running with having a massive bill every month.

AndrewDB
Guest
AndrewDB

@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
Guest

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
Guest
userx

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
Guest
PetersNL

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

John
Guest
John

@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
Guest
deadhp1

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

boarder
Guest
boarder

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
Guest
AndrewDB

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.

trackback

[…] Rockchip RK3066 Linux kernel source code is now available, it might eventually be possible to replace Android Jelly Bean by your favorite […]

Nanik
Guest
Nanik

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
Guest
AndrewDB

@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.

trackback

[…] week, I wrote a post entitled “Rockchip RK3066/RK30xx Processors Documentation, Source Code and Tools“, where I explained that the kernel source code for RK3066 was released and somebody […]

trackback

[…] the open-source community and native support for the Mali GPU is still in its infancy. Read more at CNX-software. Mine Android stick had ADB and developer mode are both enabled and has root.  Install a root […]

Tehnicni
Guest

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
Guest
laura

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
Guest
laura

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

Member

@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
Guest
joyhaa

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

CN_MR.R
Guest
CN_MR.R

how to build it in win32?

jayesh
Guest
jayesh

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
Guest
jayesh

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
Guest
Salam

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
Guest
tomCode

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?