SoC (System on a Chip - système sur une puce)
Faire fonctionner le noyau GNU/Linux sur la plus grande quantité de composant matériel possible est un perpétuel défi. Une partie de ce travail se retrouve au sain de projet tel qu'OpenWrt, mais aussi au sein des entreprises qui développement, construisent ou vendent ces matériels spécifique. Grace a ce travail continue, ces nouvelles compatibilités sont étendu à autant de matériel que possible afin de devenir indispensable au noyau GNU/Linux et finissent par en faire complètement partie.
Bien qu'aujourd'hui nous considérons les fonctionnalités sans fil (Wifi, Bluetooth, ...) comme faisant indispensable, et nous entourant, au début de ces technologies, c'était une vrai plaie. Au début du standard IEEE 802.11, l'étendu des possibilités excitait tout le monde. MAIS la disponibilité des pilotes pour le noyau GNU/Linux était très pauvre, si bien qu'une grande majorité des fonctionnalités étaient tout simplement inexistante. C'est toujours le cas pour certain matériel sans fil vendu dans le commerce. Peut importe sa puissance et sa beauté, les pilotes GNU/Linux n'offre pas plus.
Depuis sa création, OpenWrt est principalement développé pour les matériels CPE, tel que les routeurs ou les NAS, et une part importante du temps s'est concentré sur le support de la norme IEEE 802.11 en tant que possible extension. Sachant cela, le premier matériel supporté (Linksys WRT54G) a été vendu plus de 400 000 fois au cours du premier mois. C'est encourageant de voir que le travail abattu par le projet OpenWrt a eu un impact plus que positif.
Entreprises
La plus part des fabricant de SoC mettent sous licence propriétaire le noyau IP (matériel et/ou logicielle). Pour certain le design du CPU issue d'une base tel que MIPS ou ARM qu'ils associent avec un noyau IP (auto-développé ou en payant une licence propriétaire) (matériel et/ou logicielle) pour le DSP, le sans-fil, le VoIP, le son, les switch, et plein d'autres fonctionnalités et passent commande pour ces puces à des fondeur de semi-conducteur. Ces puces, SoC, sont ensuite achetés par différents fabricant de routeur. De ce fait, le dernier design de PCB, pour n'importe quelle solution, propose donc ces nouvelles puces (Soc, RAM, Flash) soudé dessus.
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 | ? | 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 | ||||||||||
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 | ||||||||||
Renesas Electronics | MIPS64 | ARMv7 | SuperH ,M32R | ||||||||
Sony | MIPS? | ✔ | |||||||||
Toshiba | MIPS? |
Exemples de produit avec des SoC exotiques
- Cavium CNS1202: Cisco RVS4000 v2
- Mindspeed Comcerto-SoC: ZyXEL NBG5715
- Qualcomm Ubicom32: D-Link DIR-657 HD Media Router 1000
- Conexant/Ikanos CX94610-11Z: Xavi 7968
- Freescale MPC85xx PowerQUICC III P1014@800MHz TP-Link TL-WDR4900 v1, v1.3
Support GNU/Linux
Maintenant que nous avons découvert ces entreprise qui détiennent les licences des semi-conducteurs IP, regardons la disponibilité du support de ces produits dans les grandes lignes du noyau GNU/Linux ou dans le noyau GNU/Linux d'OpenWrt. Nous ne nous soucierons pas de ce qu'il se passe dans le noyau GNU/Linux d'Android ou d'autre noyau GNU/Linux sauvagement modifié (ou plus mis à jour).
TODO
For mainlined Linux kernel-drivers for the
- IEEE 802.3 (Ethernet) cf. ?
- E.g. BCM63xx codebase with GPL'd Ethernet and USB support proves, that sometimes FOSS drivers for Ethernet NICs are not available.
- DSL is a Layer1 protocol; as Layer2 protocol usually ATM is employed. Cf. PPPoEoA vs. PPPoE to PPPoA. Long story short, we require support for ATM in the Linux kernel:
- For the Lantiq xDSL support cf. soc.lantiq. Any better sources?
- FOSS support for the Broadcom DSL-IP does not exist.
- FOSS support for the Ikanos/Conexant DSL-IP does not exist.
Platformes
Chaque platforme différente d'OprnWrt représente une disposition particulière de matériel qui se partagent des fonctionnalités communes, comme faire partie de la famille d'un SoC. Le design de ce SoC dépendant de l'entreprise qui a conçu ce semi-conducteur, une famille de SoC peut être entièrement dépendant de blocs IP qui sont correctement supporté, peut être déjà dans les grandes lignes du noyau. Mais il peut aussi contenir des blocs IP nouveau et dont les fonctionnalités sont pauvre et qui ne seront jamais entièrement supporté dans le noyau GNU/Linux. Ou contenant des blocs IP complètement supporté dans le noyau GNU/Linux.
Qualcomm Atheros
ar5xxx
Qualcomm Atheros AR5xxx boards (Atheros brand)
ar71xx
Qualcomm Atheros AR7xxx, AR9xxx and QCA9xxx boards
Lantiq / Infineon
adm5120
Infineon/ADMtek ADM5120
adm8668
Infineon WildPass ADM8668
Lantiq
XWAY, XRX200 SoCs with ADSL2+ and VDLS2 support in OpenWrt.
MediaTek / Ralink
ramips
Ralink rt288x/rt305x/rt3883 Wireless Single Chip AP/Router SoCs
Broadcom
brcm47xx
Broadcom 47xx boards
bcm63xx
Broadcom 6338/6345/6348/6358/6361/6362/6368/6816 SoC. Working with no driver for the on-board DSL/VoIP on 6338/6348/6358
bcm33xx
Still no support for 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:
Ikanos
Conexant/Ikanos Solos-W
Boards based on the CX94610 SoCs.
- → wag54g2
Marvell
orion
Marvell MV88F518x/MV88F528x
kirkwood
Marvell MV88F61xx/MV88F62xx
mvebu
Marvell Armada XP/370
Moschip
mcs814x
Only 2 known devices (supported). Devolo dLAN USB Extender
Freescale
mpc52xx
Freescale MPC52xx
mpc83xx
Freescale MPC83xx
mpc85xx
Freescale MPC8xx
imx21
imx23
Freescale i.MX23 series
imx6
Freescale i.MX6 series
Oxford / PLXTECH / Avago
oxnas
Oxford Semi OX82x / PLXTECH NAS782x