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.
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…
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.
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.
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
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)
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
sudo apt-get install libssl-dev libcrypto++-dev
This will generate 4 tools:
- afptool – Tool to unpack and pack the firmware files
- 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.
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.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Hmmm, it seems this post generated so much traffic on the armtvtech forum that the site was suspended.
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.
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 »
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.
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.
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.
Sorry for the obviously noob question, but does this mean we can soon be expecting a lot of custom roms for this chipset?
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?
armtvtech is back up and running.
I’ve also mirrored most of the firmwares if needed.
Just happy to be back!
Yes, for custom ROMS, and it seems some are already available on ARMTVTech.com
Linux support now becomes a possibility, but somebody has to work on it, and @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.
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…
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 ?.
It’s in the datasheet: RK3066_datasheet_brief.pdf http://yuandao-n90-window-dual-core-2.googlecode.com/files/RK3066_datasheet_brief.pdf
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.
TV Box TVI7 with RK3066 with external WiFi antenna and RJ45
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 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… Read more »
oh! thanks so much for that valuable information, and so quickly too!!
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.
where did you get the cross toolchain(e.g. arm-linux-gnueabihf-gcc)
In Ubuntu: sudo apt-get install gcc-arm-linux-gnueabihf
For other distros, binary packages are available at: http://www.linaro.org/downloads/
how to build it in win32?
You’d better install VirtualBox, and build it from an Ubuntu virtual machine.
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.
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
The full RK3066 Technical Reference Manual is now available: https://www.dropbox.com/s/80ubbvgou4g3bmk/Rockchip%20RK30xx%20TRM%20V2.0.pdf
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.
Added imgRePackerRK tool to extract and pack firmware files for RK30xx, RK31xx.
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?