diff --git a/README.md b/README.md index 58a2237..b837dae 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,15 @@ This repository contains the scripts and pre-compiled binaries used to create the `rpi-eeprom` package which is used to update the Raspberry Pi 4 bootloader and VLI USB controller EEPROMs. # Support -Please check the Raspberry Pi [general discussion forum](https://www.raspberrypi.org/forums/viewforum.php?f=63) if you have a support question. +Please check the Raspberry Pi [general discussion forum](https://forums.raspberrypi.com/viewforum.php?f=63) if you have a support question. # Reset to factory defaults -To reset the bootloader back to factory defaults use [Raspberry Pi Imager](https://www.raspberrypi.org/downloads/) to write an EEPROM update image to a spare SD card. Select `Misc utility images` under the `Operating System` tab. +To reset the bootloader back to factory defaults use [Raspberry Pi Imager](https://www.raspberrypi.com/software/) to write an EEPROM update image to a spare SD card. Select `Misc utility images` under the `Operating System` tab. # Bootloader documentation -* [The boot folder](https://www.raspberrypi.org/documentation/configuration/boot_folder.md) -* [Config.txt boot options](https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md) -* [Bootloader EEPROM](https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md) -* [Bootloader configuration](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md) -* [Updating the Compute Module 4 bootloader](https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md#cm4bootloader) +* [Config.txt boot options](https://www.raspberrypi.com/documentation/computers/config_txt.html#boot-options) +* [Bootloader EEPROM](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-boot-eeprom) +* [Bootloader configuration](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-bootloader-configuration) +* [Updating the Compute Module 4 bootloader](https://www.raspberrypi.com/documentation/computers/compute-module.html#cm4bootloader) * [Release notes](firmware/release-notes.md) * [Releases](releases.md) diff --git a/debian/changelog b/debian/changelog index 522da6a..1275459 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,27 @@ +rpi-eeprom (12.15-1~buster) buster; urgency=medium + + [ Peter Harper ] + * Fix URLs in README + + [ Tim Gover ] + * rpi-eeprom-config: require python3 + * make-recovery-images: Build FAT32 disk-images for the imager zips + * Update a few more URLs to raspberrypi.com + * make-recovery-images: Set GID + * make-recovery-images: Change partition size to be 256MB + * 2021-10-27 - Secure boot improvements - BETA + + [ andrum99 ] + * imager/README.txt: typo, grammar, style fixes + * Don't think we need to specify 'spare' - that's up to the user + * Update README.txt + * Update release-notes.md + + [ Serge Schneider ] + * Remove python3 patch + + -- Serge Schneider Mon, 15 Nov 2021 15:54:59 +0000 + rpi-eeprom (12.14-1) buster; urgency=medium [ Tim Gover ] diff --git a/debian/patches/series b/debian/patches/series index 25a9b87..e69de29 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +0,0 @@ -use_python3.patch diff --git a/debian/patches/use_python3.patch b/debian/patches/use_python3.patch deleted file mode 100644 index 4f70b04..0000000 --- a/debian/patches/use_python3.patch +++ /dev/null @@ -1,8 +0,0 @@ ---- a/rpi-eeprom-config -+++ b/rpi-eeprom-config -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - - """ - rpi-eeprom-config diff --git a/firmware/beta/pieeprom-2021-10-27.bin b/firmware/beta/pieeprom-2021-10-27.bin new file mode 100644 index 0000000..37002c6 Binary files /dev/null and b/firmware/beta/pieeprom-2021-10-27.bin differ diff --git a/firmware/beta/recovery.bin b/firmware/beta/recovery.bin index e19e818..e2be08b 100644 Binary files a/firmware/beta/recovery.bin and b/firmware/beta/recovery.bin differ diff --git a/firmware/release-notes.md b/firmware/release-notes.md index 30c759f..f0204bf 100644 --- a/firmware/release-notes.md +++ b/firmware/release-notes.md @@ -1,7 +1,16 @@ # Raspberry Pi4 bootloader EEPROM release notes USB MSD boot also requires the firmware from Raspberry Pi OS 2020-08-20 or newer. -https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md +https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-bootloader-configuration + +## 2021-10-27 - Secure boot improvements - BETA + * Improve the error logging if a file is too large and truncated. + * Increase the maximum size of the ramdisk to 96MB. + * Preliminary changes to expose the boot-mode used to load the ramdisk via device-tree. + + N.B. Secure boot is only recommended for industrial customers and is currently + a beta release. This can only be enabled via RPIBOOT + https://github.com/raspberrypi/usbboot/blob/master/Readme.md ## 2021-10-05 - Update for latest Broadcom SDRAM settings - BETA * Minor update for latest SDRAM tuning settings. diff --git a/imager/README.txt b/imager/README.txt index be55490..ab59dc9 100644 --- a/imager/README.txt +++ b/imager/README.txt @@ -1,28 +1,42 @@ Raspberry Pi 4 EEPROM bootloader rescue image ********************************************* -The Raspberry Pi 4 has a small EEPROM used to store the bootloader. +The Raspberry Pi 4 contains a small EEPROM used to store the bootloader. This rescue image reverts the bootloader EEPROM to factory default settings. -This rescue image also updates the USB 3.0 (VL805) firmware to the latest -version (138a1) with better full-speed Isochronous endpoint support. +This rescue image also updates the USB 3 controller (VL805) firmware to the +latest version, 138a1, which has better full-speed isochronous endpoint +support. -To re-flash the EEPROM(s) +Raspberry Pi 4 board revisions 1.1 and 1.2 contain a separate EEPROM +which contains firmware for the USB 3 controller (VL805): on newer revisions +the USB controller firmware is stored in the bootloader EEPROM along with +the bootloader. -1. Unzip the contents of this zip file to a blank FAT formatted SD-CARD -2. Power off the Raspberry Pi -3. Insert the SD-CARD -4. Power on Raspberry Pi -5. Wait at least 10 seconds +The easiest method for creating EEPROM rescue images, and formatting SD +cards, is to use Raspberry Pi Imager from https://raspberrypi.com/software. +Raspberry Pi Imager provides a GUI for downloading the latest version of +this rescue image and flashing it to a spare SD card. -This easiest method for creating and formatting the SD-CARD is to use the -Raspberry Pi Imager from https://raspberrypi.org/downloads +Alternatively, copy the contents of this zip file to a blank +FAT formatted SD card. The FAT partition must be < 32 GB. -If successful, the green LED light will blink rapidly (forever), otherwise -an error pattern will be displayed. +To update the EEPROM: -If a HDMI display is attached then the screen will display green for success -or red if a failure occurs. +1. Power off the Raspberry Pi +2. Insert the bootloader update SD card +3. Power on the Raspberry Pi +4. Wait at least 10 seconds -N.B. This image is not a bootloader it simply replaces the on-board bootloader. +If successful, the green LED on the Raspberry Pi will blink rapidly forever. +An unsuccessful update of the EEPROM is indicated by a different blinking +pattern corresponding to the specific error. + +If an HDMI display is attached, then the screen will display green for +success or red if a failure occurs. + +Once the EEPROM is updated, the SD card can be removed. In order to make +the entire capacity of the SD card available again, you must then reformat +the SD card using Raspberry Pi Imager by selecting the 'format card as +FAT32' option. diff --git a/imager/make-recovery-images b/imager/make-recovery-images new file mode 100755 index 0000000..731253e --- /dev/null +++ b/imager/make-recovery-images @@ -0,0 +1,62 @@ +#!/bin/sh + +set -e + +die() { + echo "$@" >&2 + exit 1 +} + +cleanup() { + if [ -d "${TMP_DIR}" ]; then + rm -rf "${TMP_DIR}" + fi +} + +trap cleanup EXIT + +[ "$(id -u)" = "0" ] || die "$(basename $0) must be run as root" +[ -n "${SUDO_UID}" ] || die "SUDO_UID not defined" +[ -n "${SUDO_GID}" ] || die "SUDO_GID not defined" + +for src in release/*.zip; do + src=$(basename "${src}") + img=$(echo "${src}" | sed 's/\.zip/.img/') + TMP_DIR=$(mktemp -d) + ( + cp "release/${src}" "${TMP_DIR}" + mkdir "${TMP_DIR}/files" + cd "${TMP_DIR}/files" + unzip "../${src}" + cd "${TMP_DIR}" + dd if=/dev/zero bs=1M count=258 of=temp.img + /sbin/sfdisk temp.img <