The price of single board computers and development boards has really gone down in recent years, and it’s easy to find a low cost Arm based board for most project. But C-SKY Linux development board is quite different since it’s based on the little known C-SKY architecture, and the price in China ($6) is really competitive for a media capable board.
If you live outside of China, the board is now sold for about $18 including shipping, and MickMake decided to buy one to have a closer look and review the board.
As we covered during the announced the board is powered by NationalChip GX66058 C-SKY 32-bit processor clocked at up to 574 MHz and integrating 64MB DDR2 on-chip. Getting the board on-hand allowed Mick to get more details about the other chips included in the board namely:
- STMicro STM32F103 to handle all the JTAG control through a micro USB port (JTAG)
- CH340G USB to serial bridge to access the serial console via another micro USB port (COM)
- Winbond W25Q32FVSSIG 32-Mbit SPI flash to store the operating system
The bottom side of the board only features a copper area to cool the chip.
Looking into the CPU datasheet, he found out C-SKY is based on Freescale MCORE with some extra MIPS instructions thrown in the mix for good measure, the processor can be set to big or little endian, and an Arm AMBA (Advanced Microcontroller Bus Architecture) bus is also part of the chip.
The board is pre-loaded with a media player application with a basic user interface, and can play H.264 videos from USB mass storage devices like a USB thumb drive.
You can control the video using the buttons on the board, and HDMI output works up to 1080p @ 25 Hz while the frame buffer is set to 1280×720 resolution like is the case on many low end TV boxes and media players.
But the fun part is really mainline Linux support, and you can download a Linux image (usb.img), put it in your USB thumb drive and it will automatically upgrade the board to Linux.
GPIO supports works, but I2C is implemented via bit-banging although it needs to be enabled in the kernel, and there’s no SPI interface.
You can also build the image yourself with buildroot using a few commands:
1 2 3 4 |
git clone https://github.com/c-sky/buildroot.git cd buildroot make csky_gx6605s_fbcon_br_defconfig make |
Mick also built Phoronix benchmarks for the board, and while most tests won’t run some did, and performance is really weak…
Cachebench read, modify and write operations are really slow, 20 to 440 times slower than ODROID-XU4, but that’s the result of using an SPI flash.
Himeno poisson pressure solver benchmark performs floating-point operations, and again the results are pretty poor. Arm platforms do have an FPU, which the CK610M core used in GX66058 processor does not have as I understand it, and Himeno is also listed as a multi-threaded benchmark, and the single core C-SKY processor is obviously at a disadvantage here.
TSCP AI chess performance benchmark looks better on C-SKY, because it’s a single-thread integer benchmark, and the performance difference can be mostly explained by the lower CPU frequency.
You’ll find the full results on OpenBenchmarking.org.
Beside the open source support and low price, Mick feels there’s not a lot going for the board with fairly limited documentation, and poor overall performance. More details can be found in MickMake’s review linked in the introduction, as well as in the video review embedded below.
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
cute little board, although they could’ve made the board a bit wider and put usb ports flat. also, gotta love lowly opi0 beating rpi3b in pressure bench 😉
Curiously enough, C-SKY v2 (ck8xx) looks like a significant departure from C-SKY v1 (ck6xx), to the point of no BC with M-CORE anymore?
BTW, the benchmarking in the video seems like a curiousity and not particularly practical. ck610 looks more like an ovegrown MCU capable of running linux, rather than like an application processor. A more practical comparison would have been between ck610 and some cortex-m (which, of course, phoronix testsuite would not be suitable for).
Seems to me like a competitor to those low end mips based stb chips from stm or mtk. Or maybe some wrt type routers. Or a pic32mz…
>A more practical comparison would have been between ck610 and some cortex-m
How? This thing runs proper Linux with an MMU and has 64MB of RAM which is many times what most cortex-m chips can support. Most cortex-m aren’t clocked above 100MHz.
M-CORE was designed as an MCU ISA — emphasis on low power, high-density, low-latency irq response. The fact C-SKY slapped an MMU to it makes it an MCU with an MMU. And linux is not needed for benchmarking. A comparison to, say, STM32H7 would have been way more interesting.
>The fact C-SKY slapped an MMU to it makes it an MCU with an MMU.
That makes it a base for a SoC like this. You can use Thumb on a lot of ARM chips that are not MCUs FYI.
>A comparison to, say, STM32H7 would have been way more interesting.
Those chips have 2MB of flash and 1MB of SRAM. The comparison would be totally useless.
The chips this thing would be compared to are the i.mx6ull or the Renesas RZ.
You seem to not understand that slapping an MMU and many megabytes to an MCU does not change its fundamental performance characteristics — it enables things like linux, but that about sums it up. Yes, review cold have compared it to many a small armv6 thumb-enabled cores just as well — they didn’t. They could have compared it to iMX RT 1K series — cortex-m7 supporting external ram and capable of running uClinux (https://www.cnx-software.com/2017/08/17/nxp-i-mx-rt-series-crossover-embedded-processor-features-an-arm-cortex-m7-core-600-mhz/, https://www.cnx-software.com/2017/10/27/emcraft-releases-linux-bsp-for-nxp-i-mx-rt-cortex-m7-soc/, https://www.cnx-software.com/2018/11/26/forlinx-ok1052-c-nxp-i-mx-rt1052-board/) — they didn’t. They’ve compared it to application-level of hw and the only thing this comparison has shown is that the ck610 does not belong there — who could’ve thought?
>You seem to not understand that slapping an MMU
>and many megabytes to an MCU does not change
>its fundamental performance characteristics
An MCU is just a processor with peripherals in a package. The actual processor doesn’t matter. Having more than 8MB of memory, being clocked at 500MHz and having an MMU (thus being able to run a normal OS) makes this a SoC just like all of the other SoCs with crappy processor cores.
>cortex-m7 supporting external ram and capable of
>running uClinux
The product blurb for the i.mx rt even says it’s a cross-over MCU/application processor. Probably because the m7 only has the useless MPU so you can’t run proper linux on it.
Almost anything that’s 32bit could run nommu linux but it’s as much fun as stabbing yourself in the eyes.
>They’ve compared it to application-level of hw and the only
>thing this comparison has shown is that the ck610 does not belong there
It belongs with all of the MIPs based router SoCs and TV/STB SoCs.
> An MCU is just a processor with peripherals in a package.
No. But apparently you’re willing to peform mental gymnastics to try and concoct some semblance of a point, and I don’t feel like arguing with a brick, so having said all there was to be said on the subject (and the benchmarks from the video speak for themselvs), I wish you a good day.
>No. But apparently you’re willing to peform mental gymnastics to try
> and concoct some semblance of a point,
You seem to be doing the mental gymnastics. You’ve come up in your head that because something uses an instruction set that was originally intended for MCU products then that makes anything that happens to use it an MCU.
From wikipedia:
“A microcontroller (MCU for microcontroller unit, or UC for μ-controller) is a small computer on a single integrated circuit. In modern terminology, it is similar to, but less sophisticated than, a system on a chip (SoC); an SoC may include a microcontroller as one of its components. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Program memory in the form of ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips.”
This follows what a microcontroller is in the industry and matches what I wrote before.
It says nothing about instruction set as that doesn’t matter.
Case in point motorola shipped the MC68000 as a processor, one of the earliest SoCs (DragonBall) and then as an IP core that was probably used it all sort of deeply embedded microcontroller applications. Toshiba shipped the MC68000 as a processor and as an integrated microcontroller.
“so having said all there was to be said on the subject (and the benchmarks from the video speak for themselvs), I wish you a good day.”
The benchmarks would probably be comparable to the MIPS router SoCs as I wrote before. Comparing a machine that’s running a proper OS with all the penalties of having an MMU active to a microcontroller having a 64th of the memory would be as worth while as benchmarking a shoe against an egg.
> You seem to be doing the mental gymnastics. You’ve come up in your head that because something uses an instruction set that was originally intended for MCU products then that makes anything that happens to use it an MCU.
No, I haven’t made up my mind that an ISA devised for MCU automatically turns a chips using that ISA into an MCU — the ISA is but one factor; a rudimentry counterexample: an CA72 executing thumb2 in aarch32 mode is not a MCU, at least not circa 2018 tech. But the ISA choice contributes to the the overall power/peformance and irq latencies, and power/performance is a very good indicator a part could be an MCU for the given timeframe (the latter determines factors like fabnodes, for instance). In the case of ck610 *all* the rest of the factors, save for the presence of an MMU, indicate power/performance akin to an MCU circa 2018. Quoting C-SKY on ck610 performance: 1.82DMIPS/MHz and 0.16 mW/MHz @40nm, clocks range — up to 700MHz @ 40nm. Compared to arm stock small designs: (https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures)
Cortex-M3/M4: 1.25 DMIPS/MHz, clocks up to 200-something MHz @90nm
Cortex-M7: 2.14 DMIPS/MHz, clocks up to 600MHz @40nm
Cortex-A7: 1.9 DMIPS/MHz, clocks up to 1.6GHz, ~0.1mW/MHz @ 28nm
Hey, look ck610 fits right in the ballpark of the top cortex-m! Actually, the M7 is the closest possible part at this fabnode and clocks: 600 * 2.14 = 1284 (M7) vs 700 * 1.82 = 1274 (ck610) — what a close match!
But let’s get back to your gymnastics:
> An MCU is just a processor with peripherals in a package.
A 2018 xeon server part is a ‘processor with peripherals in a package’ — is it an MCU? (hint: it’s not). I will leave it to your mighty wiki fu to figure out why not.
Re MC68K — care to remind me how long it took Motorola to fit 68K in a deeply embedded design like DB? (hint: it’s 1979 vs 1995..)
But let’s get to the ‘an MMU changes everything’ reason of yours..
ck610 comes in MMU-less configs just as well; actually, MMU is an optional extension to ck610 (http://en.c-sky.com/solution/13413.htm):
‘CK610M: supports memory management unit (MMU);’
Or in other words, an MMU is not a mandatory part of the uarch that a ck610 could not run without one. Who’d have thought?
> a proper OS with all the penalties of having an MMU active to a microcontroller having a 64th of the memory would be as worth while as benchmarking a shoe against an egg.
I wonder what that might be, as every undergrad studen having ever taken a course in architectures could figure out how to counter those MMU penalties in a benchmark (and as repeated by me several times till now, linux is not a prerequisite for benchmarking, but hey, keep ignoring that..) But I must be missing something, so please, enlighten me of those horrible MMU penalties that make comparisons between ck610 and cortex-m7 a case of ‘a shoe against an egg’.
RJ45 and i could use it
For 5$ it would make sense, not for 18$+
Also, i’d rather pick a ALLWINNER v3 board than this. More powerful.
A £20 TV box is more powerful than this!
Why not just use a A20 or A10 board.
For low price, small size, ethernet connectivity and GPIO use, I think the NanoPi NEO H3 is the best example of that niche. It has aged quite well and remains popular.
Note that the chip manual is not open.
Power consumption?
Can this board run NES/SNES emulator?
Now $13.91 inc p+p to UK
https://www.aliexpress.com/item/PK-OrangePi-NanoPi-Raspberry-Pie-GX6605S-Development-Board-For-C-SKY-Linux/32971946875.html?