Recent Linux on Cortina Systems Gemini Platforms
Latest test on 2018-02-12 (kernel v4.16-rc1)

SL3512 chip

SL3512 chip

SL3516 chip

SL3516 chip

SL93512R BRD reference design

SL93512R BRD reference design

The SoC from Cortina Systems known by the project name Gemini was concieved by Storlink Semiconductor in the early 2000s, apparently with heavy consultation from Faraday Technology. The company changed their name into Storm Semiconductor, and then Cortina acquired Storm Semiconductor in 2008. It seems to have been evolved from an even earlier SoC named SL2312. Lepus seems to be a code name for Gemini.

The SoC is a family of the following chips:

This SoC has an ARMv4 ISA and is based on the Faraday FA526 third-party ARM IP core. It can sometimes be hard to find the right tools and no major distributions support the ARMv4 ISA. The typical userspace is built using OpenWrt or OpenEmebedded.

I am trying to collect vendor tree code at GitHub. Please contribute if you have newer GPL sources than what I have. The code seems to have been partly written by MontaVista under consultant contract to Storlink.

The procedure is likely similar on all the Gemini platforms, but I'm using the ITian SquareOne Smart Storage Server, which apparently doesn't have any upstream support whatsoever as of writing. I got this unit from Florian at OpenWRT to have a Gemini (ARM FA526 based) SoC hacking target.

It is pretty easy for an experienced hacker to get any of these devices running with the latest kernel and full hardware support. Most of the heavy lifting is already done and landed upstream. If you have one of these and you don't know what to do with it or very much want support for it, send it to me (no strings attached) and I will try to fix it up. I will likely try to solder in a UART so it is risky. (linus.walleij@linaro.org)

Systems using the Gemini/SL3512:

Systems using the Gemini/SL3516:

Unknown SoC (SL3512 or SL3516, suspect SL3512 on all NAS products):

Out of scope

It turns out that many of the components inside the Gemini machines are actually off-the-shelf IP blocks from Faraday Technology, an SoC design firm in Taiwan, that has been around since the 1990ies.

Getting into Gemini Systems

All Geminis are pretty similar with regards to serial ports etc. See my pages for the D-Link DNS-313, D-Link DIR-685 and ITian SquareOne for examples of how I attached UART and accessed the Internals.

Most systems are 19200 bps by default but some are occasionally at 115200 bps.

Getting OpenWRT up on it

As per 2018-02-20 I managed to rebuild and boot OpenWRT on the DIR-685 and DNS-313. The steps taken were:

I am working on a set of patches incorporating builds for all platforms with upstream kernel support, these patches are made against the OpenWRT HEAD.

Prebuilt OpenWRT rootfs (tested):

Compiling the kernel

See obtaining an ARMv4 Toolchain for getting a proper ARMv4 Toolchain.

You probably want to clone the Gemini branch in my Nomadik git OK this git tree has the wrong name, maybe I should make a separate gemini git

You can use my makefile and initramfs to get to a prompt. Copy the rootfs-gemini.cpio to your $HOME directory, then put the gemini.mak file in your Linux base directory and type:

  make -f gemini.mak config && make -f gemini.mak build

Gemini SoC Kernel TODO

Links