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.