Differences

This shows you the differences between two versions of the page.

doc:hardware:soc:soc.broadcom.bcm63xx [2013/07/13 08:40]
lorema move the Pinout above the known platforms
doc:hardware:soc:soc.broadcom.bcm63xx [2014/04/24 16:19] (current)
danitool
Line 8: Line 8:
===== Linux support ===== ===== Linux support =====
  * The OpenWrt support for the Broadcom BCM63xx SoC family currently only works with following models:   * The OpenWrt support for the Broadcom BCM63xx SoC family currently only works with following models:
 +        * **6318**
        * **6328**         * **6328**
        * **6338**         * **6338**
Line 13: Line 14:
        * **6348**         * **6348**
        * **6358**         * **6358**
-        * **6362** +        * **6361** / **6362** 
-        * **6368** +        * **6368** / **6369** 
-  * There are working drivers for USB (OHCI and EHCI) and Ethernet under the GPL+        * **63168** / **63169** / **63268** / **63269** 
 +  * There are working drivers for USB Host (OHCI and EHCI) and Ethernet under the GPL. USB Device drivers are also supported but only for BCM6368 and newer SoCs. 
 +  * -> [[doc/techref/brcm63xx.imagetag]] 
 + 
 +==== Linux support for Broadcom xDSL ==== 
 +  * -> [[inbox/adsl_support]] effort to make it work again on Linux kernel 2.6.8.1 from 2004-08-14
  * xDSL and ATM are **not supported**. Not by some binary nor are there GPL drivers available!   * xDSL and ATM are **not supported**. Not by some binary nor are there GPL drivers available!
    * Belkin has released [[http://www.belkin.com/uk/support/article/?lid=enu&pid=F5D7633uk4A&aid=9294&scid=314|"GPL code for the F5D7633"]], but it only has binary Broadcom drivers.     * Belkin has released [[http://www.belkin.com/uk/support/article/?lid=enu&pid=F5D7633uk4A&aid=9294&scid=314|"GPL code for the F5D7633"]], but it only has binary Broadcom drivers.
Line 22: Line 28:
    * Netgear has released some sources for DSL-driver: [[ftp://downloads.netgear.com/files/GPL/DG834GBv4_V5.01.01_src.zip|DG834GBv4 GPL and closed code]]     * Netgear has released some sources for DSL-driver: [[ftp://downloads.netgear.com/files/GPL/DG834GBv4_V5.01.01_src.zip|DG834GBv4 GPL and closed code]]
    * Inteno has released some sources for ARxx and DG200-FG200 Series which uses Broadcom BCM6368 chip: [[ftp://bgpl:bgpl@project.inteno.se/Broadcom/|bcm963xx_4.02L.01 & bcm963xx_3.12L.01]]     * Inteno has released some sources for ARxx and DG200-FG200 Series which uses Broadcom BCM6368 chip: [[ftp://bgpl:bgpl@project.inteno.se/Broadcom/|bcm963xx_4.02L.01 & bcm963xx_3.12L.01]]
- +    * http://www.neufbox4.org/forum/viewtopic.php?pid=15930#p15930
-  * -> [[doc/techref/brcm63xx.imagetag]] +
- +
-==== Linux support for ADSL ==== +
-  * -> [[inbox/adsl_support]]+
==== Dual Core ==== ==== Dual Core ====
-Some SoCs like BCM6358 or BCM6368 has two cores, however** OpenWrt only uses 1 core**. Spite there is SMP code for using two cores in the kernel (see [[http://lxr.free-electrons.com/source/arch/mips/kernel/smp-bmips.c|smp-bmips.c]]), it seems hard to use both cores: it is needed to initialize the second cpu; also the irq code code currently only enables irqs on the first cpu, so only userspace can use the second core, all interrupt handlers will use the first one.+Some SoCs like BCM6358 or BCM6368 have two cores, however **<color red>OpenWrt only uses 1 core</color>**. Spite there being [[wp>Symmetric multiprocessing|SMP]] code for using two cores in the kernel (see [[http://lxr.free-electrons.com/source/arch/mips/kernel/smp-bmips.c|smp-bmips.c]]), it seems hard to use both cores: it is needed to initialize the second cpu; also the irq code code currently only enables irqs on the first cpu, so only userspace can use the second core, all interrupt handlers will use the first one.
-> [[doc:hardware:soc:soc.broadcom.bcm63xx:smp|SMP/CMT Broadcom 63xx]] -> [[doc:hardware:soc:soc.broadcom.bcm63xx:smp|SMP/CMT Broadcom 63xx]]
Line 36: Line 38:
===== Existent 63xx variants ===== ===== Existent 63xx variants =====
-There are eight main 63xx variants: +^ SoC ^ CPU MHz ^ Dual Core ^ RAM ^ USB Device ^ USB Host ^ PCMCIA/PCCARD ^ PCI ^ PCIe ^ Wireless NIC ^ ADSL2 ^ ADSL2+ ^ VDSL ^ VDSL2 ^ Fiber ^ OpenWrt ^ 
- +| **bcm6318** |  333  |  ☐  |  DDR2  |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | | 
-^ SoC ^ CPU MHz ^ Dual Core ^ USB Device ^ USB Host ^ PCMCIA/PCCARD ^ PCI ^ PCIe ^ Wireless NIC ^ ADSL2 ^ ADSL2+ ^ VDSL ^ VDSL2 ^ Fiber ^ OpenWrt ^ +| **bcm6328** |  320  |  ☐ |  DDR2 |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | 12.09 | 
-| **bcm6328** |  320  |  ☐  |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | 12.09 | +| **bcm6329** |  320  |  ✔ |  DDR2 |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  | | 
-| **bcm6329** |  320  |  ✔  |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  | | +| **bcm6335** |  140  |   ☐  |  SDR |  ☐  |  ☐  |  ☐ |  ☐  |  ☐  |  ☐  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |
-| **bcm6345** |  140  | ☐  |  1.1 |  ☐  |  |  ☐  |  ☐  |  ☐  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] +| **bcm6338** |  240 | ☐  | SDR  1.1 |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ✔  |  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]]
-| **bcm6335** |  140 |   ☐  |   ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ✔  |  |  ☐  |  ☐  |  ☐  | +| **bcm6345** |  140 |  ☐ |  SDR |  1.1  |  ☐  |  |  ☐  |  ☐  |  ☐  |  ✔  |  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] | 
-| **bcm6338** |  240 |  ☐  |  1.1  |  ☐  |  |  ☐  |  ☐  |  ☐  |  ✔  |  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] | +| **bcm6348** |  240<nowiki>|</nowiki>256  |  ☐ |  SDR |  1.1  |  1.1  |  ✔  |  ✔  |  ☐  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] | 
-| **bcm6348** |  240<nowiki>|</nowiki>256  |  ☐  |  1.1  |  1.1  |  ✔  |  ✔  |  ☐  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] | +| **bcm6358** |  300  |  ✔ |  DDR |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] | 
-| **bcm6358** |  300  |  ✔  |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] | +| **bcm6359** |  300  |  ✔ |  DDR |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] | 
-| **bcm6359** |  300  |  ✔  |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  | [[http://downloads.openwrt.org/backfire/10.03.1/brcm63xx/|10.03]] | +| **bcm6361\\ bcm6362** |  400  |  ✔ |  DDR2 |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ✔  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | [[https://dev.openwrt.org/changeset/32923/trunk|r32923]] | 
-| **bcm6361/6362** |  400  |  ✔  |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ✔  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  | [[https://dev.openwrt.org/changeset/32923/trunk|r32923]] | +| **bcm6367** |  400  |  ✔ |  DDR |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ✔  |  ✔  |  ✔  |  ☐  |  ☐  | 12.09 | 
-| **bcm6367** |  400  |  ✔  |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ✔  |  ✔  |  ✔  |  ☐  |  ☐  | 12.09 | +| **bcm6368** |  400  |  ✔ |  DDR |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ✔  |  ✔  |  ✔  |  ✔  |  ☐  | 12.09 | 
-| **bcm6368** |  400  |  ✔  |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ✔  |  ✔  |  ✔  |  ✔  |  ☐  | 12.09 | +| **bcm6369** |  400  |  ✔ |  DDR |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  | | 
-| **bcm6369** |  400  |  ✔  |  2.0  |  2.0  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  | | +| **bcm63168\\ bcm63268** |  400  |  ✔ |  DDR2 |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ✔  |  ✔  |  ✔  |  ✔  |  ✔  |  ☐  |  | 
-| **bcm63168/63268** |  400  |  ✔  |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ✔  |  ✔  |  ✔  |  ✔  |  ✔  |  ☐  |  | +| **bcm63169\\ bcm63269** |  400  |  ✔ |  ? |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  | 
-| **bcm63169/63269** |  400  |  ✔  |  2.0  |  2.0  |  ☐  |  ☐  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  | +| **bcm6816** |  300  |  ✔ |  ? |  2.0  |  2.0  |  ✔  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ✔  |  | 
-| **bcm6816** |  300  |  ✔  |  2.0  |  2.0  |  ✔  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ✔  |  | +| **bcm6818** |  400  |  ✔ |  ? |  2.0  |  2.0  |  ✔  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ✔  |  |
-| **bcm6818** |  400  |  ✔  |  2.0  |  2.0  |  ✔  |  ✔  |  ✔  |  ☐  |  ☐  |  ☐  |  ☐  |  ☐  |  ✔  |  |+
  * The third digit, when set to 3 (like in BCM6335, BCM6338) denotes a single-chip and cost-reduction oriented design.   * The third digit, when set to 3 (like in BCM6335, BCM6338) denotes a single-chip and cost-reduction oriented design.
  * There are also some other variants like bcm6341, which is a DSP used in VoIP products in conjunction with a BCM6348 SoC.   * There are also some other variants like bcm6341, which is a DSP used in VoIP products in conjunction with a BCM6348 SoC.
-===== Finished tasks ===== +===== CPU caches ===== 
-The support for Broadcom 63xx is at this state :+|  |  |  ^ icache ^^^^ dcache ^^^^^ 
 +|SoC | CPU version |  Core  |  Size (kB)  | Associativity |  Linesize (bytes)  | Cache policy  |  Size (kB) |  Associativity  |  Aliases  |  Linesize (bytes)  |  Cache policy  | 
 +| BCM6348 | **BMIPS3300 V0.7** |  0  |  16  |  2-way  |  16  | VIPT  |  8 |  2-way  |  ☐  |  16  |  VIPT  | 
 +| BCM6358 | **BMIPS4350 V1.0** |  0  |  32  |  2-way  |  16  | VIPT  |  16 |  2-way  |  ✔  |  16  |  VIPT  | 
 +| ::: | ::: |  1  |  16  |  2-way  |  16  | VIPT  | ::: | ::: | ::: | ::: | ::: | 
 +| BCM6368 | **BMIPS4350 V3.1** |  0  |  64  |  4-way  |  16  | VIPT  |  32 |  2-way  |  ✔  |  16  |  VIPT  | 
 +| ::: | ::: |  1  |  64  |  4-way  |  16  | VIPT  | ::: | ::: | ::: | ::: | ::: | 
 +| BCM6328 | **BMIPS4350 v7.5** |  0  |  32  |  4-way  |  16  | VIPT  |  32 |  2-way  |  ✔  |  16  |  VIPT  | 
 +| BCM63168 | **BMIPS4350 V8.0** |  0  |  64  |  4-way  |  16  | VIPT  |  32 |  2-way  |  ✔  |  16  |  VIPT  | 
 +| ::: | ::: |  1  |  64  |  4-way  |  16  | VIPT  | ::: | ::: | ::: | ::: | ::: | 
 +**VIPT** = Virtually indexed, physically tagged
-  * Full Linux support for BCM6338, BCM6345, BCM6348 and BCM6358 with runtime detection of the SoC on which the kernel is running +See -> http://www.linux-mips.org/wiki/Caches 
-  * GPL drivers for Ethernet, OHCI, EHCI, SPI, Watchdog + 
-  * No available drivers (neither binary, nor GPL) for DSL, ATM, VoIP, on-board SLIC/SLAC+===== TRNG ===== 
 +[[wp>Hardware_random_number_generator|Hardware random number generator]] 
 + 
 +Only available in **BCM6368** SoC. GPL supported. 
 +[[http://lxr.free-electrons.com/source/drivers/char/hw_random/bcm63xx-rng.c|bcm63xx-rng.c]] 
 +[[http://lxr.free-electrons.com/source/arch/mips/bcm63xx/dev-rng.c|dev-rng.c]] 
 + 
 +| {{:meta:icons:tango:dialog-information.png?24x24&nolink|}}|To take advantage of this hardware feature **rng-tools** should be installed. | 
 + 
 +===== Cipher Engine ===== 
 +BCM63xx SoCs have [[doc/hardware/cryptographic.hardware.accelerators|cryptographic hardware accelerators]]. The Cipher engine accelerates the IPSec protocol by using dedicated hardware blocks. BCM63XX SoCs (all family? FIXME) are implemented with the Encapsulating Security Payload (ESP) and Authentication Header (AH) IPSec protocols: 
 +  * **AES and DES/3DES** hardware encryption and decryption. 
 +    * AES in both Cipher Block Chaining (CBC) mode and Counter (CTR) mode. Can be performed in 128-, 192-, and 256-bit modes. 
 +    * DES, 3DES in Cipher Block Chaining (CBC) mode 
 +  * **HMAC-SHA1 and HMAC-MD5** authentication in hardware. 
 + 
 +This what Broadcom calls **SPU**. The driver is available with GPL 
 + 
 +http://code.google.com/p/gfiber-gflt100/source/browse/bcmdrivers/opensource/char/spudd/impl2/ 
 + 
 +this code isn't still ported to OpenWRT, thus no crypto acceleration available 
 + 
 +===== SPI ===== 
 +[[wp>Serial_Peripheral_Interface_Bus|Serial Peripheral Interface]] 
 + 
 +Two types of SPI controllers are present in BCM63xx: 
 +  * **SPI** 
 +  * **HSSPI**: High speed SPI, only available in BCM6328/BCM6362 SoCs 
 + 
 +By default only one Slave Select is available. Additional Slave Selects are at GPIO lines, but they need to be activated. 
 +| |^ SPI Slave Select (GPIOs) ^^^^ 
 +| | Slave Select 1 | Slave Select 2 | Slave Select 3 | Slave Select 4 | Slave Select 5 | 
 +| **BCM6348** |  ✔  | GPIO29 | GPIO30 | GPIO31 | ☐ | 
 +| **BCM6358** |  ✔  | GPIO32 | GPIO33 | ? | ? | 
 +| **BCM6368** |  ✔  | GPIO28 | GPIO29 | GPIO30 | GPIO31 | 
 + 
 +Snippet code example for converting these GPIOs to **SPI-SS#**: 
 + 
 +http://pastebin.com/g0bQGPRj 
 + 
 +===== GPIOs ===== 
 +[[doc/hardware/port.gpio|General Purpose Input/Output]]
 +BCM63xx GPIO lines aren't capable of generating interrupts, they use the polling method when configured as inputs (buttons). As a result of this, some input drivers using GPIO interrupts won't work.
===== Bootloader ===== ===== Bootloader =====
Line 88: Line 141:
**Note**: not all CFEs have internally the dm/sm command, as a result of this cfetool may not work with some devices. Alternatively you can dump the flash via traditional methods like JTAG or with an OpenWrt ramdisk firmware version. **Note**: not all CFEs have internally the dm/sm command, as a result of this cfetool may not work with some devices. Alternatively you can dump the flash via traditional methods like JTAG or with an OpenWrt ramdisk firmware version.
-====== How to help ======+===== Finished tasks ===== 
 +The support for Broadcom 63xx is at this state : 
 + 
 +  * Full Linux support for BCM6338, BCM6345, BCM6348 and BCM6358 with runtime detection of the SoC on which the kernel is running 
 +  * GPL drivers for Ethernet, OHCI, EHCI, SPI, Watchdog 
 +  * No available drivers (neither binary, nor GPL) for DSL, ATM, VoIP, on-board SLIC/SLAC 
 + 
 +===== How to help =====
  * Download: [[ftp://downloads.netgear.com/files/GPL/DG834GBv4_V5.01.01_src.zip|DG834GBv4 GPL and closed code]] and help writing specification for the DSL core, the place to host specifications is [[http://bcm63xx.sipsolutions.net|BCM63xx at Sipsolutions.net]].   * Download: [[ftp://downloads.netgear.com/files/GPL/DG834GBv4_V5.01.01_src.zip|DG834GBv4 GPL and closed code]] and help writing specification for the DSL core, the place to host specifications is [[http://bcm63xx.sipsolutions.net|BCM63xx at Sipsolutions.net]].
 +  * Dual core SMP/CMT still needs further work, specially for BCM6358 with a shared TLB. If you know how to get rid of the problem of having a shared TLB between 2 cores, with working code, please contact with developers\\ see -> [[doc/hardware/soc/soc.broadcom.bcm63xx/smp#tlb.exception.handlers|TLB exception handlers]]
===== BCM6348 pinout ===== ===== BCM6348 pinout =====
Line 197: Line 258:
| [[http://www.netgear.com/home/products/wirelessrouters/high-performance/DGND3700.aspx|Netgear DGND3700 (v1)]] | | [[http://www.netgear.com/home/products/wirelessrouters/high-performance/DGND3700.aspx|Netgear DGND3700 (v1)]] |
| [[http://intenogroup.com/store/tabid/88/categoryid/3/productid/2/default.aspx|Inteno DG201]] | | [[http://intenogroup.com/store/tabid/88/categoryid/3/productid/2/default.aspx|Inteno DG201]] |
 +| [[toh/thomson/tg789vn|Thomson TG789vn]] |
 +| [[toh/comtrend/vr3025u|Comtrend VR-3025u]] |
 +| [[toh/comtrend/vr3025un|Comtrend VR-3025un]] |
 +
 +==== Known 63168 platforms*: ====
 +| [[http://www.airties.com/products/dslgw/Air5650| Airties Air 5650]] (commonly shipped to TTnet Hipernet customers in Turkey) |
 +
==== Known 63268 platforms*: ==== ==== Known 63268 platforms*: ====
| [[http://www.inteno.se/store/tabid/141/categoryid/125/productid/678/default.aspx|Inteno DG301]] (commonly shipped to Sonera customers in Finland) | | [[http://www.inteno.se/store/tabid/141/categoryid/125/productid/678/default.aspx|Inteno DG301]] (commonly shipped to Sonera customers in Finland) |
 +
===== Tags ===== ===== Tags =====
-{{tag>bcm63xx bcm6328 bcm6338 bcm6345 bcm6348 bcm6358 bcm6361 bcm6362 bcm6368 bcm6816 }}+{{tag>bcm63xx bcm6328 bcm6338 bcm6345 bcm6348 bcm6358 bcm6361 bcm6362 bcm6368 bcm6816 bcm63168 bcm63268 }}

Back to top

doc/hardware/soc/soc.broadcom.bcm63xx.1373697636.txt.bz2 · Last modified: 2013/07/13 08:40 by lorema