| Both sides previous revision Previous revision Next revision | Previous revision |
| docs:techref:hardware:soc [2018/03/31 23:23] – ↷ Links adapted because of a move operation bobafetthotmail | docs:techref:hardware:soc [2024/02/26 21:40] (current) – [Allwinner] wigyori |
|---|
| ====== SoC (System on a Chip) ====== | ====== SoC (System on a Chip) ====== |
| There is the perpetual endeavor of making the Linux kernel work on possibly any piece of hardware available. A part of this work takes place inside of projects like OpenWrt, but also inside of the companies that design, manufacture or vend the hardware respectively products based upon it. More or less of this work sooner or later ends gets mainlined, i.e. the code becomes part of the mainline Linux kernel. | 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. |
| |
| Whereas of today we take it for granted to have wireless functionality as a convenience everywhere around us, in the beginning, it was a royal PITA. The IEEE 802.11 family of standards fired the imagination of what could be realized with it, BUT the available [[wp>Device driver|driver]]s for the Linux kernel were poorly written, lacked features or were non-existent. This is actually still true for some of the wireless hardware sold on the market. No matter how fantastic or potent it may be, its Linux drivers don't offer much. | 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. |
| | |
| From its foundation on OpenWrt has been focusing on CPE hardware such as routers or NAS, and much dedication was invested to support IEEE 802.11 as extensively as possible. Given that the initial hardware, the Linksys WRT54G, was sold about 400,000 times in the first months, it is safe to assume that the work done by the OpenWrt project had an impact. | |
| |
| | 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. |
| ===== Companies ===== | ===== Companies ===== |
| Most SoC manufacturers license a (soft or hard) [[docs:techref:hardware:cpu#IP core|IP core]] for a certain [[docs:techref:hardware:cpu|CPU]] design from a licensor like MIPS or ARM, then combine this with other (self-developed or licensed) (soft or hard) [[docs:techref:hardware:cpu#IP core|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 [[wp>Printed circuit board|PCB]]s for whatever purpose and solder the purchased chips (SoC, RAM, Flash) onto them. | Most SoC manufacturers license a (soft or hard) [[docs:techref:hardware:cpu#IP core|IP core]] for a certain [[docs:techref:hardware:cpu|CPU]] design from a licensor like MIPS or ARM, then combine this with other (self-developed or licensed) (soft or hard) [[docs:techref:hardware:cpu#IP core|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 [[wp>Printed circuit board|PCB]]s for whatever purpose and solder the purchased chips (SoC, RAM, Flash) onto them. |
| ^ Company ^ CPU ^^^^ IP for [[wp>Mixed-signal integrated circuit]] ^^^^^^^ | ^ Company ^ CPU ^^^^ IP for [[wp>Mixed-signal integrated circuit]] ^^^^^^^ |
| ^ ::: ^ Intruction set license for ^^^ own IP ^ wired ^^^ optical ^ wireless ^^^ | ^ ::: ^ Intruction set license for ^^^ own IP ^ wired ^^^ optical ^ wireless ^^^ |
| ^ ::: ^ [[wp>MIPS architecture|MIPS]] ^ [[wp>ARM architecture|ARM]] ^ [[wp>Power Architecture]] ^ other ^ Ethernet ^ DSL ^ DOCSIS ^ ? ^ 802.11 ^ [[wp>WiMAX]] ^ [[wp>LTE (telecommunication)|LTE]] ^ | ^ ::: ^ [[wp>MIPS architecture|MIPS]] ^ [[wp>ARM architecture|ARM]] ^ [[wp>Power Architecture]] ^ other ^ Ethernet ^ DSL ^ DOCSIS ^ GPON ^ 802.11 ^ [[wp>WiMAX]] ^ [[wp>LTE (telecommunication)|LTE]] ^ |
| | [[wp>Broadcom]] | MIPS32, MIPS64 | ARMv6, ARMv7, ARMv8 | | | ✔ | ✔ | ✔ | | ✔ | | | | | [[wp>Broadcom]] | MIPS32, MIPS64 | ARMv6, ARMv7, ARMv8 | | | ✔ | ✔ | ✔ | | ✔ | | | |
| | [[wp>Marvell]] (Intel) | | ARMv5 (XScale, Sheeva), ARMv6, ARMv7 | | | ✔ | | | | ✔ | | | | | [[wp>Marvell]] (Intel) | | ARMv5 (XScale, Sheeva), ARMv6, ARMv7 | | | ✔ | | | | ✔ | | | |
| | [[wp>Maxim Integrated]] | | | | | | | | | | | | | | [[wp>Maxim Integrated]] | | | | | | | | | | | | |
| | [[wp>Freescale Semiconductor]] | | ARMv5, ARMv6, ARMv7 | ✔ | [[wp>Motorola 68000]] | | | | | | | | | | [[wp>Freescale Semiconductor]] | | ARMv5, ARMv6, ARMv7 | ✔ | [[wp>Motorola 68000]] | | | | | | | | |
| | [[wp>Allwinner Technology]] | | ARMv5, ARMv7 | | | | | | | | | | | | [[wp>Allwinner Technology]] | | ARMv5, ARMv7, ARMv8 | | | | | | | | | | |
| | [[wp>Renesas Electronics]] | MIPS64 | ARMv7 | | [[wp>SuperH]] ,[[wp>M32R]] | | | | | | | | | | [[wp>Renesas Electronics]] | MIPS64 | ARMv7 | | [[wp>SuperH]] ,[[wp>M32R]] | | | | | | | | |
| | [[wp>Sony]] | MIPS? | | ✔ | | | | | | | | | | | [[wp>Sony]] | MIPS? | | ✔ | | | | | | | | | |
| | [[wp>Toshiba]] | MIPS? | | | | | | | | | | | | | [[wp>Toshiba]] | MIPS? | | | | | | | | | | | |
| | | [[wp>SiFive]] | | | | RISC-V | | | | | | | | |
| |
| |
| * Mindspeed Comcerto-SoC: [[toh/zyxel/nbg5715|ZyXEL NBG5715]] | * Mindspeed Comcerto-SoC: [[toh/zyxel/nbg5715|ZyXEL NBG5715]] |
| * Qualcomm Ubicom32: [[toh/d-link/dir-657|D-Link DIR-657 HD Media Router 1000]] | * Qualcomm Ubicom32: [[toh/d-link/dir-657|D-Link DIR-657 HD Media Router 1000]] |
| * Conexant/Ikanos CX94610-11Z: [[toh/xavi/xavi_7968|Xavi 7968]] | * Conexant/Ikanos CX94610-11Z: [[https://oldwiki.archive.openwrt.org/toh/xavi/xavi_7968|Xavi 7968]] |
| * Freescale MPC85xx PowerQUICC III P1014@800MHz [[toh/tp-link/tl-wdr4900|TP-Link TL-WDR4900 v1, v1.3]] | * Freescale MPC85xx PowerQUICC III P1014@800MHz [[toh/tp-link/tl-wdr4900|TP-Link TL-WDR4900 v1, v1.3]] |
| |
| |
| ===== Platforms ===== | ===== Platforms ===== |
| Each different OpenWrt **[[https://dev.openwrt.org/wiki/platforms|platform]]** represents a set of hardware that share certain common features, such as being part of the same family of [[wp>System-on-a-chip|SoC]]s. 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. | Each different OpenWrt **[[:docs:platforms:start|platform]]** represents a set of hardware that share certain common features, such as being part of the same family of [[wp>System-on-a-chip|SoC]]s. 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. |
| |
| ==== Qualcomm Atheros ==== | ==== Qualcomm Atheros ==== |
| Qualcomm Atheros AR7xxx, AR9xxx and QCA9xxx boards | Qualcomm Atheros AR7xxx, AR9xxx and QCA9xxx boards |
| * -> [[docs:techref:hardware:soc:soc.qualcomm.ar71xx]] | * -> [[docs:techref:hardware:soc:soc.qualcomm.ar71xx]] |
| | |
| | === ipq40xx === |
| | * -> [[docs:techref:hardware:soc:soc.qualcomm.ipq40xx]] |
| |
| === ipq806x === | === ipq806x === |
| |
| === hi35xx === | === hi35xx === |
| * -> [[docs:techref:hardware:soc:soc.hisilicon.hi35xx]] | * -> [[docs:techref:hardware:soc:soc.hisilicon.hi35xx]] |
| * -> [[https://github.com/ZigFisher/chaos_calmer|Attempt to integrate into OpenWrt]] and some tests [[http://www.online-translator.com/site/General/ru-en/?url=https%3a%2f%2fzftlab.org%2fpages%2f2018020900.html|EN]] [[https://zftlab.org/pages/2018020900.html|RU]] | |
| |
| ==== Ikanos ==== | ==== Ikanos ==== |
| === Conexant/Ikanos Solos-W === | === Conexant/Ikanos Solos-W === |
| Boards based on the CX94610 SoCs. | Boards based on the CX94610 SoCs. |
| * -> [[toh:xavi:xavi_7968]] | * -> [[https://oldwiki.archive.openwrt.org/toh/xavi/xavi_7968]] |
| * -> [[:oldwiki:openwrtdocs:hardware:linksys/wag54g2]] | * -> [[toh:linksys:wag54g2]] |
| |
| ==== Marvell ==== | ==== Marvell ==== |
| === mcs814x === | === mcs814x === |
| Only 2 known devices (supported). | Only 2 known devices (supported). |
| [[toh/devolo/dlan-usb-extender|Devolo dLAN USB Extender]] | [[https://oldwiki.archive.openwrt.org/toh/devolo/dlan-usb-extender|Devolo dLAN USB Extender]] |
| |
| | |
| | ==== Realtek ==== |
| | * -> [[docs:techref:hardware:soc:soc.realtek|Realtek]] |
| | |
| | ==== Rockchip ==== |
| | * -> [[docs:techref:hardware:soc:soc.rockchip|Rockchip]] |
| |
| ==== Freescale ==== | ==== Freescale ==== |
| * ->[[.:soc:soc.oxnas]] | * ->[[.:soc:soc.oxnas]] |
| |
| ===== Unsupported SoCs ===== | ==== SiFive ==== |
| | * -> [[docs:techref:hardware:soc:soc.sifive|SiFive]] |
| |
| Realtek RTL8196C is unsupported, see [[https://forum.openwrt.org/viewtopic.php?id=31551]] | ==== Allwinner ==== |
| | === sunxi === |
| | A10/A10s/A13/A20/A23/A31/A33/A64/A80/H3/H5/H8 |
| | * ->[[docs:techref:hardware:soc:soc.allwinner.sunxi]] |
| |
| Ubicom is not supported | === d1 === |
| | D1 RISC-V |
| | * ->[[docs:techref:hardware:soc:soc.allwinner.d1]] |
| | |
| | ===== Unsupported SoCs ===== |
| |
| QCA msm arch was removed from Linux mainline and is unsupported. | * Realtek RTL8196C is unsupported, see [[:docs:techref:hardware:soc:soc.realtek#lexra|Lexra]] |
| | * Ubicom is not supported |
| | * QCA msm arch was removed from Linux mainline and is unsupported. |
| |
| |