Recent Linux on Cortina Systems Gemini Platforms
Latest test on 2017-08-04 (kernel v4.13-rc3)

SL3512 chip

SL3512 chip

SL3516 chip

SL3516 chip

SL93512R BRD reference design

SL93512R BRD reference design

SQ201 top view SQ201 bottom view

ITian SquareOne SQ201
Top: boring electronics... 24MHz crystal. The IC on the left is a Richtec RT9183 Low-dropout regulator for 1.2-3.3 V
Bottom: 2 x Nanya Technology Corp NT5DS32M16BS-6K (comprising 2 x 32Mbit x 16 = 1024Mbit = 128MiB DDR SDRAM), Spansion S29GL128N90TFIR1 (128Mbit, 16MiB) Flash memory, JMicron JM20339 high-speed USB to SATA bridge, providing the external SATA port over USB, Gemini Storlink SL3516 chip, MiniPCI card with a RaLink RT2561T wireless card, under the card is a VIA Vectro VT6212L USB 2.0 controller, Vitesse (now Digikey) VSC7395XYV 5+1 Integrated Gigabit ethernet switch with transcievers facing LAN1, LAN2, LAN3 and LAN4 ports - this is an entire SoC with an 8051 CPU and RAM and peripherals that get booted somehow, Marvell 88E1111 Ethernet transciever facing the WAN port.

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.

Systems using the Gemini/SL3512:

Systems using the Gemini/SL3516:

Unknown SoC (SL3512 or SL3516):

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 it

I connected a serial port after some simple tinkering. The port is 115200 baud.

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

SQ201-Specifics: Getting SQ201 RT2561s wireless going