Commit Graph

121 Commits

Author SHA1 Message Date
Tim Gover
e6026c8d4e pieeprom-2024-10-09: 2712: Promote to default release (automatic update) 2024-09-11 14:43:47 +01:00
Tim Gover
132ad70437 rpi-eeprom-update: Don't display the cancel/revert message in flashrom mode
It's not possible to cancel an update via flashrom because it's
already happened.
2024-07-29 14:13:01 +01:00
Tim Gover
9a5a522ee8 pieeprom-2024-04-20: 2712: Fix SDRAM default refresh timings 2024-04-20 12:14:16 +01:00
Tim Gover
7a1a01c24f pieeprom-2024-04-17: 2712: Promote to default release (automatic update)
Interesting changes since the last automatic update:
* Enable network install
* Enable over-clocking frequencies > 3GHz
  See: ttps://github.com/raspberrypi/firmware/issues/1876
* Adjust SDRAM refresh rate according to temperature and address a performance
  gap between 4GB and 8GB parts in benchmarks.
  See: https://github.com/raspberrypi/firmware/issues/1854
* Support custom CA certs with HTTPS boot
* Move non Kernel ARM stages back to 512KB
  https://github.com/raspberrypi/firmware/issues/1868
* Assorted HAT+ and NVMe interop improvements.
* Fix TRYBOOT if secure-boot is enabled.
* Preliminary support for D0 and CM5.
2024-04-18 10:39:16 +01:00
Tim Gover
8c67b27665 rpi-eeprom-update: Only check for flashrom during an update
There's no need to check for flashrom when querying the current
version, removing pending updates etc.

See: https://github.com/raspberrypi/rpi-eeprom/issues/548
2024-03-01 10:28:58 +00:00
Tim Gover
18620870d7 rpi-eeprom-update: Output warnings to stderr
Output non-fatal warnings to stderr in order to avoid breaking
programs like rpi-eeeprom-config which parse the output of
rpi-eeprom-update.

Fixes: https://github.com/raspberrypi/rpi-eeprom/issues/548
2024-03-01 10:28:58 +00:00
Tim Gover
11c64e3721 rpi-eeprom-update: Use flashrom by default on Pi5
Use flashrom by default on Pi5 unless the the RPI_EEPROM_USE_FLASHROM
environment variable has been set to zero OR flashrom is not available.
2024-02-21 18:02:37 +00:00
Shogo Yamazaki
606c5d25e5 Print warning when flashrom is not found, instead of silently ignoring it 2024-02-04 11:50:06 +09:00
Tim Gover
7232154170 pieeprom-2024-01-05: 2712: Promote to default (automatic update) 2024-01-08 10:24:11 +00:00
Tim Gover
e407fb0030 rpi-eeprom-update: Tweak chipNotSupported message
Tweak the message to look like like an error.
2023-12-18 17:18:52 +00:00
timg236
b405ed7465 Merge pull request #511 from lurch/patch-1
rpi-eeprom-update: Fix package-names in error messages
2023-12-18 17:11:57 +00:00
Pavel Djundik
ef0cfffced Check that strings exists, suggest installing binutils 2023-12-18 17:11:09 +00:00
Andrew Scheller
a66e79ba99 rpi-eeprom-update: Fix package-names in error messages
Looks like some things have moved around in Bookworm.
2023-12-18 16:22:09 +00:00
Andrew Scheller
745eabf90e Fix typo in warning message 2023-12-18 11:55:29 +00:00
Tim Gover
1e5594c51b rpi-eeprom: Disable the dpkg checksum validation by default
Enforcing package checksum validation makes it difficult to install
new EEPROM binaries via rpi-update causing extra churn of APT releases.

Drop this check by default because random corruption of these files
either via software or users never actually happens.
2023-11-30 12:55:31 +00:00
Tim Gover
db154d4710 rpi-eeprom-update: Add the option to use flashrom for updates on Raspberry Pi 5
On Raspberry Pi 5 there are dedicated pins for the bootloader SPI
EEPROM. This makes it possible to do immediate updates via flashrom.

The "current" EEPROM config is the EEPROM config at boot rather
than what has just been written to the SPI flash because this is
consistent with current behaviour.

To use flashrom instead of recovery.bin for bootloader updates
set RPI_EEPROM_USE_FLASHROM=1 in /etc/defaults/rpi-eeprom-update

BCM2711
On CM4, Pi4, CM4-S, Pi400 config.txt must be modified to disable
the analog audio driver which shares the GPIO pins used by the
bootloader EEPROM.

dtparam=spi=on
dtoverlay=audremap
dtoverlay=spi-gpio40-45
2023-11-02 16:54:34 +00:00
Tim Gover
5ec5c003ba rpi-eeprom-update: Switch back to recovery.bin on Pi5
The Pi5 EEPROM is larger and can take longer to update which
slightly increases the change of failure if the board power is
disconnected across an update. Re-enable recovery.bin for SD
updates for now.
2023-10-22 14:28:32 +01:00
Andrew Scheller
ff81e998c5 rpi-eeprom-update: Fix typos in usage text 2023-10-21 15:05:18 +01:00
Tim Gover
645c2a1201 rpi-eeprom-update: 2712: Bump the min version to pieeprom-2023-10-18 2023-10-20 10:51:21 +01:00
Tim Gover
3ce1fd8823 pieeprom-2023-09-28: 2712: vcgencmd pmic_read_adcs fixes
* Fix the LDO names and current scaling codes
* Manufacturing test updates

Bump BOOTLOADER_AUTO_UPDATE_MIN_VERSION to this version.
2023-09-28 16:35:50 +01:00
Tim Gover
a8ca86532c pieeprom-2023-09-21: 2712: Power button and ACT LED improvements 2023-09-28 16:35:50 +01:00
Tim Gover
9147a1a1c6 scripts: Add support for chip-specific firmware directories
BCM2711 and BCM2712 require different EEPROM firmware and
consequently the binaries have been moved to chip specific
firmware directories.

firmware-2711 / firmware-2712
2023-09-28 16:35:50 +01:00
Tim Gover
3e2de88bcb Merge pull request #478 from XECDesign/boot_firmware_support
If /boot/firmware is in fstab, use it as BOOTFS
2023-09-04 11:31:25 +01:00
Tim Gover
299b1c7e12 firmware: Remove the beta release folder
Remove the beta release folder and replace with a symlink to the
'latest' release.

Including beta firmware in the APT release causes unecessary churn
and occasionally causes an issue where a user might end up on an
old and unsupported beta release.

Instead, beta releases are will be feature specific and installed
manually via 'rpi-eeprom-config --edit beta-firmware.bin'

i.e. beta releases will be out-of-package custom firmware releases
downloaded from github. The functionality will be merged into
a new latest/stable release or abandoned.

N.B. The old beta releases have been archived to 'old' but are no
longer included in APT.
2023-08-02 14:48:45 +01:00
Serge Schneider
0ef3adc1d4 If /boot/firmware is in fstab, use it as BOOTFS
Debian's raspi-firmware package assumes the boot partition is mounted as
/boot/firmware/ rather than /boot/. This commit adds support for either
approach by default.
2023-08-02 12:22:53 +01:00
TM
6950fff013 Update URL for CM4 bootloader doc site 2023-07-04 16:19:49 +01:00
Ivan T. Ivanov
d82d08db06 rpi-eeprom-update: Follow links when looking for latest EEPROM
latest and default are links to directories, so follow them.

Before:

/usr/bin/rpi-eeprom-update
BOOTLOADER: up to date
   CURRENT: Wed Jan 11 17:40:52 UTC 2023 (1673458852)
    LATEST: Thu Jan  1 00:00:00 UTC 1970 (0)
   RELEASE: critical (/lib/firmware/raspberrypi/bootloader/critical)

After:

/usr/bin/rpi-eeprom-update
BOOTLOADER: up to date
   CURRENT: Wed Jan 11 17:40:52 UTC 2023 (1673458852)
    LATEST: Wed Jan 11 17:40:52 UTC 2023 (1673458852)
   RELEASE: critical (/lib/firmware/raspberrypi/bootloader/critical)

Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
2023-01-30 12:19:24 +02:00
Allan Xavier
55ca589ab9 Fix rpi-eeprom-update when using busybox find
The busybox implementation of find does not detect recursive nested
symlinks, this results in it finding multiple instances of of_node
matching -samefile, the result of which then fails the -e path test.

The of_node symlink we're tyring to find should match the path
/sys/bus/nvmem/devices/*/of_node so just limit the find depth to 3 as
there's no point searching deeper than that.

Signed-off-by: Allan Xavier <mr.a.xavier@googlemail.com>
2023-01-12 13:47:27 +00:00
Tim Gover
2efe9daef6 rpi-eeprom-update: Mention rpiboot in the CM4 not supported error message 2022-09-30 10:52:44 +01:00
Tim Gover
4cbc4bc1c5 rpi-eeprom-update: Avoid using recovery.bin if the current bootloader supports self-update
Self-update is preferred to using recovery.bin because it avoids modifiy the
boot partition in order to rename recovery.bin after use. Since the 2711 ROM
does not support network or USB MSD loading of recovery.bin self-update has to
be used with other boot modes anyway.

If RPI_EEPROM_SELF_UPDATE=1 then avoid installing recovery.bin so long as the
current bootloader version supports self-update from SD/MMC and that doesn't
look as though SELF_UPDATE has been disable in the EEPROM config.
2022-05-11 14:06:13 +01:00
Tim Gover
34b790407c rpi-eeprom-digest: Add to test/install and specify -o in rpi-eeprom-update 2021-11-22 14:29:59 +00:00
Tim Gover
43610e19ec rpi-eeprom-update: Use rpi-eeprom-digest to generate the .sig files 2021-11-13 15:50:23 +00:00
Tim Gover
95e04c9910 Update a few more URLs to raspberrypi.com 2021-10-13 08:27:20 +01:00
Tim Gover
949e9c49f8 Merge pull request #343 from waveform80/ignore-non-pi
Add a test to cause the script to exit cleanly on non-Pi hardware
2021-06-11 11:51:18 +01:00
Dave Jones
71ef83abbc Add a test to cause the script to exit cleanly on non-Pi hardware
At present, the update script exits cleanly in the case it finds itself
run on Pi hardware prior to the 4/CM4/400, but if installed on non-Pi
hardware exits with various slightly cryptic errors (missing vcgencmd
and some subsequent math errors from trying to bit-shift the empty
BOARD_INFO variable).

This patch adds a similar exit to the non-Pi 4 case, with a slightly
more useful message.
2021-06-10 10:04:13 +01:00
Dave Jones
6a310b5d4d Remove redundant vcmailbox reference
The vcmailbox binary is no longer used (like flashrom), hence there's little point in keeping the configuration variable for it
2021-06-09 17:48:09 +01:00
Tim Gover
34aa94bdd2 Merge pull request #337 from timg236/pieeprom-2021-05-19
Pieeprom 2021 05 19
2021-05-20 14:12:11 +01:00
Tim Gover
503f1c0055 rpi-eeprom-update: Display a warning when the bootloader is downgraded
Display a warning if the bootloader version is downgraded. This can
happen when swapping boot-media and the bootloader configuration is
changed from an OS with an old version of the rpi-eeprom package.

Remove the duplicated "update pending" and "to cancel update" messages.
2021-05-17 15:21:29 +01:00
Andrew Scheller
650e942947 Typos and wording tweaks 2021-04-24 02:39:43 +01:00
andrum99
89a68bc405 rpi-eeprom-update: up-to-date -> up to date
This is only meant to be hyphenated when used as a compound adjective, which is not the case here. See https://www.thewriter.co.uk/tools/style-guide/punctuation/hyphens#:~:text=When%20it%20comes%20after%20the,up%2Dto%2Ddate%20document.
2021-04-21 16:59:35 +01:00
Tim Gover
a4d7bdbef0 rpi-eeprom-update: Specifiy a minimum version number for automatic updates
Add a new flag '-s' which init scripts should specify to indicate that
the bootloader is running silently to do an automatic update. If '-s'
is specified and the 'default' release is specified then the bootloader
is only updated if it is older than the minimum version number specified
within this script.
This allows the default release to be updated to support new hardware
without forcing updates for existing users. However, if the
configuration is updated then the latest release should be used.

E.g. If network boot is selected via raspi-config or the Raspberry Pi
Imager then it's desirable to get the latest production release to
benefit from any bug fixes. However, a bootloader updated to support
new hardware (e.g. CM4) should not require Pi4B users to to upgrade
their bootloader.

The min-version is set to pieeprom-2020-09-03.
2021-03-25 14:24:17 +00:00
Tim Gover
8c9c14526d Revert "rpi-eeprom-update: Use 'tr' instead of 'strings'"
This reverts commit 9a2aede8034aab0bfb050b481d422fddb5c25683.
2021-02-26 14:06:29 +00:00
Tim Gover
dcd114f8fd Revert "rpi-eeprom-update: Surround [:print:] with quotes"
This reverts commit f14fc0f8f6974129ffccc0d5b85e04a1ec96399b.
2021-02-26 14:06:29 +00:00
Tim Gover
6265c773e7 Remove SPI_SPEED variable now that flashrom has been removed. 2021-02-24 14:04:23 +00:00
Nicolas Saenz Julienne
73c91317ca rpi-eeprom-update: Surround [:print:] with quotes
It seems that [:print:] could be substituted by rogue shells[1], so
surround it with quotes to make sure it doesn't happen. Use single
quotes as they are the most constraining kind. All in all, this change
should be harmless.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
[1] https://github.com/raspberrypi/rpi-eeprom/pull/298#issuecomment-784542905
2021-02-24 13:09:59 +01:00
Nicolas Saenz Julienne
b760758c5e rpi-eeprom-update: Use 'tr' instead of 'strings'
The 'strings' utility is installed by binutils whereas 'tr' belongs with
coreutils. Minimal systems will only contain the latter, due to binutils'
size (20-50 MB). So, convert all uses of 'strings' to 'tr' so as to
avoid the package dependency.

The second 'tr' usage converts non-ASCII characters into newlines so as
to isolate the "BUILD_TIMESTAMP=1234567890" statement (similar to what
'strings' does). There is no need for this in the first one: non-ASCII
characters are simply discarded as DT aliases have a fixed one line
format.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
2021-02-19 10:45:46 +01:00
Tim Gover
3e03056215 vl805: Move to old following removal of USE_FLASHROM option
Move to to the old directory now that it's no longer referenced by rpi-eeprom-update.

Add a dependency check for 'lspci' which is normally provided by
pciutils or busybox and remove the failover to the vl805 helper.

Tweak the failure messages for missing dependencies to be slightly less
OS specific.
2021-02-15 20:57:48 +00:00
timg236
2fec47bd7f rpi-eeprom-update: Expand help to describe CM4 bootloader updates (#293)
Add some brief documentation about CM4 bootloader updates and provide
links to the full documentation.
2021-02-12 08:53:32 +00:00
Tim Gover
7da4173852 rpi-eeprom-update: Remove deprecated flashrom script options.
The muxing of the SPI EEPROM and analog audio pins makes flashrom
usage unreliable and having two flashing mechanisms adds unnecessary
complexity to this script.

The bootloader supports EEPROM updates from USB-MSD, Network
and rpiboot there is no real need to support flashrom within this
utility. Therefore, the option to use flashrom can be removed from this
script.
2021-02-10 19:26:06 +00:00
Nicolas Saenz Julienne
6fe6f22bad rpi-eeprom-config/update: Exit cleanly when not run on rpi4
Some users might forcibly install this on a board that isn't an rpi4.
Exit early, and explain why the program can't be run.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
2021-02-09 15:22:52 +01:00