Repository navigation
rpi-loader 0.6.0
Added
- Preliminary Pi 5 (BCM2712) firmware, behind a new
bcm2712
feature, built withmake build64-bcm2712intokernel8.img(AArch64
only), with every command,eeprom-*included (through RP1's I2C0 on
the same GPIO0/1). Releases carry it as a sixth image,
rpi-loader-<version>-bcm2712-kernel8.img. Nothing in
the boot stub changed: the loader runs with the MMU off, which reaches
the Pi 5's peripherals above 4 GiB directly, and hands off at EL2 as on
the other boards. The card needsos_check=0,kernel_address=0x80000
andpciex4_reset=0inconfig.txt, and no firmware files.
Changed
CMD_SET_BAUDchecks the rate withrpi-hal's
Uart::supports_baudinstead of the firmware's own copy of the
divisor arithmetic, which assumed the 48 MHz UART clock of every board
before the Pi 5 (50 MHz there).- The EEPROM bus runs at 100 kHz on every board. It was the BSC's
reset-default divider, documented as 100 kHz for a 150 MHz core clock,
which is 166 kHz on a board running its core at 250 MHz (a Pi 3, for
one). The firmware now sets it up withrpi-hal's
init_id_with_frequency, which asks for the real core clock first; a
mailbox failure there is reported as an I2C error before the bus is
touched. - The firmware builds against
rpi-hal0.10. The wire protocol, the
CLI's arguments and the load addresses are unchanged, so a 0.5 CLI and
a 0.6 loader work together either way round.
Images
Copy the image matching your board to the SD card's boot
partition, renamed to the filename in its own name:
kernel7.img (32-bit), kernel8.img (64-bit) or kernel.img
(ARMv6). The firmware loads one of those names and no others,
chosen by the CPU it finds, and a board handed the wrong one
stops without printing anything. Use kernel8.img only with
arm_64bit=1 in config.txt.
bcm2837 covers the Pi 2 and Pi 3 (a Pi 2 v1.1 takes the
kernel7.img alone: its cores are 32-bit only); bcm2711 covers
the Pi 4; bcm2835 covers the Pi 1 and Pi Zero, and is ARMv6, so
it has no 64-bit counterpart. bcm2712 covers the Pi 5,
preliminarily: 64-bit only, and its card needs no firmware files
but a config.txt with os_check=0, kernel_address=0x80000
and pciex4_reset=0 (see the loader's README). Verify with
sha256sum -c SHA256SUMS.
rpi-loader-<version>.bash is the bash completion for the host
CLI, for installing without building it first:
sudo cp rpi-loader-<version>.bash \
/usr/share/bash-completion/completions/rpi-loaderThe host CLI is a separate install: cargo install rpi-loader.