Compare commits

..

99 Commits

Author SHA1 Message Date
Tim Gover
09f77ad9fa Promote pieeprom-2020-09-03 to STABLE 2020-09-07 09:12:16 +01:00
Tim Gover
b887a0bfa9 pieeprom-2020-09-03.bin - Fix filename 2020-09-04 11:40:09 +01:00
Tim Gover
3ef8633f03 Merge pull request #219 from lurch/patch-1
Add BETA label to release notes
2020-09-03 22:19:26 +01:00
Andrew Scheller
a1da3ac15c Add BETA label to release notes
...for consistency.
2020-09-03 21:56:24 +01:00
Tim Gover
65037b76bf Merge pull request #218 from mackyle/master
rpi-eeprom-update: avoid any possible od accidents
2020-09-03 20:20:01 +01:00
Kyle J. McKay
28153db403 rpi-eeprom-update: avoid any possible od accidents
This command pipeline:

  printf '00000000000000000000000000000000' | od -An -t x1 | tr -d ' '

produces this output:

  30303030303030303030303030303030
  *

Add a `-v` to od and a `\n` to the tr arg like so:

  printf '00000000000000000000000000000000' | od -v -An -t x1 | tr -d ' \n'

to instead produce this output:

  3030303030303030303030303030303030303030303030303030303030303030

Although it's unlikely that the revision value would generate multiple
lines or contain duplicate lines, it's better to be safe than sorry
especially since the changes to do so do not introduce any extra overhead
and use only POSIX-specified options/arguments.

It's also possible this code fragment could be copied and pasted elsewhere
to provide a "hexdump" of something that might be expected to generate
multiple lines and which may potentially contain duplicates.  By fixing
the code here any breakage caused by such copying and pasting is avoided.

Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
2020-09-03 11:37:28 -07:00
Tim Gover
e9445dfa44 pieeprom-2020-09-02: Simplify green activity LED behavior
Disable flashing due to LED activity to make flashing error
patterns clearer.
2020-09-03 13:16:13 +01:00
Tim Gover
73e845de28 Use od instead of hexdump to simplify package dependencies 2020-09-03 13:08:12 +01:00
Tim Gover
c697a4aace Merge pull request #212 from brookst/fix-211
Fix #211 - hexdump error on older Pi models
2020-09-02 07:08:25 +01:00
Tim Brooks
18d50d52ca Fix #211 - hexdump error on older Pi models 2020-09-01 23:19:01 +01:00
Tim Gover
3cdd464d99 Merge pull request #209 from timg236/tim/pieeprom-2020-08-31
pieeprom-2020-08-31 - Disable self update mode from SD cards
2020-08-31 12:25:54 +01:00
Tim Gover
434224f9ed Merge pull request #208 from hvenev/board-revision-from-dt
rpi-eeprom-update: Upstream kernel fix
2020-08-31 12:22:52 +01:00
Tim Gover
279eef4777 pieeprom-2020-08-31 - Disable self update mode from SD cards 2020-08-31 11:30:55 +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
1a44b13308 Merge pull request #205 from andrum99/patch-3
Update README.md
2020-08-17 09:01:10 +01:00
andrum99
366e868e2d Update README.md 2020-08-16 18:02:37 +01:00
Tim Gover
8181a87b2c Update README.md
Removed the BUG information now that the mandatory bug template requests all of this information.

Now that netboot and USB MSD are no longer beta make this less prominent because users not familiar with Pi4 firmware should not be directed straight towards beta releases which might not work with their current OS
2020-08-16 16:43:13 +01:00
Tim Gover
e7c22e2ee0 Update releases.md 2020-08-12 15:03:06 +01:00
Tim Gover
ac297ecae7 Update link to latest stable release 2020-08-12 10:05:43 +01:00
Tim Gover
0e7da7ecd8 Promote beta 2020-07-31 to stable 2020-08-10 12:49:13 +01:00
Tim Gover
f161ef369b Merge pull request #193 from lurch/patch-1
Typos
2020-08-03 11:29:57 +01:00
Andrew Scheller
456a55122b Typos 2020-08-03 11:28:41 +01:00
Tim Gover
d7b1a49a83 pieeprom-2020-07-31.bin - Standardize USB port power off across Pi4 models 2020-07-31 17:13:50 +01:00
Tim Gover
8e9aca34ae Rename .config.yml to config.yml 2020-07-24 08:51:38 +01: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
bb2fcf63f8 Update releases.md 2020-07-20 13:19:43 +01:00
Tim Gover
42ae155d1a Update releases.md 2020-07-20 13:19:24 +01:00
Tim Gover
8312e86e35 recovery.bin - Update beta/stable after rebase
No other changes, just use the same build id.
2020-07-20 11:12:43 +01:00
Tim Gover
ac0cf15bac pieeprom-2020-07-16.bin - Promote to STABLE 2020-07-20 11:01:41 +01:00
Tim Gover
3325de5b9a pieeprom-2020-07-16 - Fix CM4 startup issue 2020-07-16 16:26:14 +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
940ac7c0e8 pieeprom-2020-07-16: VL805 0138A1 plus optional EEPROM write protect 2020-07-16 11:46:50 +01:00
Tim Gover
befe05b42a Merge pull request #179 from outmatic/master
correct date
2020-07-08 10:41:12 +01:00
Alessandro Petrelli
6aa5d03e26 correct date 2020-07-08 11:37:12 +02:00
Tim Gover
16ad44285f Merge pull request #176 from timg236/tim/cm4_rpieeprom_update
Disable rpi-eeprom-update by default on CM4
2020-07-07 14:41:04 +01:00
Tim Gover
b2e2818b28 Disable rpi-eeprom-update by default on CM4 2020-07-07 11:50:32 +01:00
Tim Gover
140bd3a396 Fix release notes title 2020-07-07 10:59:06 +01:00
Tim Gover
4dbd7b9d07 pieeprom-2020-07-06 - BETA - Tweak USB port power and clear ACT LED after SPI 2020-07-06 21:11:09 +01:00
Tim Gover
008d50610a Merge pull request #175 from golddranks/fix/portability_use_env
Use /usr/bin/env python to make rpi-eeprom-config more portable
2020-07-06 19:27:02 +01:00
Pyry Kontio
5ae98cbbac Use /usr/bin/env python to make rpi-eeprom-config more portable 2020-07-06 13:51:44 +09:00
Tim Gover
9342fdb2ab Merge pull request #169 from waveform80/checksums
Query checksums from rpi-eeprom instead of rpi-eeprom-images
2020-06-24 21:58:27 +01:00
Dave Jones
bd7957d353 Query checksums from rpi-eeprom instead of rpi-eeprom-images 2020-06-24 20:38:05 +01:00
Tim Gover
7cd63f9d3c Update releases.md 2020-06-24 13:41:41 +01:00
Tim Gover
b18780e0d0 Merge pull request #165 from RaspberryPiFan/patch-1
Fix a link
2020-06-23 08:15:01 +01:00
RaspberryPiFan
de7a26a354 Fix a link 2020-06-23 08:16:54 +02:00
Tim Gover
2a8c2e77c3 Fix date in release notes see #158 2020-06-17 15:16:20 +01:00
Tim Gover
29408f7c17 Update bug_report.md 2020-06-17 14:51:39 +01:00
Tim Gover
a921fdecf4 Feature requests
Requiring discussion on the forums first to avoid duplication and give other OS maintainers the opportunity to pitch in.
2020-06-17 14:04:05 +01:00
Tim Gover
92f194b4b8 Merge pull request #158 from timg236/tim/pieeprom-2020-06-15-stable
Promote 2020-06-16 to STABLE
2020-06-17 09:34:55 +01:00
Tim Gover
fab8f9e7d8 Promote 2020-06-16 to STABLE 2020-06-17 09:33:31 +01:00
Tim Gover
4731bda900 Update MSD beta to 2020-06-15 2020-06-15 17:17:58 +01:00
Tim Gover
8c5e0e1d1c Merge pull request #156 from timg236/tim/pieeprom-2020-06-15
pieeprom-2020-05-15 Tweak toggling of USB port power at boot - BETA
2020-06-15 14:51:23 +01:00
Tim Gover
c5d49eec83 pieeprom-2020-06-15 Tweak toggling of USB port power at boot - BETA 2020-06-15 14:50:53 +01:00
Tim Gover
3c4ee02e6f Update releases.md 2020-06-12 14:31:27 +01:00
Tim Gover
b16109adec Update releases.md 2020-06-12 13:26:38 +01:00
Tim Gover
0dfedc07da Merge pull request #154 from timg236/tim/pieeprom-2020-06-12
pieeprom-2020-06-12 Improve support for powered USB SATA devices - BETA
2020-06-12 13:13:40 +01:00
Tim Gover
ad82caaf61 pieeprom-2020-06-12 Improve support for powered USB SATA devices - BETA
* Reset Ethernet MAC + PHY if final boot mode is not network boot
  See: Kernel warning and network failure when attempting to use
       the network after bootloader times out. #144
* Improve handling of multiple bootable USB devices and remove USB_MSD_BOOT_MAX_RETRIES
* Resolve: No DHCPACK with DHCP relay agent #58
* Toggle USB root hub port power for 200ms on the first USB MSD boot attempt
  See: Bootloader can't boot via USB-HDD after system reboot #151
* Update bootloader handover to support uart_2ndstage - requires a newer
  start.elf firmware which will be via rpi-update.
* Assert PCIe fundamental reset if the final bootmode was not USB-MSD
  because the OS might not do this before starting XHCI.
2020-06-12 12:13:20 +01:00
Tim Gover
45935788fd github: Disable blank issues 2020-06-06 18:47:09 +01:00
Tim Gover
1f5912ed31 Merge pull request #146 from mackyle/master
rpi-eeprom-update: compare versions algebraically
2020-06-05 15:28:29 +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
Tim Gover
831af6efbe Merge pull request #148 from andrum99/patch-3
releases.md: typo, link, grammar fixes
2020-06-04 21:12:35 +01:00
andrum99
053776bb6f releases.md: typo, link, grammar fixes 2020-06-04 20:54:33 +01:00
Tim Gover
888410c81a Update bug_report.md 2020-06-04 18:44:25 +01:00
Tim Gover
dbd28e42bd Update releases.md 2020-06-04 15:20:22 +01:00
Tim Gover
93a8eee328 Update releases.md 2020-06-04 15:15:44 +01:00
Tim Gover
66fa760460 Merge pull request #143 from andrum99/patch-1
rpi-eeprom-update - fix description of -d flag
2020-06-03 19:07:26 +01: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
Tim Gover
eccbc1066d pieeprom-2020-06-03: Bootmode tweaks and fix issue with > 4TB drives - BETA
* Resolve: Unable to boot from USB MSD - Seagate 5Tb HDD backup drive #139
* Increase USB MSD timeout from 10 to 20 seconds.
* Max retries now default to zero because the default BOOT_ORDER includes
  restart (0xf). Therefore, each boot-mode is now tried once before moving
  to the next mode. The retries mechanism is largely redudant now that
  the loop/restart mode exists.
* If TFTP fails and network boot retries > 0 then wait 5 seconds before
  retrying to avoid overloading a misconfigured TFTP server.
* Map undefined boot-modes in BOOT_ORDER to SD (0x1) instead of stopping.
* Add missing pieeprom-2020-05-28
2020-06-03 14:58:12 +01:00
Tim Gover
322568aa65 Create releases.md 2020-06-02 10:49:12 +01:00
Tim Gover
37e889cd68 Merge pull request #138 from lurch/patch-1
small typos
2020-06-01 09:31:48 +01:00
Andrew Scheller
0cfc72304e small typos 2020-05-29 12:57:07 +01:00
Tim Gover
493307c977 Merge pull request #137 from MilhouseVH/have_eeprom_json
include vl805 eeprom presence in machine output
2020-05-29 09:34:51 +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
be3efeae7c Merge pull request #135 from andrum99/patch-1
Update release-notes.md
2020-05-27 20:48:27 +01:00
andrum99
175232cad5 Update release-notes.md 2020-05-27 19:30:11 +00:00
Tim Gover
f257872c3c pieeprom-2020-05-27: Patch release with VL805 self-update fix 2020-05-27 18:51:28 +01:00
Tim Gover
c1a1e9b067 pieeprom-2020-05-27.bin - DPI fix
Also remove +x bit on pieeprom-2020-05-26
2020-05-27 13:22:15 +01:00
Tim Gover
e87bc4da8d pieeprom-2020-05-26.bin - USB MSD beta updates
* Resolve: USB boot fails if the GPT contains no basic data or EFI partitions #130
* Resolve: Fix default BOOT_ORDER in mass storage beta #129
* Resolve: Add support for booting from a "superfloppy" disk #120
* Resolve: USB MSD timeout message - incorrect units #131
* Resolve: Recognize efi partition (0xef) as a valid boot #126
* The HDMI diagnostics screen now displays the most significant bytes of the SHA-256 of the config.txt file.
2020-05-26 15:13:45 +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
Tim Gover
5c7dfdf3b7 test: Fixup paths for config test 2020-05-25 11:32:51 +01:00
Tim Gover
ad18a5b468 Update issue templates 2020-05-15 12:35:09 +01:00
Tim Gover
69ef289748 Merge pull request #127 from timg236/beta_usbboot
pieeprom-2020-05-15.bin - USB mass storage boot beta
2020-05-15 11:58:22 +01:00
Tim Gover
ee0b6146f1 pieeprom-2020-05-15.bin - USB mass storage boot beta
USB boot also requires updated firmware (start.elf)
2020-05-15 11:24:16 +01:00
Tim Gover
3f9a0eb201 Merge pull request #124 from andrum99/patch-1
rpi-eeprom-update: mention Pi4 only, remove references to SD card
2020-05-12 15:07:31 +01:00
Tim Gover
c2ce7f8488 Merge pull request #125 from andrum99/patch-2
rpi-eeprom-config: Pi 4B -> Pi 4
2020-05-12 15:06:42 +01:00
andrum99
7e587b8092 rpi-eeprom-config: Pi 4B -> Pi 4 2020-05-12 14:37:52 +01:00
andrum99
bbffc1a9fc rpi-eeprom-update: mention Pi4 only, remove references to SD card 2020-05-12 14:36:48 +01:00
Tim Gover
cbb061e0c3 Merge pull request #122 from timg236/tim/deprecate_old_binaries
Garbage collect old bootloader releases
2020-05-11 19:43:16 +01:00
Tim Gover
19c6ddcaa4 Garbage collect old bootloader releases
Now that 2020-04-16 has been released and appears to be stable move
the older binaries to and old (deprecated) directory. There's no
need to include old beta binaries in OS packages.
2020-05-11 16:44:52 +01:00
Tim Gover
c649ab64e4 Update README.md 2020-05-02 09:06:58 +01:00
Tim Gover
a70a647233 Merge pull request #117 from timg236/tim/critical-2020-04-16
Promote 2020-04-16 to be the new default release as a critical update
2020-04-28 14:27:26 +01:00
Tim Gover
87a8d46959 Promote 2020-04-16 to be the new default release as a critical update 2020-04-28 14:18:28 +01:00
Tim Gover
92ed6c634a Remove +x bit
Remove executable bit, can you tell that I used Cygwin for this one ?
2020-04-23 16:52:06 +01:00
67 changed files with 365 additions and 64 deletions

46
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,46 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
For general boot questions please check the read the [Boot Problems](https://www.raspberrypi.org/forums/viewtopic.php?t=58151) sticky post on the forums.
N.B The bootloader does not persist in memory and if the rainbow splash screen has been displayed the issue is likely to be in the firmware or Linux. If so, it's better to target the bug in the [Firmware](https://github.com/raspberrypi/firmware/) or [Linux](https://github.com/raspberrypi/linux/) repositories first e.g. NFS, USB or dmesg logs would be Linux issues.
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
**Expected behaviour**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add a photograph of the bootloader HDMI diagnostics screen.
**Bootloader version and configuration**
If you have modified the default bootloader release or configuration then please attach the bootloader configuration (vcgencmd bootloader_config) and version (vcgencmd bootloader_version)
**SD card boot (please complete the following information):**
- OS e.g. Raspbian
- SD card type
- Partition information (fdisk -l) if you are able to obtain this from another computer.
**Network boot (please complete the following information):**
Network boot configuration can get very complicated. To get started we recommend using [PiServer](https://github.com/raspberrypi/piserver) and this is the official test/reference configuration. For other configurations, packet capture or a UART log is nearly always required because setting up custom network configurations to investigate bugs is extremely time-consuming and error-prone.
- DHCP server configuration files e.g. dnsmasq.conf
- Wireshark binary packet capture
- UART logs
**USB boot (please complete the following information):**
For issues booting with specific USB devices please verify that the system boots from an SD-card with the same devices connected and attach the results of 'lsusb -vvv'. This helps to rule out USB HUB power issues.
In the beta release it's likely that a UART or NetConsole boot trace will be required.
**Additional context**
Add any other context about the problem here.

2
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
blank_issues_enabled: false

View File

@@ -1,29 +1,16 @@
# rpi-eeprom
This repository contains the scripts and pre-compiled binaries used to create the rpi-eeprom package which is used to update the Raspberry Pi4 bootloader EEPROM.
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 EEPROMs.
# Support
For bootloader support the best place to start is the Raspberry Pi [General Users forum](https://www.raspberrypi.org/forums/viewforum.php?f=63) or for discussion of beta releases try the [Advanced Users forum](https://www.raspberrypi.org/forums/viewforum.php?f=29&sid=9bbc277968ad953e77749b255d0ce3a2)
Please check the Raspberry Pi [general discussion forum](https://www.raspberrypi.org/forums/viewforum.php?f=63) if you have a support question.
N.B. Direct e-mail support questions will be ignored.
# Rescue image
If the Raspberry Pi4 is not booting, then it's very unlikely that the EEPROM is corrupted. The first thing that you should check is that the OS image was correctly installed using the Raspberry Pi Imager which is available on the [downloads page](https://www.raspberrypi.org/downloads/). If that doesn't work or you wish to revert EEPROM configuration changes to factory defaults then you can also create an EEPROM recovery SD card image using the Raspberry Pi Imager.
# Reset to factory defaults
The [Raspberry Pi Imager](https://www.raspberrypi.org/downloads/) provides an EEPROM recovery image which may be used to reset the bootloader and VLI EEPROMs to factory defaults.
# 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)
# Bug reports
Bootloader bugs are especially difficult to describe because there's no display. Where possible please include the following information in order to help identify the problem.
* EEPROM version (vcgencmd bootloader_version or the pieeprom filename)
* EEPROM config (from rpi-eeprom-config)
* UART trace using USB serial cable
* Wireshark trace for network boot. Filtering for DHCP and TFTP protocols or by mac-address for the Pi4 is fine.
# BETA versions of the bootloader
If you want to try the BETA version of the bootloader then we recommend that you always try this with a spare sd-card and are comfortable with using the rescue image. For debugging you may find a USB serial cable useful.
Beta features are always documented [here](https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/release-notes.md) first. Once the configuration has stabalised then the [Bootloader configuration](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md) will be updated, however, there's normally a bit of a delay in order to allow official documentation to be reviewed.
* [Release notes](firmware/release-notes.md)
* [Releases](releases.md)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
../beta/pieeprom-2019-07-15.bin

View File

@@ -0,0 +1 @@
../beta/pieeprom-2019-09-10.bin

View File

@@ -0,0 +1 @@
../beta/pieeprom-2020-04-16.bin

View File

@@ -0,0 +1 @@
../beta/recovery.bin

View File

@@ -0,0 +1 @@
../beta/vl805-00013701.bin

View File

@@ -0,0 +1 @@
../beta/vl805-000137ab.bin

View File

@@ -0,0 +1 @@
../beta/vl805-000137ad.bin

View File

@@ -0,0 +1 @@
../beta/pieeprom-2020-01-17.bin

View File

@@ -0,0 +1 @@
../beta/pieeprom-2020-03-19.bin

View File

@@ -0,0 +1 @@
../beta/pieeprom-2020-04-16.bin

View File

@@ -0,0 +1 @@
../beta/recovery.bin

View File

@@ -0,0 +1 @@
../beta/vl805-000137ad.bin

View File

@@ -1,5 +1,164 @@
# 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
## 2020-09-07 Promote 2020-09-03 to release to STABLE
## 2020-09-03 Only use green LED for error status in bootloader - BETA
* Turn the green LED on and leave it on unless an error code occurs.
Previously, SD activity was displayed but that plus muxing with the
SPI CS made the LED activity confusing.
The HDMI diagnostics screen now provides much better information
for determing if the bootloader is running or frozen.
* CM4 enable GPIO for SD power.
* Filename should be 2020-09-03
## 2020-08-31 Disable self-update from SD card - BETA
* Since the ROM will load recovery.bin from the SD card self update is not
required. Although it functions correctly there is a small risk stale
pieeprom.upd files would be installed automatically e.g. if the
rpi-eeprom-update service has been disabled.
## 2020-08-10 Promote 2020-07-31 release to STABLE
* The USB port power management change from the last BETA improves
compatiblity for devices which during reset with no regressions reported.
Make this the latest stable release.
## 2020-07-31 Standardize USB port power control accross board revisions - BETA
* Turn off USB port power for 1-second regardless of boot-mode. This appears
to resolve an issue on R1.3 and older board revisions where some USB
devices would fail upon reboot. On R1.4 USB port power is turned off
automatically by the PMIC so this is just held in reset for longer. For
earlier board revisions the USB port power is explicitly turned off via
XHCI.
This can be overriden via USB_MSD_PWR_OFF_TIME in the EEPROM config.
* Update to the latest Broadcom memsys FW - no significant functional change.
## 2020-07-20 Promote 2020-07-16 bootloader and VL805 0138A1 FW to stable - STABLE
* Promote the latest beta to stable as the next production firmware release
candidate.
The main difference between this and the previous stable version is
the VL805 FW update.
## 2020-07-16 Update VL805 FW to 0138A1 and add optional EEPROM write-protect - BETA
* Patch previous 2020-07-16 from c44ee87f -> 45291ce6 to fix a CM4 specific
issue which does not impact Model B
* Update the VL805 embedded / standalone FW version to 0138A1
* User settings of the ASPM bits in the PCI configuration space
link control register are now maintained
* Better full-speed Isochronous endpoint support
* Add eeprom_write_protect config.txt variable which if set configures
the non-volatile status register bits to define the write protect
regions.
* If 1 then configure the write protect regions for both the
bootloader and VLI EEPROMs to cover the entire EEPROM.
* If zero then clear all write protect bits.
* If missing or -1 then don't change the current state.
* The write protect is only effective if the /WP pin is pulled low
e.g. by shorting TP5 to ground.
* WARNING: Previous versions of the bootloader, recovery.bin and vl805
tool do NOT clear the non-volatile status bits for the VL805 SPI EEPROM.
Consequently, installing an older version will fail/hang if the write
protect bits have not been cleared first (eeprom_write_protect=0)
* Update the vl805 user-space tool to clear the WP bits.
* Add recovery_wait config.txt option which if set to 1 forces the EEPROM
rescue image and flashes the activity LED forever. This is intended for
use with an SD card image which just contains recovery.bin + config.txt
and is used to set/clear WP on multiple boards.
* The write protect functionality works with self-update mode, however,
the bootloader must have already been updated to the version supporting
write protect first i.e. at least two reboots are required.
* Update the HDMI diagnostics screen to display 'RO' after the EEPROM version
if the write status register for the bootloader SPI EEPROM has write protect
bits defined. This does NOT attempt to verify if /WP is low.
## 2020-07-06 Tweak USB port power and clear ACT LED after SPI - BETA
* Increase port power off limit to 5 seconds.
* Increase the port power off default to 1 second. This seems to cover most
commonly seen USB MSD devices which require the USB port power to be disabled
after the USB HC chip is reset.
* Reset activity LED after SPI access to reduce the number of spurious LED flashes.
* Add SPI error diagnostic error code (3 long 1 short) if SPI commands timeout.
(So far this failure has not been observed on failed boards)
## 2020-06-17 Promote 2020-06-15 to STABLE
* Promote the latest beta EEPROM and recovery.bin to stable and
feature freeze USB MSD support until a production release is ready.
## 2020-06-15 Increase default USB port power delay - BETA
* Increase the default power off delay to 500ms following more
interop testing.
* Make the USB port power off time configurable via the USB_MSD_PWR_OFF_TIME
config. The range may be set between 250 and 1000ms. Zero means no port
power off.
* Fix some issues in XHCI endpoint configuration where the code was wrong
but does not fail with the current VL805 FW.
## 2020-06-12 Improve support for powered USB SATA devices - BETA
* Reset Ethernet MAC + PHY if final boot mode is not network boot
See: Kernel warning and network failure when attempting to use the network after bootloader times out. #144
* Improve handling of multiple bootable USB devices and remove USB_MSD_BOOT_MAX_RETRIES
* Resolve: No DHCPACK with DHCP relay agent #58
* Toggle USB root hub port power for 200ms on the first USB MSD boot attempt
See: Bootloader can't boot via USB-HDD after system reboot #151
* Update bootloader handover to support uart_2ndstage - requires
a newer start.elf firmware which will be via rpi-update.
* Assert PCIe fundamental reset if the final bootmode was not USB-MSD because
the OS might not do this before starting XHCI.
## 2020-06-03 Bootmode tweaks and fix issue with > 4TB drives - BETA
* Resolve: Unable to boot from USB MSD - Seagate 5Tb HDD backup drive #139
* Increase USB MSD timeout from 10 to 20 seconds.
* Max retries now default to zero because the default BOOT_ORDER includes
restart (0xf). Therefore, each boot-mode is now tried once before moving
to the next mode. The retries mechanism is largely redudant now that
the loop/restart mode exists.
* If TFTP fails and network boot retries > 0 then wait 5 seconds before
retrying to avoid overloading a misconfigured TFTP server.
* Map undefined boot-modes in BOOT_ORDER to SD (0x1) instead of stopping.
* Add missing pieeprom-2020-05-28
## 2020-05-28 Secondary fix for VL805 readback issue - BETA
* Re-upload 2020-05-28 after Git issue
* rpi-eeprom-update for new board revisions
## 2020-05-27 Fix DPI issue - BETA
* Resolve: DPI failure after HDMI diagnostics screen in beta bootloader #133
* Resolve: VL805 readback failure in the bootloader #134
## 2020-05-26 USB MSD updates - BETA
* Resolve: USB boot fails if the GPT contains no basic data or EFI partitions #130
* Resolve: Fix default BOOT_ORDER in mass storage beta #129
* Resolve: Add support for booting from a "superfloppy" disk #120
* Resolve: USB MSD timeout message - incorrect units #131
* Resolve: Recognize efi partition (0xef) as a valid boot #126
* The HDMI diagnostics screen now displays the most significant bytes
of the SHA-256 of the config.txt file.
## 2020-05-26 rpi-eeprom-update
* Mark USE_FLASHROM as deprecated.
* Resolve: Unnecessary check for '*.elf' in BOOTFS #92
* Update help for FIRMWARE_RELEASE_STATUS.
## 2020-05-15 Add pieeprom-2020-05-15 beta with USB boot
* USB mass storage boot will NOT work without the updated firmware
start.elf binaries. These will probably be released via rpi-update
in a few days time.
This release simply helps to validate if there are regressions in
the current SD and Network boot modes.
* SELF_UPDATE and bootloader_update are now enabled by default.
## 2020-05-11 Garbage collect old binaries
* Now that 2020-04-16 is has been released as the default production
release move the old binaries to an old (deprecated) directory.
These can be removed for the APT package to reduce disk space.
## Promote 2020-04-16 EEPROM release critical
* Make this the default release for all users. This supports network
boot, configurable boot order and HDMI diagnostics screen.
## 2020-04-16 Promote to stable
* The PLL analog changes in the beta release never made it to stable.
Skip straight 2020-04-16 to synchronize releases.
@@ -47,20 +206,20 @@
* SUBNET
* GATEWAY
* TFTP_IP
* If a fatal bootloader error occurs then an HDMI diagnostics screen is
displayed at VGA/DVI resolution on both outputs for two minutes.
This may be disabled by setting DISABLE_HDMI=1 in the EEPROM
* If a fatal bootloader error occurs then an HDMI diagnostics screen is
displayed at VGA/DVI resolution on both outputs for two minutes.
This may be disabled by setting DISABLE_HDMI=1 in the EEPROM
configuration OR setting display_splash=1 in config.txt.
* Allow the PXE menu option to match a custom string specified by
PXE_OPTION43. The default is still "Raspberry Pi Boot"
* DHCP_OPTION97 - The default GUID has now changed to
* DHCP_OPTION97 - The default GUID has now changed to
RPI4+BOARD_ID+ETH_MAC_LSB+SERIAL in order to make it easier to
automatically identify Raspberry Pi computers. The old behaviour
is enabled by setting DHCP_OPTION97=0 which simply repeats the serial
number 4 times.
* SELF_UPDATE. If SELF_UPDATE is set to 1 in the EEPROM configuration AND
config.txt contains bootloader_update=1 then the bootloader will looking
for pieeprom.upd and vl805.bin and apply these firmware files if
for pieeprom.upd and vl805.bin and apply these firmware files if
they are different to the current image, before doing a watchdog reset.
This should make it easier to update the bootloader for network
booted setups because an SD card is not required for recovery.bin.
@@ -81,7 +240,7 @@
beta folder.
## 2020-01-22 - vl805 00137ad
* Set the default/critical vl805 version to be 00137ad. This has the
* Set the default/critical vl805 version to be 00137ad. This has the
same power savings as 0137ab but with fixes for USB webcams.
## 2020-01-17 - Git 5e86aac5f (BETA) RC4
@@ -149,7 +308,7 @@
## 2019-07-15 - Git 514670a2
* Turn green LED activity off on halt.
* Pad embedded config file with spaces for easier editing by end users.
* Halt now behaves the same as earlier Pi models to improve power behavior at halt for HATs.
* Halt now behaves the same as earlier Pi models to improve power behavior at halt for HATs.
* WAKE_ON_GPIO now defaults to 1 in the EEPROM config file.
* POWER_OFF_ON_HALT setting added defaulting to zero. Set this to 1 to restore the behavior where 'sudo halt' powers off all PMIC output.
* If WAKE_ON_GPIO=1 then POWER_OFF_ON_HALT is ignored.

0
firmware/stable/pieeprom-2020-04-16.bin Executable file → Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

27
releases.md Normal file
View File

@@ -0,0 +1,27 @@
# rpi-eeprom releases
This page provides links to the production and development release images for the Raspberry Pi 4 bootloader EEPROM. Normally, the
bootloader is automatically updated after an APT update via the [rpi-eeprom-update](https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md)
utility. However, it's sometimes more convenient to use a recovery image to program the EEPROM with default settings for a given release, rather than updating via Linux.
## Release notes
Release notes are available [here](https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/release-notes.md).
## Recovery image
The latest production recovery image is [2020-04-16](https://github.com/raspberrypi/rpi-eeprom/releases/tag/v2020.04.16-137ad). This
is the version selected by the [Raspberry Pi Imager](https://www.raspberrypi.org/downloads/).
## USB MSD boot
The latest USB mass storage boot recovery image is [2020-07-31](https://github.com/raspberrypi/rpi-eeprom/releases/tag/v2020.07.31-138a1).
For support please see this [forum thread](https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=277007)
N.B. Although the bootloader has now been promoted to a stable / feature-freeze release USB MSD should still be considered BETA software because this requires updates to the GPU firmware.
## Previous releases
All [previous releases](https://github.com/raspberrypi/rpi-eeprom/releases) are available here.
## Old EEPROM images
Recovery images are only created for production images or for major test releases e.g. USB MSD boot. Old bootloader images are periodically
removed from the APT package to reduce the disk space. The binaries can still be downloaded from Github [here](https://github.com/raspberrypi/rpi-eeprom/tree/master/firmware/old)
but are not supported and may fail to boot on newer revisions of the hardware.
For example, the Pi 4 8GB requires bootloader version 2020-04-16 or newer.

View File

@@ -1,8 +1,8 @@
#!/usr/bin/python
#!/usr/bin/env python
# rpi-eeprom-config
# Utility for reading and writing the configuration file in the
# Raspberry Pi4 bootloader EEPROM image.
# Raspberry Pi 4 bootloader EEPROM image.
import argparse
import struct
@@ -98,7 +98,7 @@ class BootloaderImage(object):
def main():
parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, \
description='Bootloader EEPROM configuration tool for the Raspberry Pi 4B. \
description='Bootloader EEPROM configuration tool for the Raspberry Pi 4. \
\n\nThere are 3 operating modes: \
\n\n1. Output the bootloader configuration stored in an EEPROM image file to \
the screen (STDOUT): specify only the name of an EEPROM image file using the \

View File

@@ -32,6 +32,7 @@ USE_FLASHROM=${USE_FLASHROM:-0}
RECOVERY_BIN=${RECOVERY_BIN:-${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}/recovery.bin}
BOOTFS=${BOOTFS:-/boot}
VCMAILBOX=${VCMAILBOX:-/opt/vc/bin/vcmailbox}
CM4_ENABLE_RPI_EEPROM_UPDATE=${CM4_ENABLE_RPI_EEPROM_UPDATE:-0}
EXIT_SUCCESS=0
EXIT_UPDATE_REQUIRED=1
@@ -46,7 +47,16 @@ SPI_SPEED=16000
# Timestamp for first release which doesn't have a timestamp field
BOOTLOADER_FIRST_VERSION=1557513636
EEPROM_SIZE=524288
BOARD_INFO=
BOARD_REVISION=
BOARD_TYPE=
# Newer board revisions embed the VLI firmware in the bootloader EEPROM and
# there is no way to separately update the VLI firmware. Consequently,
# standalone vl805 update files do not trigger automatic updates.
# Recovery.bin and the the SPI bootloader ignore vl805.bin files on boards
# without a dedicate VL805 EEPROM.
HAVE_VL805_EEPROM=0
# Simple bootloader which is able to load start.elf in the event of a power
# cut. This runs SDRAM at low speed and may have reduced functionality but
@@ -154,12 +164,18 @@ applyRecoveryUpdate()
cp -f "${TMP_EEPROM_IMAGE}" "${BOOTFS}/pieeprom.upd" \
|| die "Failed to copy ${TMP_EEPROM_IMAGE} to ${BOOTFS}"
# For NFS mounts ensure that the files are readable to the TFTP user
chmod -f go+r "${BOOTFS}/pieeprom.upd" "${BOOTFS}/pieeprom.sig"
fi
if [ -n "${VL805_UPDATE_IMAGE}" ]; then
sha256sum "${VL805_UPDATE_IMAGE}" | awk '{print $1}' > "${BOOTFS}/vl805.sig" \
|| die "Failed to create ${BOOTFS}/vl805.sig"
cp -f "${VL805_UPDATE_IMAGE}" "${BOOTFS}/vl805.bin"
# For NFS mounts ensure that the files are readable to the TFTP user
chmod -f go+r "${BOOTFS}/vl805.bin" "${BOOTFS}/vl805.sig"
fi
cp -f "${RECOVERY_BIN}" "${BOOTFS}/recovery.bin" \
@@ -167,7 +183,7 @@ applyRecoveryUpdate()
}
applyUpdate() {
checksums_file="/var/lib/dpkg/info/rpi-eeprom-images.md5sums"
checksums_file="/var/lib/dpkg/info/rpi-eeprom.md5sums"
[ "$(id -u)" = "0" ] || die "* Must be run as root - try 'sudo rpi-eeprom-update'"
@@ -176,7 +192,7 @@ applyUpdate() {
cd /
if ! md5sum -c "${checksums_file}" > /dev/null 2>&1; then
md5sum -c "${checksums_file}"
die "rpi-eeprom-images checksums failed - try reinstalling this package"
die "rpi-eeprom checksums failed - try reinstalling this package"
fi
)
fi
@@ -187,6 +203,7 @@ applyUpdate() {
fi
if [ -f "${BOOTLOADER_UPDATE_IMAGE}" ]; then
echo "WARNING: USE_FLASHROM is deprecated."
# Bootloader EEPROM chip-select is muxed with audio pin so disable audio
# LDO first to avoid sending noise to analog audio.
"${VCMAILBOX}" 0x00030056 4 4 0 > /dev/null || true
@@ -251,14 +268,31 @@ getBootloaderUpdateVersion() {
}
checkDependencies() {
BOARD_REVISION="$(sed -n '/^Revision/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo)"
if [ $(((0x$BOARD_REVISION >> 23) & 1)) -ne 0 ] && [ $(((0x$BOARD_REVISION >> 12) & 15)) -eq 3 ]; then
BOARD_INFO="$(od -v -An -t x1 /sys/firmware/devicetree/base/system/linux,revision | tr -d ' \n')"
if [ $(((0x$BOARD_INFO >> 23) & 1)) -ne 0 ] && [ $(((0x$BOARD_INFO >> 12) & 15)) -eq 3 ]; then
echo "BCM2711 detected"
else
# Not a BCM2711, no EEPROMs to update.
exit ${EXIT_SUCCESS}
fi
BOARD_TYPE=$(((0x$BOARD_INFO >> 4) & 0xff))
BOARD_REVISION=$((0x$BOARD_INFO & 0xf))
if [ ${BOARD_TYPE} -eq 20 ] && [ ${CM4_ENABLE_RPI_EEPROM_UPDATE} != '1' ]; then
# For CM4, USB device boot is the recommended method for EEPROM updates.
echo "rpi-eeprom-update is not enabled by default on CM4"
exit ${EXIT_SUCCESS}
fi
if [ ${BOARD_TYPE} -eq 17 ] && [ ${BOARD_REVISION} -lt 4 ]; then
echo "Dedicated VL805 EEPROM detected"
HAVE_VL805_EEPROM=1
else
echo "VL805 firmware in bootloader EEPROM"
HAVE_VL805_EEPROM=0
fi
if ! command -v vcgencmd > /dev/null; then
die "vcgencmd not found. On Debian, try installing the libraspberrypi-bin package."
fi
@@ -269,8 +303,8 @@ checkDependencies() {
# If a board revision specific firmware directory is defined then use that
# in preference to the generic directory.
if [ -d "${FIRMWARE_IMAGE_DIR}-${BOARD_REVISION}" ]; then
FIRMWARE_IMAGE_DIR="${FIRMWARE_IMAGE_DIR}-${BOARD_REVISION}"
if [ -d "${FIRMWARE_IMAGE_DIR}-${BOARD_INFO}" ]; then
FIRMWARE_IMAGE_DIR="${FIRMWARE_IMAGE_DIR}-${BOARD_INFO}"
fi
if vcgencmd bootloader_config | grep -qi "Command not registered"; then
@@ -306,11 +340,13 @@ usage() {
cat <<EOF
rpi-eeprom-update [options]... [FILE]
Checks whether the Raspberry Pi bootloader and the VL805 USB controller
Bootloader EEPROM update tool for the Raspberry Pi 4.
Checks whether the Raspberry Pi 4 bootloader and the VL805 USB controller
EEPROMs are up-to-date and optionally updates the EEPROMs at the next reboot.
The default update mechanism writes recovery.bin and the EEPROM update
image(s) (pieeprom.upd and vl805.bin) to the boot partition on the sd-card.
image(s) (pieeprom.upd and vl805.bin) to the boot partition.
The SHA256 hash of the corresponding images are written to pieeprom.sig
and/or vl805.sig. This guards against file system corruption which could
cause the EEPROM to be flashed with an invalid image. This is not a
@@ -321,22 +357,26 @@ If the update was successful recovery.bin renames itself to recovery.000
to prevent it from running a second time then resets the system.
The system should then boot normally.
If /boot does not correspond to the boot partition on the sd-card and this
is not a NOOBS system then the mount point for BOOTFS should be defined
If /boot does not correspond to the boot partition and this
is not a NOOBS system, then the mount point for BOOTFS should be defined
in /etc/default/rpi-eeprom-update by defining the BOOTFS variable.
A backup of the current EEPROM config file is written to ${FIRMWARE_BACKUP_DIR}
before applying the update.
Unless the -d flag is specified, the current bootloader configuration is
retained.
Options:
-a Automatically install bootloader and USB (VLI) EEPROM updates.
-A Specify which type of EEPROM to automatically update (vl805 or bootloader)
-d Use the default bootloader config instead of migrating the current settings
-d Use the default bootloader config, or if a file is specified using the -f
flag use the config in that file. This option only applies when a
bootloader EEPROM update is needed; if the bootloader EEPROM is up-to-date
then its config will not be changed.
-f Install the given file instead of the latest applicable update
Ignores the FREEZE_VERSION flag in bootloader and is intended for manual
firmware updates.
WARNING: This command should only be run from console mode in order to
avoid conflicts/deadlock with dtoverlay/dtparam settings.
-h Display help text and exit
-i Ignore package checksums - for rpi-eeprom developers.
-j Write status information using JSON notation
@@ -356,10 +396,13 @@ and POWER_OFF_ON_HALT settings.
USE_FLASHROM
USE_FLASHROM is deprecated and there is no support for this. The muxing
of the SPI pins causes too many issues for this to ever be reliable.
The flashrom update mechanism may be enabled by setting USE_FLASHROM=1. This
also selects the vl805 tool instead of using recovery.bin to perform the
update. This may be desirable if an immediate update is required or if an
sd-card is not present.
SD card is not present.
However, this not recommended because the SPI pins are muxed with audio and other
device drivers may be using SPI (e.g. HATs). This is also not safe in the
event of a power failure during the update of the EEPROM.
@@ -368,15 +411,27 @@ those devices to stop working until after the system is reboot.
FIRMWARE_RELEASE_STATUS
Specifies the release status of the firmware to apply. The default is 'critical'
which is the most stable production version. Alternatively, 'stable' or
'beta' may be selected for development releases.
A 'critical' update is the latest stable production version and is normally
only updated after it has been tested via the 'beta' and then a 'stable' release.
Specifies the release status of the firmware to apply. The default is 'critical'.
Before selecting a firmware release directory this script checks whether there
is a board revision specific variant e.g. critical-c03111. If present then the
board-revision specific version is used in preference.
Release status:
critical: The latest production release plus important security or hardware compatibility bug fixes.
stable: Contains new features that have already undergone some beta testing.
These are candidates for new production releases.
beta: New features, bug fixes for development/test purposes. Use at your own
risk!
As far as rpi-eeprom-update is concerned FIRMWARE_RELEASE_STATUS is just
the subdirectory mapping under ${FIRMWARE_ROOT}. Therefore, custom release
directories are supported by creating the relevant directory and changing
the FIRMWARE_RELEASE_STATUS environment variable.
Examples:
To extract the configuration file from an EEPROM image:
rpi-eeprom-config pieeprom.bin --out bootconf.txt
@@ -399,7 +454,7 @@ EOF
printVersions()
{
if [ "${ACTION_UPDATE_BOOTLOADER}" = 1 ]; then
echo "BOOTLOADER: update required"
echo "BOOTLOADER: update available"
else
echo "BOOTLOADER: up-to-date"
fi
@@ -409,7 +464,7 @@ printVersions()
echo " FW DIR: ${FIRMWARE_IMAGE_DIR}"
if [ "${ACTION_UPDATE_VL805}" = 1 ]; then
echo "VL805: update required"
echo "VL805: update available"
else
if [ "$(id -u)" = "0" ]; then
echo "VL805: up-to-date"
@@ -438,7 +493,11 @@ findBootFS()
# If BOOTFS is not a directory or doesn't contain any .elf files then
# it's probably not the boot partition.
[ -d "${BOOTFS}" ] || die "BOOTFS: \"${BOOTFS}\" is not a directory"
[ "$(find "${BOOTFS}/" -name "*.elf" | wc -l)" -gt 0 ] || die "BOOTFS: \"${BOOTFS}\" contains no .elf files"
if [ "$(find "${BOOTFS}/" -name "*.elf" | wc -l)" -gt 0 ]; then
echo "BOOTFS ${BOOTFS}"
else
echo "WARNING: BOOTFS: \"${BOOTFS}\" contains no .elf files. Please check boot directory"
fi
}
getVL805CurrentVersion()
@@ -483,7 +542,6 @@ lookupVersionInfo()
getBootloaderUpdateVersion
getVL805CurrentVersion
getVL805UpdateVersion
if [ "${BOOTLOADER_UPDATE_VERSION}" -gt "${BOOTLOADER_CURRENT_VERSION}" ]; then
ACTION_UPDATE_BOOTLOADER=1
@@ -491,12 +549,18 @@ lookupVersionInfo()
BOOTLOADER_UPDATE_IMAGE=""
fi
if [ -n "${VL805_CURRENT_VERSION}" ] && [ -n "${VL805_UPDATE_VERSION}" ]; then
if [ "${VL805_CURRENT_VERSION}" \< "${VL805_UPDATE_VERSION}" ]; then
ACTION_UPDATE_VL805=1
else
VL805_UPDATE_IMAGE=""
if [ "${HAVE_VL805_EEPROM}" = 1 ]; then
getVL805UpdateVersion
if [ -n "${VL805_CURRENT_VERSION}" ] && [ -n "${VL805_UPDATE_VERSION}" ]; then
if [ "$((0x${VL805_CURRENT_VERSION}))" -lt "$((0x${VL805_UPDATE_VERSION}))" ]; then
ACTION_UPDATE_VL805=1
else
VL805_UPDATE_IMAGE=""
fi
fi
else
VL805_UPDATE_VERSION="${VL805_CURRENT_VERSION}"
ACTION_UPDATE_VL805=0
fi
}
@@ -563,7 +627,7 @@ checkVersion()
lookupVersionInfo
if [ "${BOOTLOADER_UPDATE_VERSION}" -gt "${BOOTLOADER_CURRENT_VERSION}" ]; then
echo "*** UPDATE REQUIRED ***"
echo "*** UPDATE AVAILABLE ***"
printVersions
write_status_info "EXIT_UPDATE_REQUIRED"
exit ${EXIT_UPDATE_REQUIRED}
@@ -585,21 +649,25 @@ write_status_info()
vl805_new="${VL805_UPDATE_VERSION}"
if [ "${JSON_OUTPUT}" = "no" ]; then
[ "${HAVE_VL805_EEPROM}" = "0" ] && vl805_eeprom="no" || vl805_eeprom="yes"
cat > "${MACHINE_OUTPUT}" <<EOF
EXITCODE="${exit_code}"
BOOTLOADER_CURRENT=${bootloader_cur}
BOOTLOADER_LATEST=${bootloader_new}
VL805_CURRENT="${vl805_cur}"
VL805_LATEST="${vl805_new}"
VL805_EEPROM="${vl805_eeprom}"
EOF
else
[ "${HAVE_VL805_EEPROM}" = "0" ] && vl805_eeprom="false" || vl805_eeprom="true"
cat > "${MACHINE_OUTPUT}" <<EOF
{
"EXITCODE": "${exit_code}",
"BOOTLOADER_CURRENT": ${bootloader_cur},
"BOOTLOADER_LATEST": ${bootloader_new},
"VL805_CURRENT": "${vl805_cur}",
"VL805_LATEST": "${vl805_new}"
"VL805_LATEST": "${vl805_new}",
"VL805_EEPROM": ${vl805_eeprom}
}
EOF
fi

View File

@@ -141,17 +141,17 @@ check_conf_size_too_large()
fi
}
check_loopback "../firmware/critical/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
check_loopback "../firmware/old/beta/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
cleanup
check_update "../firmware/critical/pieeprom-2019-07-15.bin" "pieeprom-2019-07-15-freeze.bin" "bootconf-2019-07-15-freeze.txt"
check_update "../firmware/old/beta/pieeprom-2019-07-15.bin" "pieeprom-2019-07-15-freeze.bin" "bootconf-2019-07-15-freeze.txt"
cleanup
check_reduce_size "../firmware/critical/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
check_reduce_size "../firmware/old/beta/pieeprom-2019-07-15.bin" "bootconf-2019-07-15.txt"
cleanup
check_conf_size_large "../firmware/critical/pieeprom-2019-07-15.bin"
check_conf_size_large "../firmware/old/beta/pieeprom-2019-07-15.bin"
cleanup
check_conf_size_too_large "../firmware/critical/pieeprom-2019-07-15.bin"
check_conf_size_too_large "../firmware/old/beta/pieeprom-2019-07-15.bin"
cleanup