Home > Android, Linux, Programming, Rockchip RK29XX, Rockchip RK30xx, Software management, Testing > Rockchip RK3066/RK30xx Processors Documentation, Source Code and Tools

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:

git clone https://github.com/omegamoon/rockchip-rk30xx-mk808.git
cd rockchip-rk30xx-mk808
make -j 12 CROSS_COMPILE=arm-linux-gnueabihf- uImage
make -j 12 CROSS_COMPILE=arm-linux-gnueabihf- modules

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:

sudo apt-get install sharutils

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:

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

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.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

  1. AndrewDB
    November 5th, 2012 at 08:39 | #1

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

  2. November 5th, 2012 at 08:47 | #2

    @AndrewDB
    I just had around 300 page views for this article (according to GA) so I doubt that’s the reason, unless some other sites also linked to the armtvtech forums.

  3. November 6th, 2012 at 04:55 | #3

    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.

  4. AndrewDB
    November 6th, 2012 at 05:19 | #4

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

  5. November 6th, 2012 at 05:30 | #5

    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.

  6. userx
    November 6th, 2012 at 13:19 | #6

    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.

  7. PetersNL
    November 6th, 2012 at 21:11 | #7

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

  8. John
    November 6th, 2012 at 23:15 | #8

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

  9. deadhp1
    November 7th, 2012 at 02:48 | #9

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

  10. November 7th, 2012 at 09:48 | #10

    @PetersNL
    Yes, for custom ROMS, and it seems some are already available on ARMTVTech.com

    @John
    Linux support now becomes a possibility, but somebody has to work on it, and @AndrewDB seems to be motivated to do just that.

  11. boarder
    November 7th, 2012 at 18:05 | #11

    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

  12. AndrewDB
    November 7th, 2012 at 18:24 | #12

    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.

  13. November 7th, 2012 at 19:58 | #13

    @boarder
    I understand that if the code is not using GPL code, linux drivers source code does not need to be released.

    mac-rk30 and plat-rk uuencode files were not part of the GPL source release, but omegamoon had to add those files to be able to compile, which does not seem right.

    For the wifi-driver, the uuencode file was part of the release, but then it’s mixed with source code files during the build, which also does not seem right.

    But I don’t that much about open source license compliance, so maybe it’s OK…

  14. Nanik
    November 9th, 2012 at 02:24 | #14

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

  15. November 9th, 2012 at 09:05 | #15
  16. AndrewDB
    November 10th, 2012 at 19:04 | #16

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

  17. March 18th, 2013 at 03:59 | #17

    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

  18. laura
    March 21st, 2013 at 21:47 | #18

    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? :)

  19. March 21st, 2013 at 21:59 | #19

    @laura
    Pipo U3 seems OK, Pipo is a known Chinese brand with a Rockchip RK3066 you can’t go wrong. However, 3000 mAh battery is a bit on a low side. Now I always recommend buying a tablet with a larger battery (at least 4,000 mAh), as one charge would last about 4 hours, and you’d have to recharge the device less often leading to a longer useful life. Last year I bought a tablet with a 2,300 mAh battery, and now it’s almost useless as the battery only lasts 30 minutes per charge.

    For tablets with 3G support, you may also want to check out some of the Mediatek tablets: http://www.cnx-software.com/2012/11/19/low-cost-tablets-zxc-z7-with-built-in-3g-powered-by-mediatek-mtk8377-dual-core-processor/

  20. laura
    March 21st, 2013 at 22:08 | #20

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

  21. Marius
    March 21st, 2013 at 23:01 | #21

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

  22. joyhaa
    May 14th, 2013 at 21:06 | #22

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

  23. May 14th, 2013 at 21:19 | #23

    @joyhaa
    In Ubuntu: sudo apt-get install gcc-arm-linux-gnueabihf
    For other distros, binary packages are available at: http://www.linaro.org/downloads/

  24. CN_MR.R
    May 29th, 2013 at 12:36 | #24

    how to build it in win32?

    • May 29th, 2013 at 14:08 | #25

      You’d better install VirtualBox, and build it from an Ubuntu virtual machine.

  25. jayesh
    June 16th, 2013 at 21:36 | #26

    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.

  26. jayesh
    June 16th, 2013 at 22:44 | #27

    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

  27. July 10th, 2013 at 15:42 | #28

    The full RK3066 Technical Reference Manual is now available: https://www.dropbox.com/s/80ubbvgou4g3bmk/Rockchip%20RK30xx%20TRM%20V2.0.pdf

  28. Salam
    July 22nd, 2013 at 21:52 | #29

    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.

  29. August 19th, 2013 at 16:00 | #30

    Added imgRePackerRK tool to extract and pack firmware files for RK30xx, RK31xx.

  30. tomCode
    October 4th, 2013 at 00:08 | #31

    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?

  1. November 4th, 2012 at 15:28 | #1
  2. November 8th, 2012 at 17:27 | #2
  3. November 12th, 2012 at 22:20 | #3
  4. January 7th, 2013 at 00:14 | #4