Raspberry Pi 4B - General Information

The RPi4B is produced by Raspberry Pi Ltd and comes in four varieties with 1, 2, 4, and 8 GiB of RAM. It is powered by a BCM2711 from Broadcom, its main components are four ARM Cortex-A72 CPUs and a VideoCore VI GPU.

Revision Codes

It is possible to request a revision code from the firmware in which the amount of RAM is encoded. The table below is an excerpt from raspberrypi.com.

Code (0h) Revision RAM
A03111 1.1 1GiB
B03111 1.1 2GiB
B03112 1.2 2GiB
B03114 1.4 2GiB
B03115 1.5 2GiB
C03111 1.1 4GiB
C03112 1.2 4GiB
C03114 1.4 4GiB
C03115 1.5 4GiB
D03114 1.4 8GiB
D03115 1.5 8GiB

Peripherals

The start address of the main peripherals is 0x7C00_0000 which is mapped to 0xFC00_0000 in low peripheral mode.

GPIO

The RPi4B has a 40 pin general purpose input/output (GPIO) header, internally the BCM2711 has 58 GPIO lines some of which are connected to the header. The GPIO control and access registers are available at 0x7E20_0000 and are fully documented in the official datasheet.

Serial ports

The RPi4B has six uart serial ports available. One Mini UART and five ARM PL011.

The Mini UART, refered to as UART1, is similar to a 16550 UART (details in the official datasheet) and is a part of the Auxiliary peripherals available at 0x7E21_5000.

The ARM PL011s behave according to ARM specifications and are referred to as UART0 through UART5, skipping UART1. They are available at 0x7E20_1000, 0x7E20_1400, 0x7E20_1600, 0x7E20_1800, and 0x7E20_1A00 respectively.

Datasheet

There is an, incomplete, published datasheet for the BCM2711 available at datasheets.rasberrypi.com. Multiple peripherals are not documented here but can be seen in the Device Tree. A good source for additional information is the raspberry pi bare metal forum.