Yesterday, we got Linux kernel 3.0.8 source code from Telechips, as well as some files related to Android 4.0 (Webkit + OMX). Today, I’ve had a look at the kernel source code and found a few very interesting things.
First let’s get the code from github:
1 |
git clone git://github.com/cnxsoft/telechips-linux.git |
Good news! The code for the latest Telechips TCC892X is present in arch/arm/mach-tcc892x, and there is support for 3 types of boards:
- board-m805_892x – TCC8923 M805 board
- board-tcc8920 – TCC8920 evaluation board
- board-tcc8920st – TCC8920 STB evaluation board
TCC8920 STB evaluation board appears to be relevant to products such as Diyomate A6, but if it’s also used for TCC8925 HDMI Dongle such as CX-01 mini PC, Zero Devices Z900 or ValuePlus TizzBird N1.
Now let’s have a look at the default config directory for arm (arch/arm/configs):
1 2 3 4 5 6 7 8 |
ls | grep tcc89 tcc8920st_defconfig tcc8920st_hdb892s_defconfig tcc8925st_dongle_defconfig tcc8925st_donglehs_defconfig tcc8925st_hdb892f_defconfig tcc8925st_isdbt_module_defconfig tcc892x_defconfig |
Nice! tcc8925st_dongle_defconfig and tcc8925st_donglehs_defconfig look particularly interesting!

A quick comparison shows that the only difference is that tcc8925st_donglehs_defconfig sets CONFIG_HDMI_DONGLE_CLOCK_HIGH_SPEED=y.
Looking further in the source code:
1 2 |
#define TCC_CPU_FREQ_HIGH_SPEED 812500 #define TCC_CPU_FREQ_NORMAL_SPEED 716500 |
So tcc8925st_dongle_defconfig configuration file sets TCC8925 to run at 716.5 MHz and tcc8925st_donglehs_defconfig to 812.5 MHz.
The kernel configuration enables the Android stuff, so it’s probably the kernel we’ve got in the device running Android. Let’s try to build the kernel with TCC8925 clocked at 812.5 Mhz (High Speed config) assuming you’ve got the ARM toolchain already installed (run apt-get install gcc-arm-linux-gnueabihf in Ubuntu, if you don’t):
1 2 3 4 5 6 7 8 9 10 |
make ARCH=arm tcc8925st_donglehs_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 uImage .... Image Name: Linux-3.0.8+ Created: Wed Jul 18 20:22:07 2012 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3136392 Bytes = 3062.88 kB = 2.99 MB Load Address: 10008000 Entry Point: 10008000 Image arch/arm/boot/uImage is ready |
Good! It can build! We now have got the kernel (zImage and uImage) in arch/arm/boot. Let’s build the kernel modules:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 uImage INSTALL_MOD_PATH=build_modules modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 uImage INSTALL_MOD_PATH=build_modules modules_install
The kernel modules are located in build_modules directory. There are only 2 kernel modules: gspca_main.ko (video driver) and scsi_wait_scan.ko.
I cannot give it a try now, as I haven’t received the hardware yet. The other thing I would like to get before hacking CX-01 mini PC is a recovery firmware, and the eventual tools to recover the device when something bad happens. I’ve contacted PandaWill to try to get it. The bootloader code would also be nice, but not an absolute must. However, I believe it’s unlikely we’ll get the bootloader source code since Telechips does not appear to have released it for the older versions of its TCC processors.

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.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress