Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== 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 [[wp>Device driver|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 [[docs:techref:hardware:cpu#IP core|noyau IP]] (matériel et/ou logicielle). Pour certain le design du [[docs:techref:hardware:cpu|CPU]] issue d'une base tel que MIPS ou ARM qu'ils associent avec un [[docs:techref:hardware:cpu#IP core|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 [[wp>Printed circuit board|PCB]], pour n'importe quelle solution, propose donc ces nouvelles puces (Soc, RAM, Flash) soudé dessus. ^ Company ^ CPU ^^^^ IP for [[wp>Mixed-signal integrated circuit]] ^^^^^^^ ^ ::: ^ 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>Broadcom]] | MIPS32, MIPS64 | ARMv6, ARMv7, ARMv8 | | | ✔ | ✔ | ✔ | | ✔ | | | | [[wp>Marvell]] (Intel) | | ARMv5 (XScale, Sheeva), ARMv6, ARMv7 | | | ✔ | | | | ✔ | | | | [[wp>Qualcomm]] (Atheros, ZyDAS) | MIPS32 | ARMv5, ARMv6, ARMv7 | | Ubicom32, Ubicom64 | ✔ | | | | ✔ | | | | [[wp>MediaTek]] (Ralink) | MIPS32 | ARMv5, ARMv6, ARMv7 | | | ✔ | ✔ | | | ✔ | | | | [[wp>Lantiq]] (Infineon, Texas Instruments) | MIPS32 | | | | ✔ | ✔ | | | ✔ | | | | [[wp>Samsung]] | | ARMv4, ARMv5, ARMv6, ARMv7 | | | | | | | | | | | [[wp>Texas Instuments]] | | ARMv5, ARMv6, ARMv7 | | TMS320 | ✔ | | | | | | | | [[wp>Ikanos]] (Conexant, Analog Devices) | MIPS32, Lexra | ARMv5, ARMv6 | | | | ✔ | | | | | | | [[wp>Realtek]] | Lexra, MIPS32 | | | | ✔ | ✔ | | | ✔ | | | | [[wp>Intel]] (Digital Equipment Corporation) (Texas Instruments)| | ARMv4 (StrongARM), ARMv5 (XScale), ARMv6 | | x86, x86-64, IA-64 | ✔ | | ✔ | | ✔ | | | | [[wp>Advanced Micro Devices|AMD]] | MIPS32, MIPS64 | ARMv8? | | x86, x86-64 | | | | | | | | | [[wp>Apple]] | | ARMv7 | | | | | | | | | | | [[ wp>Cavium Networks]] | MIPS32, MIPS64 | ARMv4 | | | | | | | | | | | [[wp>Vitesse Semiconductor]] | | | | | | | | | | | | | [[wp>Applied Micro Circuits Corporation]] | | ARMv8 | ✔ | | | | | | | | | | [[wp>Maxim Integrated]] | | | | | | | | | | | | | [[wp>Freescale Semiconductor]] | | ARMv5, ARMv6, ARMv7 | ✔ | [[wp>Motorola 68000]] | | | | | | | | | [[wp>Allwinner Technology]] | | ARMv5, ARMv7 | | | | | | | | | | | [[wp>Renesas Electronics]] | MIPS64 | ARMv7 | | [[wp>SuperH]] ,[[wp>M32R]] | | | | | | | | | [[wp>Sony]] | MIPS? | | ✔ | | | | | | | | | | [[wp>Toshiba]] | MIPS? | | | | | | | | | | | * [[http://www.amd.com/us/press-releases/Pages/Press_Release_20175.aspx|2002-04-29: AMD Adopts MIPS Technologies’ 64-BIT Architecture]] ==== Exemples de produit avec des SoC exotiques ==== * Cavium CNS1202: [[toh/cisco/rvs4000_v2|Cisco RVS4000 v2]] * Mindspeed Comcerto-SoC: [[toh/zyxel/nbg5715|ZyXEL NBG5715]] * Qualcomm Ubicom32: [[toh/d-link/dir-657|D-Link DIR-657 HD Media Router 1000]] * 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]] ===== 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. [[https://forum.openwrt.org/viewtopic.php?id=17370|BCM63xx codebase with GPL'd Ethernet and USB support]] proves, that sometimes FOSS drivers for Ethernet NICs are not available. * IEEE 802.11 cf. [[wp>Comparison of open-source wireless drivers]] and [[http://wireless.kernel.org/en/users/Drivers]] * DSL is a Layer1 protocol; as Layer2 protocol usually [[wp>Asynchronous Transfer Mode|ATM]] is employed. Cf. [[wp>PPPoE#How_PPPoE_fits_in_the_DSL_Internet_access_architecture|PPPoEoA vs. PPPoE to PPPoA]]. Long story short, we require support for ATM in the Linux kernel: * [[https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/net/atm/Kconfig|/net/atm/Kconfig]] * [[https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/Documentation/networking/atm.txt|Documentation/atm.txt]] * For the Lantiq xDSL support cf. [[docs:techref:hardware:soc: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 **[[https://dev.openwrt.org/wiki/platforms|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 [[wp>System-on-a-chip|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) /* In 2011, Atheros became a subsidiary of Qualcomm operating under the name [[wp>Qualcomm Atheros]] */ * -> [[docs:techref:hardware:soc:soc.qualcomm.ar5xxx]] === ar71xx === Qualcomm Atheros AR7xxx, AR9xxx and QCA9xxx boards * -> [[docs:techref:hardware:soc:soc.qualcomm.ar71xx]] ==== Lantiq / Infineon ==== === adm5120 === Infineon/ADMtek ADM5120 * -> [[docs:techref:hardware:soc:soc.adm5120]] === adm8668 === Infineon WildPass ADM8668 * -> [[docs:techref:hardware:soc:soc.adm8668]] === Lantiq === XWAY, XRX200 SoCs with ADSL2+ and VDLS2 support in OpenWrt. * -> [[docs:techref:hardware:soc:soc.lantiq]] ==== MediaTek / Ralink ==== * -> [[docs:techref:hardware:soc:soc.mediatek]] === ramips === Ralink rt288x/rt305x/rt3883 Wireless Single Chip AP/Router SoCs * -> [[docs:techref:hardware:soc:soc.ralink]] ==== Broadcom ==== === brcm47xx === Broadcom 47xx boards * -> [[docs:techref:hardware:soc:soc.broadcom.bcm47xx]] === 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 * -> [[docs:techref:hardware:soc:soc.broadcom.bcm63xx]] === bcm33xx === Still no support for these SoCs. * -> [[docs:techref:hardware:soc:soc.broadcom.bcm33xx]] === 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: * -> [[docs:techref:hardware:soc:soc.broadcom.bcm53xx]] ==== Ikanos ==== === Conexant/Ikanos Solos-W === Boards based on the CX94610 SoCs. * -> [[https://oldwiki.archive.openwrt.org/toh/xavi/xavi_7968]] * -> [[toh:linksys:wag54g2]] ==== Marvell ==== === orion === Marvell MV88F**5**18x/MV88F528x * ->[[docs:techref:hardware:soc:soc.marvell]] === kirkwood === Marvell MV88F**6**1xx/MV88F62xx * ->[[docs:techref:hardware:soc:soc.marvell]] === mvebu === Marvell Armada XP/370 * ->[[docs:techref:hardware:soc:soc.marvell]] ==== Moschip ==== === mcs814x === Only 2 known devices (supported). [[toh/devolo/dlan-usb-extender|Devolo dLAN USB Extender]] ==== Freescale ==== === mpc52xx === Freescale MPC52xx * ->[[docs:techref:hardware:soc:soc.freescale.mpc]] === mpc83xx === Freescale MPC83xx * ->[[docs:techref:hardware:soc:soc.freescale.mpc]] === mpc85xx === Freescale MPC8xx * ->[[docs:techref:hardware:soc:soc.freescale.mpc]] === imx21 === * broken: https://dev.openwrt.org/changeset/35487 === imx23 === Freescale i.MX23 series * ->[[docs:techref:hardware:soc:soc.freescale.imx]] === imx6 === Freescale i.MX6 series * ->[[docs:techref:hardware:soc:soc.freescale.imx]] ==== Oxford / PLXTECH / Avago ==== === oxnas === Oxford Semi OX82x / PLXTECH NAS782x * ->[[docs:techref:hardware:soc:soc.oxnas]] Last modified: 2019/08/05 09:19by tmomas