Recent Linux on Cortina Systems Gemini Platforms
Latest test on 2017-03-12 (kernel v4.11-rc1)

SL3516 chip 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 is also known by the product name Storlink SL3516 from Storlink Semiconductor, that changed their name into Storm Semiconductor, and then Cortina acquired Storm Semiconductor in 2008, renaming the same chip into CS3516 (Cortina Systems 3516). I have heard about other Storm SoC products named SL3316 (Centroid) and SL3512 (Bulverde, seemingly very similar, maybe just different packaging) but I have never seen it. Earlier incarnations of driver also refer to Lepus as a platform name, this is probably an even older platform named SL2312. I found a product brief for CS3516 online somewhere. The product brief for their SL93516N SDK (a NAS prototype board) also mentions a certain SL3518/CS3518 which would be a dual-core CPU in the same family, and there are product briefs for this too. I don't know if SL3518/CS3518 was ever produced.

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/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

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

Kernel TODO

Getting SQ201 RT2561s wireless going

Links