Skip to content

rpi-loader 0.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Nov 22:32

Added

  • --escape picks the key that leaves terminal mode, as ^X caret
    notation or a single character, and RPI_LOADER_ESCAPE sets it for
    every invocation. Ctrl-] stays the default, but a keyboard layout with
    no ] key (German, Nordic) has no reliable way to type it. The
    terminal-mode banner names the key in use, calls the default the
    telnet escape, and says how to change it.

Fixed

  • The Pi 5 firmware never answered with a bootloader from 2024-10-10
    or later.
    Those bootloaders put RP1, and so the loader's console, at
    a different CPU address than rpi-hal expects, and the first console
    access stalled the core. The loader now calls rpi-hal's new
    rp1::init before it opens the console, which moves RP1 back.
  • Ctrl-C did not stop a handshake the device talked over. The CLI
    checked for Ctrl-C only between HELLO attempts, and each attempt waited
    up to 2 s per byte for the ACK, so a device that kept printing (a
    kernel still running instead of the loader) restarted that wait with
    every byte and Ctrl-C was never noticed. Every read on the link now
    blocks for at most 100 ms and checks for Ctrl-C in between, and the
    connect line says Ctrl-C aborts.

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-loader

The host CLI is a separate install: cargo install rpi-loader.