A closer look and initial hands-on with the MIPS Creator CI20Follow article
First boot and thoughts on the featured-packed MIPS Creator CI20 development platform.
There was much excitement a few weeks ago when it was announced that development boards based on a highly integrated dual-core MIPS SoC were to be given away for free. I managed to put in a request just before the offer closed and I'm still waiting to hear back as to whether I was successful, but in the meantime I was fortunate to have been loaned a board.
Before we get to the hands-on part, first let's take a look at what the MIPS Creator CI20 provides.
MIPS is one of those names that will be familiar to anyone who worked in — or aspired to work in! — computing in the late 80s and 90s, as the RISC processor of choice for high-end graphics workstations from Silicon Graphics, which were the workhorses of film and TV digital post-production. Fast forward a few years and MIPS processors are now commonly put to embedded use, quietly powering mass market electronics such as set top boxes and mobile computing devices.
The Ingenic JZ480 SoC is built around a dual-core MIPS32 processor clocked at 1.2Ghz, coupled with Imagination's PowerVR SGX540 GPU, hardware media codecs and plenty of peripheral I/O.
The Creator CI20 is equipped with 1GB RAM and 8GB of on-board flash storage, it also provides an SD card slot and a second slot can be added via an expansion header. The board has 10/100 Ethernet, WLAN and Bluetooth, USB OTG and host, HDMI, and audio input and output.
Somewhat unusual for a development board such as this, there is also a real-time clock.
Hacker friendly features
Two expansion headers are provided and the first of these is Raspberry Pi-compatible and gives access to power, three UARTs, GPIO, I2C and SSI.
The 16-pin second header provides breakout for ADC with 5-wire touch and battery monitoring ability, along with additional GPIO that can alternatively be configured to provide a transport stream interface for a DVB tuner, or to attach a second SD card slot.
The push button is not for resetting the board and together with jumper JP3 is instead used to select the boot mode, and the Creator CI20 can be started from either flash, SD card or USB storage.
It's possible to hook up a camera via a 24-pin cable and a particular 5M pixel part is suggested.
Those who like to get down to the bare metal when debugging will be pleased to learn that there is a MIPS EJTAG port, and it sounds as though OpenOCD support is on the cards.
Oh, and just in case anyone needed one, there is also a header with a fourth UART.
Given the size of the box you might have expected it to contain more than simply the board and power supply, but that's it. I must admit that upon seeing a username and password printed on the label I spent a moment looking for an SD card, until I remembered it has 8GB of on-board flash...
I much prefer to access boards via a serial console as this doesn't require all the peripherals of a graphics console and often provides more insight when things go wrong. So, before applying power, along with Ethernet I hooked up a USB UART connected to a laptop. At this point it's worth noting that the console is on UART number 1 of 4 and this is present on the primary expansion header.
Power was applied and after a short delay the familiar U-boot banner was displayed, following which the Linux kernel was loaded,and soon after a login prompt appeared.
The Creator CI20 came with a reasonably minimal Debian 7.0 pre-loaded, taking up just 719M of the 8GB on-board flash storage, leaving plenty of space to install whatever tools and programming languages etc. are desired via the magic of Debian's apt-get. Since SSH is invaluable for logging in and copying files over the network, the first thing I did was to apt-get install openssh-server.
Incidentally, Apt was configured with standard Debian wheezy repositories only, so it appears as though support is straight from Debian and without any third party repositories required.
The install was running a 3.0.8 kernel and at present this needs to be built from a fork. However, a page on the wiki suggests that there are efforts to push board-specific changes upstream. So in time to come it will hopefully be possible to build a kernel with CI20 support straight from mainline, which would obviously make things a great deal simpler for kernel hackers and distros.
It is said that the following Linux distros are also up and running on the CI20 and that images are currently being prepared for upload:
Gentoo, a source-based distribution that is compiled locally;
Yocto Sato, a minimal/embedded system with a mobile UI;
Angstrom, a veteran embedded distribution;
Arch, a minimalist, rolling release distribution.
In additional to which apparently an Android KitKat 4.4 image will also soon be released.
Comprehensive documentation has been made available via the eLinux wiki, where amongst other things, guides are provided for:
Headers and more in-depth technical details;
Getting a GNU Toolchain for MIPS cross-compilation;
Building U-boot and Linux;
Setting up an embedded Linux build system with Buildroot;
Creating a bootable SD card.
The CI20 doesn't appear to be open source hardware, however, PDF schematics and layouts are provided for informational purposes, along with some handy single sheet header pinout diagrams. It's also important to note that the JZ4780 SoC datasheet is available without NDA.
Anyone can request an account to edit the eLinux wiki and I should think the hope is that, as with other platforms which use it, the community will contribute to the documentation.
Two Google Groups have been set up: one for general discussion, e.g. projects and support, and another for developers and where patches can be submitted and reviewed. Both of which appear to have been created quite recently but are already fairly active, which is a good sign.
An IRC channel is also available for those who favour real-time communications.
Lastly, there is prpl, the open source foundation which launched earlier this year with the purpose of supporting the MIPS architecture, e.g. via bug fixing and feature enhancements for key software projects. As is typically the case with such foundations, anyone can become a contributor member, without having to pay any sort of fee. However, there are also supporting member companies, which in this case includes Imagination, Broadcom, Qualcomm and JZ4780 SoC vendor, Ingenic.
Capable, hackable and a promising start
The Creator CI20 is an attractive board in terms of performance and features and it will be interesting to see what it eventually sells for and which markets it goes on to gain traction in.
There will clearly be appeal for makers and hobbyists with projects that demand reasonable compute and/or graphics performance from a compact platform, and with integrated WLAN and RTC being a real bonus. And it should make an excellent platform for a media centre or similar.
It also has the potential to make the MIPS architecture much more accessible to hardware designers, as the CI20 will presumably be much cheaper than the previously available MIPS eval and dev board options. And one can only assume that it will be the platform of choice for prpl (I'd be amazed if they are not already assembling a CI20-based build farm!)
It's great to see that a lot of work to enable the community has been done up front, e.g. Linux support, setting up the wiki and lists, publishing sources to GitHub and documenting build processes. This will all pay dividends as boards go out and the community grows.
I didn't get the opportunity in the time available to check out the video capabilities of the CI20, which thanks to the PowerVR GPU and hardware codec support should be pretty good. Something to add to the list, along with experimenting with GPIO, if/when I receive a board!