Commit Graph

103 Commits

Author SHA1 Message Date
Tim Brooks
18d50d52ca Fix #211 - hexdump error on older Pi models 2020-09-01 23:19:01 +01:00
Hristo Venev
eea80bc4ab rpi-eeprom-update: Upstream kernel fix
Upstream kernels do not list the board revision in /proc/cpuinfo. Get it
from the device tree instead.
2020-08-20 13:15:32 +03:00
Tim Gover
a5794dde78 rpi-eeprom-update: Set file permissions on the EEPROM update files
Normally BOOTFS is a local FAT partition but with NFS it's possible
that the NFS mount of /boot is not setup to have the equivalent
permissions as /boot. Set the .upd,.sig files to be readable by
all users to to avoid the case where the file is visible to root on the
Pi but is not readable by the TFTP daemon on the server.
2020-07-21 16:08:22 +01:00
Tim Gover
dd15621c8a Change "update required" message to "update available"
Originally, rpi-eeprom-update was only for critically important
security or hardware compatibility requirements. Change the
text of rpi-eeprom-update to indicate that an update is available
rather than being required.
N.B. The systemd service runs with the -a flag which automatically
applies available updates because most users just use the release
folder which is only updated for major/critical updates.
2020-07-16 12:03:52 +01:00
Tim Gover
b2e2818b28 Disable rpi-eeprom-update by default on CM4 2020-07-07 11:50:32 +01:00
Dave Jones
bd7957d353 Query checksums from rpi-eeprom instead of rpi-eeprom-images 2020-06-24 20:38:05 +01:00
Kyle J. McKay
4abaa46e1f rpi-eeprom-update: compare versions algebraically
Use `-lt` rather than `\<` so that, for example, this:

    [ 2 -lt 17 ]

is true (whereas with `\<` in place of `-lt` it's false).

Also change an `=` comparison to `-eq` to be technically correct.

Helped-by: Tim Gover <tim.gover@raspberrypi.org>
Helped-by: MilhouseVH <milhouseVH.github@nmacleod.com>
Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
2020-06-04 14:42:40 -07:00
andrum99
beceaab7ae reword 2020-06-03 17:26:03 +01:00
andrum99
7cf2828046 Clarify -d option when EEPROM update not needed 2020-06-03 17:24:29 +01:00
andrum99
ed86d5e144 rpi-eeprom-update - fix description of -d flag 2020-06-03 17:13:33 +01:00
Tim Gover
064c9d7395 rpi-eeprom-update: Remove warning in -f section
The warning is only relevant in USE_FLASHROM mode
2020-06-03 15:36:14 +01:00
Andrew Scheller
0cfc72304e small typos 2020-05-29 12:57:07 +01:00
MilhouseVH
40d608daaa include vl805 eeprom presence in machine output 2020-05-29 01:48:20 +01:00
Tim Gover
fd2ea72b26 rpi-eeprom-update: Update VL805 version check for boards without VL805 EEPROM
Newer board revisions do not have a dedicated VL805 EEPROM. Instead,
the VL805 firmware is loaded from the bootloader EEPROM.
Update the version check to ignore standalone VL805 update files
on boards without a dedicated VL805 EEPROM.
2020-05-28 08:19:30 +01:00
Tim Gover
7c181f40f2 rpi-eeprom-update: Update help for FIRMWARE_RELEASE_STATUS 2020-05-26 15:01:28 +01:00
Tim Gover
5fb23cfcb8 rpi-eeprom-update: Mark USE_FLASHROM as deprecated. 2020-05-26 10:25:40 +01:00
Tim Gover
21bd52daa0 rpi-eeprom-update: Change BOOTFS .elf check to a warning
If no .elf files are found in the boot partition then raise a warning
instead of an error. This normally indicates a system configuration
error but allow the usage of this tool in non-standard setups.
2020-05-25 11:32:51 +01:00
andrum99
bbffc1a9fc rpi-eeprom-update: mention Pi4 only, remove references to SD card 2020-05-12 14:36:48 +01:00
Ryan Finnie
22ce0605e4 Allow for run from local git checkout
- Set firmware directory to script dir/firmware as last resort
- Bypass IGNORE_DPKG_CHECKSUMS when in local mode
2020-03-06 09:06:51 -08:00
Tim Gover
c77267e84b Print the firmware image directory in the version status message 2020-02-28 15:01:41 +00:00
Tim Gover
3be67ad8a8 firmware: Promote the latest beta firmware to stable
The beta release with supports network boot is now stable enough
for most configurations. This is now frozen except for major bugs
in order to allow more experimental features to be released as
beta.
2020-02-27 14:51:53 +00:00
Tim Gover
fed1ca62a5 rpi-eeprom-update: Remove dependency on vl805
The vl805 utility is not available for aarch64 and is deprecated
because it's only required for USE_FLASHROM.

Remove the dependency check so that it can be removed from the package.

The USE_FLASHROM code will be removed at a later date once the
self-update mechanism in the bootloader EEPROM is released.
2020-02-27 14:00:27 +00:00
Tim Gover
da14a843a7 rpi-eeprom-update: Add support for board-revision specific images.
Add the option for board-revision specific bootloaders firmware. This
allows critical firmware updates to be applied to specific board
revisions first before these are promoted to the generic firmware
directories.

Update the find operation to follow symlinks so that EEPROM images
in the board revision specific subdirectories can be links to the
generic images.
2020-01-10 15:11:27 +00:00
Tim Gover
e9290b3bfc Merge pull request #67 from timg236/vl805_match_ver
rpi-eeprom-update: Improve version selection for VL805
2020-01-08 09:53:01 +00:00
Andrew Scheller
d92d4e1a94 Fix typo
As spotted in the now-closed #65
2019-12-17 19:50:46 +00:00
Tim Gover
1a0070fe30 rpi-eeprom-update: Improve version selection for VL805
Deprecate the vl805.latest file and compare version numbers. This
ensures that the rpi-eeprom-update will never downgrade the VL805.
2019-12-12 19:06:18 +00:00
Tim Gover
0855227532 rpi-eeprom-update: Add hook/flashrom help and fix section formatting
Document the EEPROM_CONFIG_HOOK option and move the existing
USE_FLASHROM env var to the new section.

The other more obscure path options can be documented in other commits
2019-12-11 11:17:35 +00:00
Tim Gover
560f001e99 rpi-eeprom-update: Add support for config txt processing hooks 2019-12-10 12:23:08 +00:00
Tim Gover
390b4b85e1 vcgencmd: Use cpuinfo instead of otp_dump
On a 64-bit beta kernel a hang in vcgencmd otp_dump was observed
blocking rpi-eeprom-update and apt. Since there is another method
for obtaining the board Revision that should never block use that instead.
2019-11-29 15:21:58 +00:00
MilhouseVH
e204b1f4eb use lspci if available instead of vl805. Avoid calling vl805 twice. 2019-11-09 03:46:23 +00:00
josef radinger
6895418ffe fix typo 2019-10-29 15:16:43 +01:00
Tim Gover
5c9a0cf40d rpi-eeprom-update: Check for vcmailbox, vcgencmd, dtparam, dtoverlay
Check for these commands and issue an error indicating how to fix this
on Debian. These are all installed by default on Raspbian but this
script might be re-used in other-systems e.g. custom busybox builds.
2019-10-24 15:08:12 +01:00
Tim Gover
95ba7b50eb Tweak update status for BOOTLOADER, VL805
Make up-to-date message specific to bootloader or vl805 and indicate if
the tool was not run as root.
2019-10-24 12:57:01 +01:00
Tim Gover
e559d075ff rpi-eeprom-update: Verify DPKG checksums if available
If the rpi-eeprom-images checksums file is available then validate
the checksums before applying the update.

Add a -i option to ignore checksums, this should only be required for
developers or people who have cloned the rpi-eeprom Github and installed
new files which are not available in the apt package.
2019-10-23 13:49:12 +01:00
Tim Gover
e024ab5373 rpi-eeprom-update: Don't remove update files if run with no arguments
Running 'sudo rpi-eeprom-update' will remove update files from the
boot partition. Since the user may run this command to check if
an update is required it will have the surprising side effect of
removing the pending update applied by the systemd service which
runs 'rpi-eeprom-update -a' at startup.

Move the cleanup code so that it only runs if a manual or automatic
update was requested.

Add an explicit option (-r) to just remove the previous update files.
2019-10-23 11:59:07 +01:00
MilhouseVH
b8b7082abf handle undefined machine output consistently 2019-10-22 20:56:28 +01:00
MilhouseVH
269f5605f1 revert machine output exit code to string 2019-10-22 20:55:27 +01:00
Tim Gover
431e70e891 Standarize on UPDATE_VERSION - use command -v
bootloader versions and exit codes are integers so default to
zero in the JSON output

Fix missing $ prefix in arguments to write_status_info causing
EXIT_SUCCESS to be passes as a string instead of the value of
${EXIT_SUCCESS}

Fix missing commas in JSON output
2019-10-22 12:28:03 +01:00
Tim Gover
ac70cb24fa Add rpi-eeprom-update -A option
* Option to restrict automatic updates to bootloader and/or vl805
* Change the machine mode output variables
* recovery.bin: Rebuild from Gitlab
* Rename CURRENT_TS and LATEST_TS in machine output
2019-10-22 12:28:03 +01:00
Tim Gover
d354bbe700 Add support for updating the USB (VL805) EEPROM
* New beta recovery.bin which can update the VLI EEPROM before
  start.elf is loaded. This is the recommended and default method
  because no USB devices will be in use at this stage.
* Extend the USE_FLASHROM configuration to use the vl805 tool
  to program the VL805 directly.
* Generate SHA256 checksums in .sig files for the bootloader and
  and VL805 images. This is required by the new recovery.bin to
  guard against corrupted files being flashed to the EEPROM(s).
* Various variable renames to distinguish between the bootloader
  and the VL805 images.
2019-10-22 12:27:58 +01:00
Tim Gover
d8f713c20d recovery: Make recovery.bin specific to the release status
Select the recovery.bin to use according to FIRMWARE_RELEASE_STATUS
in order to allow a beta test version of recovery.bin to be provided
without risking breaking the stable version of recovery.bin
2019-10-10 10:52:38 +01:00
Tim Gover
f8a8cf11bf rpi-eeprom-update: Remove comments about safe mode
The concept of a safe mode recovery.bin bootloader was dropped in favour
of a recovery.bin which renames itself after updating the EEPROM. Remove
the old comments.
2019-10-07 08:49:24 +01:00
andrum99
f70b6745d1 usage: critical -> applicable 2019-09-10 21:41:00 +01:00
andrum99
06ff41d5af add colons to usage 2019-09-10 18:46:13 +01:00
andrum99
016c50258b fix call to getUpdateVersion 2019-09-10 18:44:15 +01:00
andrum99
bf0c89afa1 fix comment 2019-09-10 18:42:44 +01:00
andrum99
79a58d7469 getLatestCriticalUpdate -> getUpdateVersion
Function does not necessarily check for latest version. Also, it does not actually get the update, just the version, so rename function to 'getUpdateVersion' to match 'getCurrentVersion'. Similarly with 2 variable names.
2019-09-10 18:41:15 +01:00
andrum99
fadab8e830 fix quotation mark 2019-09-10 18:28:17 +01:00
andrum99
8af3f6fd68 rpi-eeprom-update: minor fixes to usage 2019-09-10 18:22:08 +01:00
Tim Gover
b19d7b379d rpi-eeprom-update: -h should not require vcgencmd
More the checkDependencies call to after the options parsing so that
-h can be run for help2man.
2019-09-10 14:14:24 +01:00