The Undocumented Pi

=Hardware=

SoC
There is a nicely ordered table with all BCM2835_registers as found in the GPU code published by Broadcom. Unfortunately, the table does not quite match the SoC in the Raspberry Pi, but it's a good start. The sections below should serve as a companion to that table.

BCM283x
There is a VCE block to accelerate video encoding/decoding. No documentation AFAIK.

BCM2711
The BCM2711 does not have PLLH.

The VCE block was apparently removed, but there is now a HEVC block.

PMIC
The BCM2835 chip has an on-chip SMPS and an LDO for the LPDDR2 memory chip. RPi2 and RPi3 B use custom circuitry made of discrete components to do the power-up sequencing, including an NCP6343 chip (datasheet) at I²C address 0x1c. The RPi 3B+ and RPi 4B boards contain a MaxLinear MxL7704 (datasheet) at address 0x1d.

The PMIC is always on the system I²C bus (I2C8 on RPi4, I2C0 on all other devices).

See also this very informative blog post by James Adams.

=Boot ROM=

=Firmware=

=Abbreviations=


 * CM
 * Clock Manager


 * HSM
 * HDMI State Machine


 * OTP
 * One-Time Programmable (memory)