# The C-Sky SBC: Pi in the Sky? // Review

## YouTube video: The C-Sky SBC: Pi in the Sky? // Review

An SBC that's not really an SBC. Based on the NationalChip GX6605S, it can run a tiny Linux with a very small component count, but is it too cool to be usable?

## Unboxing the C-Sky

This SBC was pretty cheap when I originally purchased it on AliExpress. You could pick them up for around US$9. However, they've recently bumped the price up to around US$20, which is far too much for what it is, but, you can still pick it up for around US\$6 on other websites.

So, what do you get on this not-really-an-SBC? Starting from the top right, working clockwise…

• User controllable GPIOs.
• STM32F103 - Which handles all the JTAG control over the SoC via micro USB port.
• User accessible buttons.
• HDMI - Capable of 1080p @ 25Hz, but the frame buffer is actually 720p that is up-scaled to 1080p.
• More user accessible buttons.
• Two USB 2.0 ports.
• DC buck converter and regulators supplying 3.3, 1.8 and 1.1 volts to the SoC.
• Serial console over micro USB. This connects to the CH340G USB to serial bridge, which then connects to the SoC.
• 32 Mbit SPI flash - W25Q32FVSSIG
• JTAG USB port, which connects directly into the STM32.
• Reset button.
• And the really tiny NationalChip GX6605S. This has 64MB RAM, and will boot from SPI flash. You can also boot from USB, which is good, as 4Mbits isn't a heck of a lot of space for an O/S.

The only thing of note on the underside is the large copper area acting as a heatsink.

The GX6605S is a pretty weird SoC. It's loosely based on the MIPS architecture. Sort of.

The instruction set is a derivative of the Motorola/Freescale MCORE, (previously Motorola RCE), but extends the MIPS instruction set in an odd way.
The C-Sky CPU can be switched between big-endian and small-endian, which is unusual, but same other SoCs do have this capability.

It also has an AMBA bus, which is very much an ARM thing.

Unfortunately, the datasheet, (for want of a better word), is missing a whole lot of stuff. So, I can't really see what the pinouts are.

So far, there's nothing really flash about this board apart from the fact that they've gone to all this effort to make it part of mainline Linux.

It is a weird chip and I'm surprised they've bothered with all this effort, considering that most manufacturers are just using ARM based SoCs.

I suspect that this is a last ditch effort by the company before they End Of Life it, as there are more capable SoCs around these days. However, it does have a place for those wanting a single chip Linux capable device. Supporting components are minimal, so for some it'll be great.

## Booting the C-Sky

On to booting. The C-Sky will boot up into this screen as default.

If you have a USB thumb drive with some video on it, it'll play back in full 1080p. Able to decode H264 video without issue. The buttons act as a crude, but effective interface.
This doesn't make it particularly interesting. Fortunately, you can download a Linux image and burn to USB flash drive.
It'll auto-detect the flash drive and boot from it.

## GPIO testing.

As mentioned before, there's a small handful of GPIOs available. Unfortunately, no hardware I2C or SPI.

You can make use of software based I2C bit-bashing, but I didn't end up enabling this in the kernel.
The default image comes with a handy Python script that'll blink the LEDs and test the buttons, but really not much else to do.

## C-Sky buildroot.

Moving on to building my own custom Linux image, which is important as I wanted to build up some Phoronix tests to see what this SoC could do.

If you've used buildroot before, it'll be pretty straight forward.

git clone https://github.com/c-sky/buildroot.git
cd buildroot


Create the .config file ready for building.

make csky_gx6605s_fbcon_br_defconfig


Then build everything.

make


It should take a while, but once completed you end up with an output directory, which holds:

• Cross-compile build environment.
• Host binaries and utilities.
• Final USB flash image.
• Rootfs target.
All you need to do now is take the usb.img.xz file and burn it to flash using your favorite flash burny tool thingy.

## Re-building buildroot.

Now that I had a proper default image that could boot, time to customize. I made a number of changes to allow the Phoronix Test Suite to function properly.

You can fetch the updated config file from here or do this.

Fetch my buildroot config file.

wget -O configs/csky_gx6605s_mickmake_fbcon_defconfig /2018/12/20/csky_gx6605s_mickmake_fbcon_defconfig.txt


Create the .config file ready for building.

make csky_gx6605s_mickmake_fbcon_defconfig


Then build everything.

make


Once the build completed, I burnt to flash, and rebooted the C-Sky. Ta da!

Nice logo! Wonder how that got there.

I also made some changes to the root filesystem, so that networking would start automatically using a USB to Ethernet adaptor.

This is one of the other problems with this SoC - it has no Ethernet capability.

## Phoronix tests.

Now that I had my custom Linux image made, I had to rebuild all the Phoronix tests.

There were quite a lot that weren't supported. Especially anything thread related, as I couldn't get any decent threading library built.

I eventually settled on CacheBench, Himeno, PHPBench, and TSCP. Not a great turn out of tests, but enough to give me a rough idea of what the SoC is like.

So, what did I find out? Ah, well…

around 1/200th of the performance of the ODROID XU4 on CacheBench reads and
1/20th for writes. So at least writes were quicker.
But read, modify, write ended up being 1/440th that of the ODROID. This thing is as slow as a wet week.
Himeno benchmarks. Yeah, well… 43 times slower than a Raspberry Pi 3 Model B.
Both PHP and TSCP benchmarks had similarly poor results.
During testing I saw the temperature hit a max of 49.3C with an ambient temperature of 25C and the board only drew a max of 400mA during all my tests.

## C-Sky summary

Well… I don't know what to think of this board.

If the manufacturers would only release more documentation on the hardware side of things we might have a bit more to go on.

Sure there's support for open source software, it's cool, it's new, but heck I can't find any redeeming feature for this board… If you are wanting a very cheap SBC, then I'd suggest looking at something else.

I'm guessing that it is considered as some sort of “developer evaluation board”, for those who want to use the GX6605S within their own products.

However, there are more capable chips around with much more support within this price bracket.