Table of Contents

Broadcom BCM33xx

This page covers the BCM33xx SoC specificities, but the BCM63xx SoC are mostly the same chip, except that the DOCSIS/EuroDOCSIS core is replaced with a DSL one.

Linux support

BCM33xx support was partially introduced in the BCM63xx target. However, the BCM63xx target has been superseded by the BMIPS target, and we lost BCM33xx support (for now).

There is a WIP support for BCM3380 on Netgear CG3100D:

https://github.com/rikka0w0/openwrt-fast3864op/tree/bcm3380-20241014

More progress can be found here:

https://gist.github.com/rikka0w0/4e4d5feb3a50a8b64224750140f859ef

There is an attempt to run Linux on TC7200 (BCM3383): https://github.com/jclehner/linux-technicolor-tc7200

Broadcom DOCSIS

What is this Broadcom 33xx stuff?

Broadcom33xx SoC integrates DOCSIS/EuroDOCSIS features and routing.

What are 33xx variants?

There are many 33xx variants. Only those with a TLB will be supported:

Chip CPU MHz USB Device VoIP WiFi DOCSIS TLB Product ID -march Surfboard
bcm3300 n/a - - - 1.0/1.1 Yes - mips32 3100
bcm3302 ? ? ? ? - ? ? ? ?
bcm3345 140Mhz MIPS (1x) 1.1 - - 1.0/1.1 Yes? 0x28000 mips32 4200
bcm3348 200Mhz MIPS (1x) 1.1 - - 1.0/1.1/2.0 Yes ? mips32 5100
bcm3349 200Mhz MIPS (1x) 1.1 - EBI/PCMCIA 1.0/1.1/2.0 Yes ? mips32? 5101
bcm3350 100Mhz MIPS (1x) 1.1 - - 1.0/1.1 No 0x28000 mips32 4100
bcm3368 300Mhz MIPS (1x) 1.1 2 lines Expansion Bus 2.0 Yes ? mips32 -
bcm3380 333Mhz MIPS (2x) 2.0 x2 2 lines miniPCIe 3.0 Yes ? mips32 -
bcm3382 400Mhz MIPS (2x) - 2 lines - 3.0 Yes ? mips32 6182
bcm3383 600Mhz MIPS (2x) 2.0 2 lines miniPCIe 3.0 Yes ? mips32 -
bcm3384 600Mhz MIPS (2x) 2.0 ? miniPCIe 3.0 Yes ? mips32 -
bcm3390 1.5Ghz ARM (2x), 675Mhz MIPS (2x) 2.0/3.0 - miniPCIe 3.1 Yes ? armv7-a/mips32 8200

bcm3300

This chip does not include a CPU itself.

Known platforms:

bcm3302

This chip seems to be a general-purpose MIPS CPU. It is usually included with other platforms like bcm47xx and such.

bcm3345

Known platforms:

http://www.datasheetcatalog.org/datasheets2/15/155898_1.pdf

bcm3348

Known platforms:

bcm3349

Known platforms:

Source code:

bcm3350

Known platforms:

MIPS R3000 CPU without a TLB (random register always reads a 0)

Note: Ralf says this is just mostly R3000-*compatible*, so -march=mips32 is safer.

http://www.datasheetcatalog.org/datasheets/134/404172_DS.pdf

read_c0_prid() ⇒ 0x28000

NS16550 serial UART

i82559 Ethernet

Used in the SB4100 cable modem

bcm3368

Known platforms:

bcm3380

Known platforms:

bcm3383

Firmware and additional sources available for Technicolor TC7200

Known platforms:

bcm3384

As per the readme for Broadcom's open source bootloader for the bcm3384, the SoC has 2 big-endian MIPS32R1 processors:

The Viper core runs first, performing tasks including basic peripheral initialisation and preperation of the Linux image for the Zephyr.

Firmware and additional sources available for Technicolor TC7210 and TC7230

bcm3390

Known platforms:

This repo appears to provide some information (header files, register layout, and some pinouts) of the BCM3390 SoC.

There are some kernel code that related to BCM3390A0

Also this one: https://github.com/pombredanne/stblinux-3.14/tree/master/linux

Header files

Finished tasks

The support for Broadcom 33xx is at this state :

TODO

The Netgear CVG834G uses a bcm33xx chip and has GPL'd eCos. Netgear modified the Atlas driver in eCos to add the bcm3350.

Firmware/Bootloader

Surfboard modems use a VxWorks bootloader (headers). For other modems, the official broadcom bootloaders are used (BOLT and cmboot); both bootloaders are proprietary. BOLT is used on bcm3384 and later, especially on bcm3390.

Determining if secure boot is enabled

If a device is using the official broadcom bootloader (cmboot), it is possible to determine whether secure boot is enabled by looking for a “Cust key size” message on the serial console.

cmboot: secure boot and/or secure app?

It should be noted that secure boot != secure app, where the former refers to bootrom validation of code stored in flash, and secure app refers to the validation of images passed to cmboot.

While secure boot might not let you replace cmboot with another bootloader, it is still possible to boot up a 2nd-stage bootloader if secure app is not enabled.

Aeolus

Cable modems like Netgear CG3100D use a special proprietary bootloader called Aeolus. Broadcom has decided to open-source the Aeolus implementation for BCM3384. Although CG3100D is based on BCM3380, the ProgramStore utility from BCM3384's Aeolus can still be used to prepend necessary headers and compress the OpenWrt firmware image.

U-Boot

There is a U-Boot port for Netgear CG3100D by Noltari, who's also a core OpenWrt contributor. It only boots in RAM and almost everything (including ethernet and flash) does not work. See netgear_cg3100d_v3 for how to load it to your device's memory.

Devices

The list of related devices: , , , , ,