SoC (System on a Chip)

The perpetual effort to make the Linux kernel work on any piece of hardware available is ongoing. This work takes place within projects like OpenWrt and also within companies that design, manufacture, or sell hardware and products based on Linux. Much of this work eventually gets mainlined, meaning the code becomes part of the mainline Linux kernel.

Today, we take wireless functionality for granted, but in the beginning, it was a real challenge. The IEEE 802.11 family of standards inspired what could be achieved, but the available Linux kernel drivers were poorly written, lacked features, or didn't exist. This is still true for some of the wireless hardware on the market today. No matter how fantastic or powerful a device may be, its Linux drivers offer limited functionality.

Since its founding, OpenWrt has focused on customer premise equipment (CPE) hardware such as routers and NAS devices, dedicating much effort to supporting IEEE 802.11 as extensively as possible. Given that the initial hardware, the Linksys WRT54G, sold over 400,000 units in its first months, it's safe to say that the work done by the OpenWrt project has had an impact.

Most SoC manufacturers license a (soft or hard) IP core for a certain CPU design from a licensor like MIPS or ARM, then combine this with other (self-developed or licensed) (soft or hard) IP cores for DSP-, wireless-, VoIP-, Sound-, Switch-, etc-functionality and commission the manufacturing of Chips at some semiconductor foundry. These Chips, SoCs, are acquired by different manufacturers of Routers. The latter design PCBs for whatever purpose and solder the purchased chips (SoC, RAM, Flash) onto them.

Company CPU IP for Mixed-signal integrated circuit
Intruction set license for own IP wired optical wireless
MIPS ARM Power Architecture other Ethernet DSL DOCSIS GPON 802.11 WiMAX LTE
Broadcom MIPS32, MIPS64 ARMv6, ARMv7, ARMv8
Marvell (Intel) ARMv5 (XScale, Sheeva), ARMv6, ARMv7
Qualcomm (Atheros, ZyDAS) MIPS32 ARMv5, ARMv6, ARMv7 Ubicom32, Ubicom64
MediaTek (Ralink) MIPS32 ARMv5, ARMv6, ARMv7
Lantiq (Infineon, Texas Instruments) MIPS32
Samsung ARMv4, ARMv5, ARMv6, ARMv7
Texas Instuments ARMv5, ARMv6, ARMv7 TMS320
Ikanos (Conexant, Analog Devices) MIPS32, Lexra ARMv5, ARMv6
Realtek Lexra, MIPS32
Intel (Digital Equipment Corporation) (Texas Instruments) ARMv4 (StrongARM), ARMv5 (XScale), ARMv6 x86, x86-64, IA-64
AMD MIPS32, MIPS64 ARMv8? x86, x86-64
Apple ARMv7
Hisilicon ARMv?
Cavium Networks MIPS32, MIPS64 ARMv4
Vitesse Semiconductor
Applied Micro Circuits Corporation ARMv8
Maxim Integrated
Freescale Semiconductor ARMv5, ARMv6, ARMv7 Motorola 68000
Allwinner Technology ARMv5, ARMv7, ARMv8
Renesas Electronics MIPS64 ARMv7 SuperH ,M32R
Sony MIPS?
Toshiba MIPS?
SiFive RISC-V

Now that we have an overview over the companies that own/license semiconductor IP, let's have a look of the available support of their products in the mainline Linux kernel or in the OpenWrt Linux kernel. We don't much care about the Android Linux kernel or about heavily modified (and outdated) Linux kernels.

TODO

For mainlined Linux kernel-drivers for the

Each different OpenWrt platform represents a set of hardware that share certain common features, such as being part of the same family of SoCs. Depending on the semiconductor company that designs the SoC, a SoC-family can consist entirely of IP blocks that are all well-supported, maybe already mainlined. But it can also contain IP blocks, for that only raggedly written, feature-poor code exists, that would never be mainlined. Or IP blocks that are completely unsupported by the Linux kernel.

ar5xxx

Qualcomm Atheros AR5xxx boards (Atheros brand)

ar71xx

Qualcomm Atheros AR7xxx, AR9xxx and QCA9xxx boards

ipq40xx

ipq806x

msm

  • not supported / removed from Linux in March 2015

adm5120

Infineon/ADMtek ADM5120

adm8668

Infineon WildPass ADM8668

AR7

TNETV1050, TNETD7200, TNETD73XX SoCs with ADSL2+ support.

Lantiq

XWAY, XRX200 SoCs with ADSL2+ and VDLS2 support in OpenWrt.

brcm47xx

Broadcom 47xx boards

bcm63xx

Broadcom 6338, 6345, 6348, 6358, 6361, 6368, 63168 among other SoCs. Working with no driver for the on-board DSL/VoIP

bcm33xx

Minimal support for some of these SoCs.

brcm2708 (= Raspberry Pi)

  • OpenWrt support is WIP
  • no, there are NO FOSS Linux drivers for the GPU. There is merely an open source wrapper for the closed source GPU driver

bcm53xx

ARM-based bcm53xx and ARM-based bcm47xx SoCs:

hi35xx

Conexant/Ikanos Solos-W

Boards based on the CX94610 SoCs.

orion

Marvell MV88F518x/MV88F528x

kirkwood

Marvell MV88F61xx/MV88F62xx

mvebu

Marvell Armada XP/370

mcs814x

Only 2 known devices (supported). Devolo dLAN USB Extender

mpc52xx

Freescale MPC52xx

mpc83xx

Freescale MPC83xx

mpc85xx

Freescale MPC8xx

imx21

imx23

Freescale i.MX23 series

imx6

Freescale i.MX6 series

oxnas

Oxford Semi OX82x / PLXTECH NAS782x

sunxi

A10/A10s/A13/A20/A23/A31/A33/A64/A80/H3/H5/H8

d1

D1 RISC-V

  • Realtek RTL8196C is unsupported, see Lexra
  • Ubicom is not supported
  • QCA msm arch was removed from Linux mainline and is unsupported.
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2024/02/26 21:40
  • by wigyori