BCM2711

Tags: arch:arm64 chip:bcm2711 vendor:broadcom experimental

Warning

The support for this chip is experimental. Not all features are implemented and they have not been extensively tested by many users.

Help is wanted if you are interested in supporting a feature or if you’ve found an issue with any of the implementation! See the contributing guidelines.

The BCM2711 is a Broadcom SoC used for the Raspberry Pi 4B board.

  • CPU: Quad-core ARM Cortex-A72

  • Interrupt Controller: GIC400

Supported Peripherals

Peripheral

Support

I2C

Full interrupt-based support. No 10b addressing.

UART

Mini UART yes, PL011 no

GPIO

Partial

MAILBOX

Partial (polled method, only commands used by firmware are implemented)

EMMC2

Interrupt-based support, no DMA.

EMMC

Supported alongside EMMC2 in theory, but untested.

PWM

No

SPI

Interrupt-based driver (no DMA) for all SPI except 1 & 2 (auxiliary)

PCM

No

Warning

The SPI driver implemented for the BCM2711 has only been tested on SPI0. It appears that even using the special overlays for the device tree passed to the proprietary firmware does not properly initialize the remaining SPI interfaces, and thus they have not been working properly. More effort is required to reverse engineer the magic incantations required to initialize these interfaces, at which point it is assumed that the driver implementation should extend to SPI3-6.

Warning

The EMMC2 peripheral connects to the microSD card slot on the Raspberry Pi 4B. Currently, it has passed testing with a few different uSD cards. The only quirks are:

  • No card insertion/removal interrupts work, so hotswapping isn’t possible

  • Multi-block transfers must be restricted to 1 block at a time (CONFIG_MMCSD_MULTIBLOCK_LIMIT=1), since the upper-half driver’s method of doing block setup is not immediately compatible with the BCM2711 EMMC controller. Changes to the common-upperhalf would require extensive testing, so this performance sacrifice is done for correct behaviour in the short-term.

All in all, be aware of issues with the SD card implementation.

Supported Boards