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/15 12:30] (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.
 +
 +===== CPU caches =====
 +|  |  |  ^ 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
 +
 +See -> http://www.linux-mips.org/wiki/Caches
 +
 +===== 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. |
 +
 +===== 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.
===== Finished tasks ===== ===== Finished tasks =====
Line 88: Line 136:
**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 ======+===== 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 246:
| [[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