mirror of
https://github.com/raspberrypi/rpi-eeprom.git
synced 2026-01-20 21:13:36 +08:00
Compare commits
345 Commits
v2022.04.2
...
debian/bus
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e9c4f34ec | ||
|
|
580c7613cf | ||
|
|
bf7419c961 | ||
|
|
6532032cc6 | ||
|
|
c4cf52dd4a | ||
|
|
aae8cc6046 | ||
|
|
e2fc5b1993 | ||
|
|
259c4e99ed | ||
|
|
5129267f6a | ||
|
|
55ca589ab9 | ||
|
|
b4b4605c7d | ||
|
|
2fb2132904 | ||
|
|
6e79e995bb | ||
|
|
36886df55b | ||
|
|
388ee17283 | ||
|
|
2c6dabedf1 | ||
|
|
e86fc31d7a | ||
|
|
ca1f5469db | ||
|
|
0ebda77d49 | ||
|
|
b9fcc9dc72 | ||
|
|
2c709e087a | ||
|
|
214cb6ffd4 | ||
|
|
d2cbfbc292 | ||
|
|
7bbbd9407f | ||
|
|
141a8cd9f0 | ||
|
|
9269d78320 | ||
|
|
1197a4ae31 | ||
|
|
551d9da184 | ||
|
|
eb3bb76a81 | ||
|
|
049da63a4e | ||
|
|
cb57a7df05 | ||
|
|
092f876595 | ||
|
|
ec3ed8bc3c | ||
|
|
d0ff0d5d72 | ||
|
|
d995c13dd9 | ||
|
|
0a5328a01a | ||
|
|
19362b763f | ||
|
|
a16f73a2e3 | ||
|
|
272d1573e3 | ||
|
|
a5f5513b16 | ||
|
|
3f85bc0126 | ||
|
|
134e95484a | ||
|
|
2efe9daef6 | ||
|
|
e41bec0bed | ||
|
|
8c18e9c9bb | ||
|
|
e4f90a89e6 | ||
|
|
38ee969c32 | ||
|
|
7bc807661f | ||
|
|
4703b71a95 | ||
|
|
a70a48ccb3 | ||
|
|
51648bb0b3 | ||
|
|
6425f70225 | ||
|
|
d7e137cf05 | ||
|
|
564fdb44f9 | ||
|
|
4eb1bd11c1 | ||
|
|
1c758a0904 | ||
|
|
288489257f | ||
|
|
f38458e7cd | ||
|
|
4cbc4bc1c5 | ||
|
|
43262c2c5c | ||
|
|
3393903982 | ||
|
|
88e24c3f52 | ||
|
|
752fc829ca | ||
|
|
0702ae8b28 | ||
|
|
cc7537dbd2 | ||
|
|
fb2058b092 | ||
|
|
9205f0b9ed | ||
|
|
e7aaaf9410 | ||
|
|
e0c0b7ba3c | ||
|
|
191a583563 | ||
|
|
0fad5b72e8 | ||
|
|
1d84109543 | ||
|
|
9f934cf9a6 | ||
|
|
081f893f3a | ||
|
|
50451ca6ad | ||
|
|
2f5538bc4e | ||
|
|
054d723b38 | ||
|
|
0dacc2a4f2 | ||
|
|
78084d440b | ||
|
|
b874e687f1 | ||
|
|
80b2bf64a5 | ||
|
|
f8d467e8a6 | ||
|
|
94d6214bef | ||
|
|
561fde15dc | ||
|
|
a6a1f702a6 | ||
|
|
9f0fcc4fc2 | ||
|
|
af36c603a6 | ||
|
|
a4f1d9b787 | ||
|
|
d2ede5387a | ||
|
|
702796fdbf | ||
|
|
95fbb9bcbb | ||
|
|
6dd2c2e401 | ||
|
|
cd60780ed2 | ||
|
|
dc9dd740eb | ||
|
|
bb13edaeb8 | ||
|
|
776ccf4363 | ||
|
|
2a1c8542b9 | ||
|
|
046f0cebab | ||
|
|
85d6495912 | ||
|
|
79f6a0707d | ||
|
|
398b162dbd | ||
|
|
9154ed5b7d | ||
|
|
c6295d6c1c | ||
|
|
5494946485 | ||
|
|
13d5505338 | ||
|
|
7e78a1f35b | ||
|
|
9808e5597e | ||
|
|
468a43d0d8 | ||
|
|
919e18a74b | ||
|
|
766486cd97 | ||
|
|
b01aa93118 | ||
|
|
dd5dc9d21a | ||
|
|
52c95ae7df | ||
|
|
dc16c83ff9 | ||
|
|
6c34d6d090 | ||
|
|
b42d5e4d6d | ||
|
|
d39640714b | ||
|
|
230a4b19f8 | ||
|
|
3f6ed502cf | ||
|
|
ada1bfacca | ||
|
|
4bdea13a50 | ||
|
|
701268b6b1 | ||
|
|
e44626199a | ||
|
|
753d0f67f7 | ||
|
|
41cec6a12c | ||
|
|
cb46a4fb04 | ||
|
|
11f64b78a1 | ||
|
|
cad484f162 | ||
|
|
1982e92e03 | ||
|
|
1c08eef4b4 | ||
|
|
2682b1761e | ||
|
|
d10159340a | ||
|
|
a1a83158c8 | ||
|
|
7d51450d32 | ||
|
|
75ee452cf1 | ||
|
|
9ddb00b283 | ||
|
|
e942031a37 | ||
|
|
0e9c19c16d | ||
|
|
1b5892f343 | ||
|
|
7e9a43e85d | ||
|
|
4a57ec4367 | ||
|
|
4ff112ab50 | ||
|
|
b02180d3fc | ||
|
|
19835ec357 | ||
|
|
61bd307964 | ||
|
|
bb358e9c16 | ||
|
|
9bf449db68 | ||
|
|
d31e83585c | ||
|
|
d20f92a8d3 | ||
|
|
ddcc24a8c7 | ||
|
|
eec75aa62d | ||
|
|
c60fbe6252 | ||
|
|
66f7d19543 | ||
|
|
6ec3d283d5 | ||
|
|
3b91c0d31b | ||
|
|
d0a5b9d841 | ||
|
|
ebf3885910 | ||
|
|
7752e11dac | ||
|
|
3b34f6a6e5 | ||
|
|
483d5e2c13 | ||
|
|
c26edeeb78 | ||
|
|
56cacb9868 | ||
|
|
08f6b038f0 | ||
|
|
798ceb42fe | ||
|
|
92c92e47d7 | ||
|
|
7422c6e08f | ||
|
|
5cefd12f37 | ||
|
|
d051be77c3 | ||
|
|
3189cd232a | ||
|
|
fdb646098f | ||
|
|
32bf528afb | ||
|
|
34fd9816ee | ||
|
|
42b040fbf7 | ||
|
|
561811a6bd | ||
|
|
d998047a20 | ||
|
|
fa580406b0 | ||
|
|
efe40b9d0a | ||
|
|
2ceb6c6864 | ||
|
|
6dce143fd5 | ||
|
|
1149e87cb2 | ||
|
|
dc47b0324e | ||
|
|
a580a0eb53 | ||
|
|
5fb3433ab8 | ||
|
|
7dbceba4cb | ||
|
|
1624d3d16a | ||
|
|
e165f3f064 | ||
|
|
baae3de8bd | ||
|
|
db5a38bc40 | ||
|
|
263471ad1e | ||
|
|
8b1d2f1a43 | ||
|
|
ad6dbb7bfa | ||
|
|
443bb7d07d | ||
|
|
9e929e4389 | ||
|
|
1c6e9ab50a | ||
|
|
2a7312a916 | ||
|
|
4f6587ce48 | ||
|
|
63abda5f02 | ||
|
|
603c49604f | ||
|
|
57a93ebc29 | ||
|
|
e94a33b2a4 | ||
|
|
f1c703fd2a | ||
|
|
03a2ca1077 | ||
|
|
3b9c1727b0 | ||
|
|
285c347c74 | ||
|
|
c8d36c50e9 | ||
|
|
42a5012d61 | ||
|
|
b1841526e1 | ||
|
|
c3996d6bfa | ||
|
|
067a4b8509 | ||
|
|
12a34c03ad | ||
|
|
3012c95b5d | ||
|
|
8e1978da8a | ||
|
|
e7006e0405 | ||
|
|
6c5c406370 | ||
|
|
384143b035 | ||
|
|
0732ea9932 | ||
|
|
3cd4b49653 | ||
|
|
503281424e | ||
|
|
df247a83da | ||
|
|
4330c5a48d | ||
|
|
d9b9162d9e | ||
|
|
f192c2dbb9 | ||
|
|
8b43c37328 | ||
|
|
81655ac6fb | ||
|
|
7eb51b9e2a | ||
|
|
92fa4238d2 | ||
|
|
3bef91bcc6 | ||
|
|
c9dd9417fb | ||
|
|
ef0663db3f | ||
|
|
21c424b530 | ||
|
|
e0278c597b | ||
|
|
10b01cf8cf | ||
|
|
e377c1663c | ||
|
|
9829d2a24b | ||
|
|
90361b07a3 | ||
|
|
26d2b501f9 | ||
|
|
c076693a95 | ||
|
|
23aeb554d7 | ||
|
|
99980543ad | ||
|
|
21b7cbb99e | ||
|
|
0d4f3c6fac | ||
|
|
c4d2c622aa | ||
|
|
705cb0b304 | ||
|
|
9e25cf8655 | ||
|
|
f9161a6650 | ||
|
|
ef26c360f8 | ||
|
|
7d86f6d620 | ||
|
|
eac62ea9ad | ||
|
|
31e6871004 | ||
|
|
65438435ae | ||
|
|
ea5dff5a3b | ||
|
|
05aaf56e47 | ||
|
|
ee0bce14b8 | ||
|
|
2321aa5d9f | ||
|
|
ff8fe8d221 | ||
|
|
52b4142fd7 | ||
|
|
89362319c7 | ||
|
|
ea1b69d350 | ||
|
|
18650c2af9 | ||
|
|
d78fcd8da6 | ||
|
|
d6abc5742f | ||
|
|
b8254d04a4 | ||
|
|
f43f02687e | ||
|
|
3f6ef59385 | ||
|
|
399e9b3f56 | ||
|
|
781490e7aa | ||
|
|
cc7cc894ea | ||
|
|
4a82077519 | ||
|
|
35f3fa4d37 | ||
|
|
8ed4d192d4 | ||
|
|
e4213b443d | ||
|
|
52273c8c38 | ||
|
|
c004d688b6 | ||
|
|
5ef2488f1a | ||
|
|
c1d167fb8a | ||
|
|
08bd400696 | ||
|
|
fd3b2622c9 | ||
|
|
f7cc67dab2 | ||
|
|
c33475c586 | ||
|
|
601f478340 | ||
|
|
035876b28b | ||
|
|
0037b56bc2 | ||
|
|
fca5c63a40 | ||
|
|
0ea79a647b | ||
|
|
ce4939cbda | ||
|
|
7caf9b880b | ||
|
|
c53d68ced0 | ||
|
|
c7fcf86cf2 | ||
|
|
e04b5722fe | ||
|
|
c551c9f098 | ||
|
|
eb77ac9432 | ||
|
|
03c6bb2ab9 | ||
|
|
0dcba721e8 | ||
|
|
37c29eb046 | ||
|
|
d285e48996 | ||
|
|
9262772059 | ||
|
|
9bf0332fee | ||
|
|
4d7663d2fc | ||
|
|
bc933877bd | ||
|
|
69f89ac00f | ||
|
|
e31833a78a | ||
|
|
84fc868161 | ||
|
|
f34b155153 | ||
|
|
7c5619a011 | ||
|
|
dabc9da0c3 | ||
|
|
6da443b5db | ||
|
|
fa6bbda372 | ||
|
|
685e2e0012 | ||
|
|
bd0b1e90d1 | ||
|
|
d17236c074 | ||
|
|
9df7ba2e3a | ||
|
|
c8c94f90ef | ||
|
|
ef13e63056 | ||
|
|
bd1340351e | ||
|
|
837a62d314 | ||
|
|
d186fdd1fe | ||
|
|
d653efa74f | ||
|
|
2a6e2c0bf8 | ||
|
|
b3d30efa59 | ||
|
|
acf47682db | ||
|
|
46f07e84d1 | ||
|
|
645b09e730 | ||
|
|
439192768c | ||
|
|
34e9183a26 | ||
|
|
549589f692 | ||
|
|
ef35796474 | ||
|
|
f7c2b2fb50 | ||
|
|
9aea989324 | ||
|
|
f5fa493b8c | ||
|
|
4c5cf761a6 | ||
|
|
46473bd4a7 | ||
|
|
6a085f7bcc | ||
|
|
8c3981e7cd | ||
|
|
d2ce054968 | ||
|
|
52f02d17de | ||
|
|
20e068b8a7 | ||
|
|
5b35f0d214 | ||
|
|
c5da8807c1 | ||
|
|
66b7149d86 | ||
|
|
570c1626dc | ||
|
|
55ec087893 | ||
|
|
7e1fd070ff | ||
|
|
a528e7a360 | ||
|
|
05f056c682 | ||
|
|
c7fbd48d1f |
9
debian/.gitignore
vendored
Normal file
9
debian/.gitignore
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
.debhelper/
|
||||
debhelper-build-stamp
|
||||
files
|
||||
rpi-eeprom/
|
||||
rpi-eeprom-images/
|
||||
*.debhelper.log
|
||||
*.debhelper
|
||||
*.substvars
|
||||
*.1
|
||||
28
debian/LICENCE.bootloader
vendored
Normal file
28
debian/LICENCE.bootloader
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
Copyright (c) 2019, Raspberry Pi (Trading) Ltd.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution. Redistribution and use in binary form, without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* This software may only be used for the purposes of developing for,
|
||||
running or using a Raspberry Pi device.
|
||||
* Redistributions must reproduce the above copyright notice and the
|
||||
following disclaimer in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
* Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
|
||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGE.
|
||||
1088
debian/changelog
vendored
Normal file
1088
debian/changelog
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@@ -0,0 +1 @@
|
||||
11
|
||||
29
debian/control
vendored
Normal file
29
debian/control
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
Source: rpi-eeprom
|
||||
Section: misc
|
||||
Priority: optional
|
||||
Maintainer: Serge Schneider <serge@raspberrypi.org>
|
||||
Build-Depends: debhelper (>= 11), help2man, python3-minimal
|
||||
Standards-Version: 4.1.3
|
||||
Homepage: https://github.com/raspberrypi/rpi-eeprom/
|
||||
Vcs-Browser: https://github.com/raspberrypi/rpi-eeprom/
|
||||
Vcs-Git: https://github.com/raspberrypi/rpi-eeprom.git
|
||||
|
||||
Package: rpi-eeprom
|
||||
Architecture: armhf arm64
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libraspberrypi-bin, python3,
|
||||
binutils, raspberrypi-bootloader (>= 1.20190819), pciutils
|
||||
Breaks: rpi-eeprom-images (<<7.2)
|
||||
Replaces: rpi-eeprom-images (<<7.2)
|
||||
Recommends: flashrom
|
||||
Provides: rpi-eeprom-images
|
||||
Description: Raspberry Pi 4 boot EEPROM updater
|
||||
Checks whether the Raspberry Pi bootloader EEPROM is up-to-date and updates
|
||||
the EEPROM.
|
||||
|
||||
Package: rpi-eeprom-images
|
||||
Architecture: armhf arm64
|
||||
Depends: ${misc:Depends}, rpi-eeprom (>=7.2)
|
||||
Priority: optional
|
||||
Section: oldlibs
|
||||
Description: transitional package
|
||||
This is a transitional package. It can safely be removed.
|
||||
1
debian/copyright
vendored
Symbolic link
1
debian/copyright
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../LICENSE
|
||||
1
debian/default/rpi-eeprom-update
vendored
Normal file
1
debian/default/rpi-eeprom-update
vendored
Normal file
@@ -0,0 +1 @@
|
||||
FIRMWARE_RELEASE_STATUS="default"
|
||||
3
debian/gbp.conf
vendored
Normal file
3
debian/gbp.conf
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[DEFAULT]
|
||||
upstream-tree = master
|
||||
debian-branch = debian/buster
|
||||
0
debian/patches/series
vendored
Normal file
0
debian/patches/series
vendored
Normal file
2
debian/rpi-eeprom.docs
vendored
Normal file
2
debian/rpi-eeprom.docs
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
debian/LICENCE.bootloader
|
||||
firmware/release-notes.md
|
||||
12
debian/rpi-eeprom.install
vendored
Normal file
12
debian/rpi-eeprom.install
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
rpi-eeprom-config usr/bin/
|
||||
rpi-eeprom-update usr/bin/
|
||||
rpi-eeprom-digest usr/bin/
|
||||
debian/default/ etc/
|
||||
|
||||
firmware/default lib/firmware/raspberrypi/bootloader/
|
||||
firmware/latest lib/firmware/raspberrypi/bootloader/
|
||||
|
||||
firmware/critical lib/firmware/raspberrypi/bootloader/
|
||||
firmware/stable lib/firmware/raspberrypi/bootloader/
|
||||
firmware/beta lib/firmware/raspberrypi/bootloader/
|
||||
firmware/release-notes.md lib/firmware/raspberrypi/bootloader/
|
||||
2
debian/rpi-eeprom.manpages
vendored
Normal file
2
debian/rpi-eeprom.manpages
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
debian/rpi-eeprom-update.1
|
||||
debian/rpi-eeprom-config.1
|
||||
39
debian/rpi-eeprom.postinst
vendored
Normal file
39
debian/rpi-eeprom.postinst
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
# postinst script for rpi-eeprom
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
40
debian/rpi-eeprom.postrm
vendored
Normal file
40
debian/rpi-eeprom.postrm
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
# postrm script for rpi-eeprom
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
purge)
|
||||
rm -rf /var/lib/raspberrypi/bootloader/backup/
|
||||
;;
|
||||
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
38
debian/rpi-eeprom.prerm
vendored
Normal file
38
debian/rpi-eeprom.prerm
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
# prerm script for rpi-eeprom
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <prerm> `remove'
|
||||
# * <old-prerm> `upgrade' <new-version>
|
||||
# * <new-prerm> `failed-upgrade' <old-version>
|
||||
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
||||
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
||||
# <package-being-installed> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see https://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove|upgrade|deconfigure)
|
||||
;;
|
||||
|
||||
failed-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
11
debian/rpi-eeprom.rpi-eeprom-update.service
vendored
Normal file
11
debian/rpi-eeprom.rpi-eeprom-update.service
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Check for Raspberry Pi EEPROM updates
|
||||
After=boot.mount
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=true
|
||||
ExecStart=/usr/bin/rpi-eeprom-update -s -a
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
27
debian/rules
vendored
Executable file
27
debian/rules
vendored
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/make -f
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
include /usr/share/dpkg/pkg-info.mk
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_installsystemd:
|
||||
dh_installsystemd --name=rpi-eeprom-update
|
||||
|
||||
override_dh_auto_build: debian/rpi-eeprom-update.1 debian/rpi-eeprom-config.1
|
||||
|
||||
override_dh_install:
|
||||
mkdir -p debian/rpi-eeprom/var/lib/raspberrypi/bootloader/backup/
|
||||
dh_install
|
||||
|
||||
debian/rpi-eeprom-update.1:
|
||||
help2man -N --version-string="${DEB_VERSION_UPSTREAM}" --help-option="-h" \
|
||||
--name="Checks whether the Raspberry Pi bootloader EEPROM is \
|
||||
up-to-date and updates the EEPROM" \
|
||||
--output=$@ ./rpi-eeprom-update
|
||||
|
||||
debian/rpi-eeprom-config.1:
|
||||
help2man -N --version-string="${DEB_VERSION_UPSTREAM}" --help-option="-h" \
|
||||
--name="Bootloader EEPROM configuration tool for the Raspberry Pi 4B" \
|
||||
--output=$@ ./rpi-eeprom-config
|
||||
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
@@ -0,0 +1 @@
|
||||
3.0 (quilt)
|
||||
1
debian/source/lintian-overrides
vendored
Normal file
1
debian/source/lintian-overrides
vendored
Normal file
@@ -0,0 +1 @@
|
||||
debian-copyright-is-symlink
|
||||
BIN
firmware/beta/pieeprom-2022-05-20.bin
Normal file
BIN
firmware/beta/pieeprom-2022-05-20.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-07-14.bin
Normal file
BIN
firmware/beta/pieeprom-2022-07-14.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-07-19.bin
Normal file
BIN
firmware/beta/pieeprom-2022-07-19.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-07-22.bin
Normal file
BIN
firmware/beta/pieeprom-2022-07-22.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-07-26.bin
Normal file
BIN
firmware/beta/pieeprom-2022-07-26.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-08-02.bin
Normal file
BIN
firmware/beta/pieeprom-2022-08-02.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-09-02.bin
Normal file
BIN
firmware/beta/pieeprom-2022-09-02.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-10-03.bin
Normal file
BIN
firmware/beta/pieeprom-2022-10-03.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-10-06.bin
Normal file
BIN
firmware/beta/pieeprom-2022-10-06.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-10-12.bin
Normal file
BIN
firmware/beta/pieeprom-2022-10-12.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-10-18.bin
Normal file
BIN
firmware/beta/pieeprom-2022-10-18.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-11-02.bin
Normal file
BIN
firmware/beta/pieeprom-2022-11-02.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-11-04.bin
Normal file
BIN
firmware/beta/pieeprom-2022-11-04.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-11-25.bin
Normal file
BIN
firmware/beta/pieeprom-2022-11-25.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2022-12-07.bin
Normal file
BIN
firmware/beta/pieeprom-2022-12-07.bin
Normal file
Binary file not shown.
BIN
firmware/beta/pieeprom-2023-01-04.bin
Normal file
BIN
firmware/beta/pieeprom-2023-01-04.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
firmware/beta/vl805-000138c0.bin
Normal file
BIN
firmware/beta/vl805-000138c0.bin
Normal file
Binary file not shown.
BIN
firmware/critical/pieeprom-2022-11-25.bin
Normal file
BIN
firmware/critical/pieeprom-2022-11-25.bin
Normal file
Binary file not shown.
BIN
firmware/critical/pieeprom-2022-12-07.bin
Normal file
BIN
firmware/critical/pieeprom-2022-12-07.bin
Normal file
Binary file not shown.
BIN
firmware/critical/pieeprom-2023-01-11.bin
Normal file
BIN
firmware/critical/pieeprom-2023-01-11.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
firmware/critical/vl805-000138c0.bin
Normal file
BIN
firmware/critical/vl805-000138c0.bin
Normal file
Binary file not shown.
@@ -1,5 +1,99 @@
|
||||
# Raspberry Pi4 bootloader EEPROM release notes
|
||||
|
||||
## 2023-01-18 - Promote previous STABLE release to DEFAULT
|
||||
Interesting changes since the last default release
|
||||
* Update VL805 to 138C0 - fix for handling of split transactions
|
||||
https://github.com/raspberrypi/linux/pull/5262
|
||||
* Fix HID error handling with network install
|
||||
https://github.com/raspberrypi/rpi-eeprom/issues/458
|
||||
|
||||
## 2023-01-12 - Promote previous BETA release to STABLE
|
||||
* Sign the 2023-01-04 release with the secure-boot ROM key and release
|
||||
as pieeprom-2023-01-11.bin
|
||||
|
||||
## 2023-01-04 - VL805 firmware update - BETA
|
||||
* Update VL805 to 138C0 - fix for handling of split transactions
|
||||
https://github.com/raspberrypi/linux/pull/5262
|
||||
* Fix HID error handling with network install
|
||||
https://github.com/raspberrypi/rpi-eeprom/issues/458
|
||||
|
||||
## 2022-12-07 - Fix SD voltage reset on Pi4 R1.1 (DEFAULT/STABLE/BETA).
|
||||
* Fix issue where SD voltage was not reset by power cycling PMIC on reboot.
|
||||
See https://github.com/raspberrypi/firmware/issues/1763
|
||||
|
||||
## 2022-12-01 - Promote pieeprom-2022-11-25 to the DEFAULT release.
|
||||
Interesting changes since the last default release
|
||||
* [tryboot] conditional statement + tryboot_a_b mode
|
||||
* Support custom OTP mac addresses
|
||||
* Increase TFTP_MAX_BLOCK_SIZE
|
||||
* Stop NVMe cleanly
|
||||
* Fixes for NETCONSOLE parsing and initialisation.
|
||||
* Long filename support for start_file / fixup_file.
|
||||
* Secure boot and display debug info on the diagnostis screen.
|
||||
|
||||
## 2022-11-25 - Fix unconfigured netconsole messages - BETA + STABLE
|
||||
* Fix unconfigured netconsole messages https://github.com/raspberrypi/rpi-eeprom/issues/452
|
||||
* Add display state to HDMI diagnostics screen
|
||||
|
||||
## 2022-11-04 - Fix secure boot issue - BETA + STABLE
|
||||
* Fix an OOM issue that was causing secure boot to fail (but not from RPIBOOT)
|
||||
|
||||
## 2022-11-02 - Add option to use Customer OTP for MAC address - BETA
|
||||
* Add a new EEPROM property that allows the Ethernet MAC address
|
||||
programmed during manufacture to be overridden a value in the
|
||||
Customer OTP register.
|
||||
|
||||
MAC_ADDRESS_OTP=A,B
|
||||
where A and B are the customer row numbers (0..7)
|
||||
|
||||
## 2022-10-20 - Promote pieeprom-2022-10-18 BETA release to stable
|
||||
|
||||
## 2022-10-18 - Tryboot enhancements for A/B partition booting - BETA
|
||||
* Add support for a [tryboot] conditional statement in config files.
|
||||
* Load config.txt instead of tryboot.txt if tryboot_a_b=1 in autoboot.txt
|
||||
* Fix failover to partition 1 if the `boot_partition` points to non-bootable partition.
|
||||
* Enable `autoboot.txt` in secure-boot mode.
|
||||
|
||||
## 2022-10-12 - Fix USB boot regression - BETA
|
||||
* Reduce size of USB transfer
|
||||
|
||||
## 2022-10-06 - Fix issue with screen display - BETA
|
||||
* Fix issue with the bootloader display not being cleared properly
|
||||
|
||||
## 2022-10-03 - Add pieeprom-2022-10-03.bin - BETA
|
||||
* Increase the size of USB in-transfers
|
||||
* Increase TFTP_MAX_BLOCKSIZE to 1468
|
||||
* stop NVMe cleanly
|
||||
|
||||
## 2022-09-02 - Add pieeprom-2022-09-02 - BETA + STABLE
|
||||
* Parse target MAC address in NETCONSOLE property https://github.com/raspberrypi/rpi-eeprom/issues/440
|
||||
|
||||
## 2022-08-02 - Add pieeprom-2022-08-02 - BETA + STABLE
|
||||
* Display the secure-boot configuration on the diagnostics screen
|
||||
if secure-boot is enabled.
|
||||
See https://www.raspberrypi.com/documentation/computers/configuration.html#bcm2711-bootloader-properties-chosenbootloader
|
||||
* Toggle SD power at boot to reset card-state after ROM SD probe.
|
||||
|
||||
## 2022-07-26 - Add pieeprom-2022-07-26 - BETA + STABLE
|
||||
* Fix FAT issue https://github.com/raspberrypi/rpi-eeprom/issues/438
|
||||
|
||||
## 2022-07-22 - Add pieeprom-2022-07-22 - BETA + STABLE
|
||||
* NVMe fix large file reads - see https://github.com/raspberrypi/firmware/issues/1731
|
||||
The firmware fix is also relevant for the bootloader when loading
|
||||
large boot.img files.
|
||||
|
||||
## 2022-07-19 - Add pieeprom-2022-07-19 - STABLE
|
||||
* Enable secure-boot on the 2022-07-14 beta release and promote to stable.
|
||||
|
||||
## 2022-07-14 - Add pieeprom-2022-07-14 - BETA
|
||||
* Enable long-filenames & sub-directories for start_file & fixup_file.
|
||||
Use Unix path separators with a maximum path of 255 characters.
|
||||
Relative paths (. or ..) are not supported.
|
||||
|
||||
## 2022-05-20 - Add pieeprom-2022-05-20 - BETA
|
||||
* Reduce boot-time when network install is disabled NET_INSTALL_ENABLED=0.
|
||||
* Switch to the newer SDIO HC and increase SPI clock speed.
|
||||
|
||||
## 2022-04-27 - Promote pieeprom-2022-04-26 to the DEFAULT release
|
||||
* Enable Network Install in the default bootloader release.
|
||||
* This release is signed with the secure-boot key and supports
|
||||
|
||||
BIN
firmware/stable/pieeprom-2022-07-19.bin
Normal file
BIN
firmware/stable/pieeprom-2022-07-19.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2022-07-22.bin
Normal file
BIN
firmware/stable/pieeprom-2022-07-22.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2022-07-26.bin
Normal file
BIN
firmware/stable/pieeprom-2022-07-26.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2022-08-02.bin
Normal file
BIN
firmware/stable/pieeprom-2022-08-02.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2022-09-02.bin
Normal file
BIN
firmware/stable/pieeprom-2022-09-02.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2022-10-18.bin
Normal file
BIN
firmware/stable/pieeprom-2022-10-18.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2022-11-04.bin
Normal file
BIN
firmware/stable/pieeprom-2022-11-04.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2022-11-25.bin
Normal file
BIN
firmware/stable/pieeprom-2022-11-25.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2022-12-07.bin
Normal file
BIN
firmware/stable/pieeprom-2022-12-07.bin
Normal file
Binary file not shown.
BIN
firmware/stable/pieeprom-2023-01-11.bin
Normal file
BIN
firmware/stable/pieeprom-2023-01-11.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
firmware/stable/vl805-000138c0.bin
Normal file
BIN
firmware/stable/vl805-000138c0.bin
Normal file
Binary file not shown.
@@ -4,4 +4,4 @@ set -e
|
||||
|
||||
script_dir=$(cd "$(dirname "$0")" && pwd)
|
||||
|
||||
${script_dir}/make-release critical 2022-01-25 000138a1 "${script_dir}" release rpi-boot-eeprom-recovery
|
||||
${script_dir}/make-release critical 2023-01-11 000138c0 "${script_dir}" release rpi-boot-eeprom-recovery
|
||||
|
||||
@@ -47,7 +47,10 @@ EOF
|
||||
mount "${LOOP}" fs
|
||||
cp -v files/* fs
|
||||
sync
|
||||
sleep 5
|
||||
umount fs
|
||||
# Delay before calling kpartx otherwise it's sometimes possible to get orphaned loopback devices
|
||||
sleep 5
|
||||
kpartx -dv temp.img
|
||||
)
|
||||
mkdir -p images
|
||||
@@ -60,3 +63,4 @@ EOF
|
||||
rm "images/${img}"
|
||||
chown "${SUDO_UID}:${SUDO_GID}" "images/${src}"
|
||||
done
|
||||
echo "Wrote images for rpi-imager to $(pwd)/images/${src}"
|
||||
|
||||
@@ -6,7 +6,7 @@ bootloader is automatically updated after an APT update via the [rpi-eeprom-upda
|
||||
Release notes are available [here](https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/release-notes.md).
|
||||
|
||||
## Default release
|
||||
The default production EEPROM image release is [2020-09-03](https://github.com/raspberrypi/rpi-eeprom/releases/tag/v2020.09.03-138a1) and can be installed via the [Raspberry Pi Imager](https://www.raspberrypi.org/downloads/).
|
||||
The default production EEPROM image release is [2022-11-25](https://github.com/raspberrypi/rpi-eeprom/releases/tag/v2022.11.25-138a1) and can be installed via the [Raspberry Pi Imager](https://www.raspberrypi.com/software/).
|
||||
|
||||
## USB MSD boot
|
||||
Please see the [USB mass storage boot](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#usb-mass-storage-boot) guide.
|
||||
|
||||
@@ -16,9 +16,6 @@ import time
|
||||
|
||||
IMAGE_SIZE = 512 * 1024
|
||||
|
||||
# Larger files won't with with "vcgencmd bootloader_config"
|
||||
MAX_FILE_SIZE = 2024
|
||||
ALIGN_SIZE = 4096
|
||||
BOOTCONF_TXT = 'bootconf.txt'
|
||||
BOOTCONF_SIG = 'bootconf.sig'
|
||||
PUBKEY_BIN = 'pubkey.bin'
|
||||
@@ -39,6 +36,11 @@ FILE_HDR_LEN = 20
|
||||
FILENAME_LEN = 12
|
||||
TEMP_DIR = None
|
||||
|
||||
# Modifiable files are stored in a single 4K erasable sector.
|
||||
# The max content 4076 bytes because of the file header.
|
||||
ERASE_ALIGN_SIZE = 4096
|
||||
MAX_FILE_SIZE = ERASE_ALIGN_SIZE - FILE_HDR_LEN
|
||||
|
||||
DEBUG = False
|
||||
def debug(s):
|
||||
if DEBUG:
|
||||
@@ -221,7 +223,7 @@ class ImageSection:
|
||||
self.offset = offset
|
||||
self.length = length
|
||||
self.filename = filename
|
||||
debug("ImageSection %x %x %x %s" % (magic, offset, length, filename))
|
||||
debug("ImageSection %x offset %d length %d %s" % (magic, offset, length, filename))
|
||||
|
||||
class BootloaderImage(object):
|
||||
def __init__(self, filename, output=None):
|
||||
@@ -250,7 +252,6 @@ class BootloaderImage(object):
|
||||
"""
|
||||
offset = 0
|
||||
magic = 0
|
||||
found = False
|
||||
while offset < IMAGE_SIZE:
|
||||
magic, length = struct.unpack_from('>LL', self._bytes, offset)
|
||||
if magic == 0x0 or magic == 0xffffffff:
|
||||
@@ -262,6 +263,7 @@ class BootloaderImage(object):
|
||||
if magic == FILE_MAGIC: # Found a file
|
||||
# Discard trailing null characters used to pad filename
|
||||
filename = self._bytes[offset + 8: offset + FILE_HDR_LEN].decode('utf-8').replace('\0', '')
|
||||
debug("section at %d length %d magic %08x %s" % (offset, length, magic, filename))
|
||||
self._sections.append(ImageSection(magic, offset, length, filename))
|
||||
|
||||
offset += 8 + length # length + type
|
||||
@@ -272,26 +274,46 @@ class BootloaderImage(object):
|
||||
Returns the offset, length and whether this is the last section in the
|
||||
EEPROM for a modifiable file within the image.
|
||||
"""
|
||||
ret = (-1, -1, False)
|
||||
offset = -1
|
||||
length = -1
|
||||
is_last = False
|
||||
|
||||
next_offset = IMAGE_SIZE - ERASE_ALIGN_SIZE # Don't create padding inside the bootloader scratch page
|
||||
for i in range(0, len(self._sections)):
|
||||
s = self._sections[i]
|
||||
if s.magic == FILE_MAGIC and s.filename == filename:
|
||||
is_last = (i == len(self._sections) - 1)
|
||||
ret = (s.offset, s.length, is_last)
|
||||
offset = s.offset
|
||||
length = s.length
|
||||
break
|
||||
debug('%s offset %d length %d last %s' % (filename, ret[0], ret[1], ret[2]))
|
||||
|
||||
# Find the start of the next non padding section
|
||||
i += 1
|
||||
while i < len(self._sections):
|
||||
if self._sections[i].magic == PAD_MAGIC:
|
||||
i += 1
|
||||
else:
|
||||
next_offset = self._sections[i].offset
|
||||
break
|
||||
ret = (offset, length, is_last, next_offset)
|
||||
debug('%s offset %d length %d is-last %d next %d' % (filename, ret[0], ret[1], ret[2], ret[3]))
|
||||
return ret
|
||||
|
||||
def update(self, src_bytes, dst_filename):
|
||||
"""
|
||||
Replaces a modifiable file with specified byte array.
|
||||
"""
|
||||
hdr_offset, length, is_last = self.find_file(dst_filename)
|
||||
hdr_offset, length, is_last, next_offset = self.find_file(dst_filename)
|
||||
update_len = len(src_bytes) + FILE_HDR_LEN
|
||||
|
||||
if hdr_offset + update_len > IMAGE_SIZE - ERASE_ALIGN_SIZE:
|
||||
raise Exception('No space available - image past EOF.')
|
||||
|
||||
if hdr_offset < 0:
|
||||
raise Exception('Update target %s not found' % dst_filename)
|
||||
|
||||
if hdr_offset + len(src_bytes) + FILE_HDR_LEN > IMAGE_SIZE:
|
||||
raise Exception('EEPROM image size exceeded')
|
||||
if hdr_offset + update_len > next_offset:
|
||||
raise Exception('Update %d bytes is larger than section size %d' % (update_len, next_offset - hdr_offset))
|
||||
|
||||
new_len = len(src_bytes) + FILENAME_LEN + 4
|
||||
struct.pack_into('>L', self._bytes, hdr_offset + 4, new_len)
|
||||
@@ -312,7 +334,7 @@ class BootloaderImage(object):
|
||||
# by convention bootconf.txt is the last section and there's no need to
|
||||
# pad to the end of the sector. This also ensures that the loopback
|
||||
# config read/write tests produce identical binaries.
|
||||
pad_bytes = ALIGN_SIZE - (pad_start % ALIGN_SIZE)
|
||||
pad_bytes = next_offset - pad_start
|
||||
if pad_bytes > 8 and not is_last:
|
||||
pad_bytes -= 8
|
||||
struct.pack_into('>i', self._bytes, pad_start, PAD_MAGIC)
|
||||
@@ -358,10 +380,17 @@ class BootloaderImage(object):
|
||||
sys.stdout.write(self._bytes)
|
||||
|
||||
def get_file(self, filename):
|
||||
hdr_offset, length, is_last = self.find_file(filename)
|
||||
hdr_offset, length, is_last, next_offset = self.find_file(filename)
|
||||
offset = hdr_offset + 4 + FILE_HDR_LEN
|
||||
config_bytes = self._bytes[offset:offset+length-FILENAME_LEN-4]
|
||||
return config_bytes
|
||||
file_bytes = self._bytes[offset:offset+length-FILENAME_LEN-4]
|
||||
return file_bytes
|
||||
|
||||
def extract_files(self):
|
||||
for i in range(0, len(self._sections)):
|
||||
s = self._sections[i]
|
||||
if s.magic == FILE_MAGIC:
|
||||
file_bytes = self.get_file(s.filename)
|
||||
open(s.filename, 'wb').write(file_bytes)
|
||||
|
||||
def read(self):
|
||||
config_bytes = self.get_file('bootconf.txt')
|
||||
@@ -457,6 +486,7 @@ See 'rpi-eeprom-update -h' for more information about the available EEPROM image
|
||||
parser.add_argument('-o', '--out', help='Name of output file', required=False)
|
||||
parser.add_argument('-d', '--digest', help='Signed boot only. The name of the .sig file generated by rpi-eeprom-dgst for config.txt ', required=False)
|
||||
parser.add_argument('-p', '--pubkey', help='Signed boot only. The name of the RSA public key file to store in the EEPROM', required=False)
|
||||
parser.add_argument('-x', '--extract', action='store_true', default=False, help='Extract the modifiable files (boot.conf, pubkey, signature)', required=False)
|
||||
parser.add_argument('eeprom', nargs='?', help='Name of EEPROM file to use as input')
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -468,6 +498,9 @@ See 'rpi-eeprom-update -h' for more information about the available EEPROM image
|
||||
|
||||
if args.edit:
|
||||
edit_config(args.eeprom)
|
||||
elif args.eeprom is not None and args.extract:
|
||||
image = BootloaderImage(args.eeprom, args.out)
|
||||
image.extract_files()
|
||||
elif args.apply is not None:
|
||||
if not os.path.exists(args.apply):
|
||||
exit_error("config file '%s' not found" % args.apply)
|
||||
|
||||
@@ -16,7 +16,7 @@ die() {
|
||||
|
||||
TMP_DIR=""
|
||||
cleanup() {
|
||||
if [ -f "${TMP_DIR}" ]; then
|
||||
if [ -d "${TMP_DIR}" ]; then
|
||||
rm -rf "${TMP_DIR}"
|
||||
fi
|
||||
}
|
||||
@@ -26,15 +26,15 @@ checkDependencies() {
|
||||
die "sha256sum not found. Try installing the coreutilities package."
|
||||
fi
|
||||
|
||||
if [ -n "${KEY}" ]; then
|
||||
if ! command -v ${OPENSSL} > /dev/null; then
|
||||
die "${OPENSSL} not found. Try installing the openssl package."
|
||||
fi
|
||||
if [ -n "${KEY}" ] || [ "${VERIFY}" = 1 ]; then
|
||||
if ! command -v openssl > /dev/null; then
|
||||
die "openssl not found. Try installing the openssl package."
|
||||
fi
|
||||
|
||||
if ! command -v xxd > /dev/null; then
|
||||
die "xxd not found. Try installing the xxd package."
|
||||
fi
|
||||
fi
|
||||
if ! command -v xxd > /dev/null; then
|
||||
die "xxd not found. Try installing the xxd package."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
usage() {
|
||||
@@ -59,18 +59,49 @@ The bootloader only verifies RSA signatures in signed boot mode
|
||||
Examples:
|
||||
|
||||
# Generate RSA signature for the EEPROM config file.
|
||||
rpi-eeprom-digest -k key.pem -i bootconf.txt -o bootconf.sig
|
||||
rpi-eeprom-digest -k private.pem -i bootconf.txt -o bootconf.sig
|
||||
|
||||
# Generate the normal sha256 hash to guard against file-system corruption
|
||||
rpi-eeprom-digest -i pieeprom.bin -o pieeprom.sig
|
||||
rpi-eeprom-digest -i vl805.bin -o vl805.sig
|
||||
|
||||
# To verify the signature of an existing .sig file using the public key.
|
||||
# N.B The key file must be the PUBLIC key in PEM format.
|
||||
rpi-eeprom-digest -k public.pem -i pieeprom.bin -v pieeprom.sig
|
||||
|
||||
EOF
|
||||
exit 0
|
||||
}
|
||||
|
||||
writeSig() {
|
||||
TMP_DIR=$(mktemp -d)
|
||||
SIG_TMP="${TMP_DIR}/tmp.sig"
|
||||
sha256sum "${IMAGE}" | awk '{print $1}' > "${OUTPUT}"
|
||||
|
||||
# Include the update-timestamp
|
||||
echo "ts: $(date -u +%s)" >> "${OUTPUT}"
|
||||
|
||||
if [ -n "${KEY}" ]; then
|
||||
[ -f "${KEY}" ] || die "RSA private \"${KEY}\" not found"
|
||||
"${OPENSSL}" dgst -sign "${KEY}" -keyform PEM -sha256 -out "${SIG_TMP}" "${IMAGE}"
|
||||
echo "rsa2048: $(xxd -c 4096 -p < "${SIG_TMP}")" >> "${OUTPUT}"
|
||||
fi
|
||||
}
|
||||
|
||||
verifySig() {
|
||||
TMP_DIR=$(mktemp -d)
|
||||
sig_file="${1}"
|
||||
[ -f "${sig_file}" ] || die "Signature file ${sig_file} not found"
|
||||
sig_hex="$(grep rsa2048 "${sig_file}" | cut -f 2 -d ' ')"
|
||||
[ -n "${sig_hex}" ] || die "No RSA signature in ${sig_file}"
|
||||
|
||||
echo ${sig_hex} | xxd -c 4096 -p -r > "${TMP_DIR}/sig.bin"
|
||||
"${OPENSSL}" dgst -verify "${KEY}" -signature "${TMP_DIR}/sig.bin" "${IMAGE}" || die "${IMAGE} not verified"
|
||||
}
|
||||
|
||||
OUTPUT=""
|
||||
while getopts i:k:ho: option; do
|
||||
VERIFY=0
|
||||
while getopts i:k:ho:v: option; do
|
||||
case "${option}" in
|
||||
i) IMAGE="${OPTARG}"
|
||||
;;
|
||||
@@ -78,6 +109,9 @@ while getopts i:k:ho: option; do
|
||||
;;
|
||||
o) OUTPUT="${OPTARG}"
|
||||
;;
|
||||
v) SIGNATURE="${OPTARG}"
|
||||
VERIFY=1
|
||||
;;
|
||||
h) usage
|
||||
;;
|
||||
*) echo "Unknown argument \"${option}\""
|
||||
@@ -86,25 +120,15 @@ while getopts i:k:ho: option; do
|
||||
esac
|
||||
done
|
||||
|
||||
[ -n "${IMAGE}" ] || usage
|
||||
[ -n "${OUTPUT}" ] || usage
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
checkDependencies
|
||||
|
||||
[ -n "${IMAGE}" ] || usage
|
||||
[ -f "${IMAGE}" ] || die "Source image \"${IMAGE}\" not found"
|
||||
|
||||
TMP_DIR=$(mktemp -d)
|
||||
SIG_TMP="${TMP_DIR}/tmp.sig"
|
||||
sha256sum "${IMAGE}" | awk '{print $1}' > "${OUTPUT}"
|
||||
|
||||
# Include the update-timestamp
|
||||
echo "ts: $(date -u +%s)" >> "${OUTPUT}"
|
||||
|
||||
if [ -n "${KEY}" ]; then
|
||||
[ -f "${KEY}" ] || die "RSA private \"${KEY}\" not found"
|
||||
|
||||
"${OPENSSL}" dgst -sign "${KEY}" -keyform PEM -sha256 -out "${SIG_TMP}" "${IMAGE}"
|
||||
echo "rsa2048: $(xxd -c 4096 -p < "${SIG_TMP}")" >> "${OUTPUT}"
|
||||
if [ "${VERIFY}" = 1 ]; then
|
||||
verifySig "${SIGNATURE}"
|
||||
else
|
||||
[ -n "${OUTPUT}" ] || usage
|
||||
writeSig
|
||||
fi
|
||||
|
||||
|
||||
@@ -33,6 +33,17 @@ BOOTFS=${BOOTFS:-/boot}
|
||||
CM4_ENABLE_RPI_EEPROM_UPDATE=${CM4_ENABLE_RPI_EEPROM_UPDATE:-0}
|
||||
RPI_EEPROM_UPDATE_CONFIG_TOOL="${RPI_EEPROM_UPDATE_CONFIG_TOOL:-raspi-config}"
|
||||
|
||||
# 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 or config.txt.
|
||||
RPI_EEPROM_SELF_UPDATE="${RPI_EEPROM_SELF_UPDATE:-0}"
|
||||
RPI_EEPROM_SELF_UPDATE_MIN_VER=1650968668
|
||||
|
||||
# Automatic, critical updates are not applied unless the current bootloader version
|
||||
# is older than pieeprom-2020-09-03
|
||||
BOOTLOADER_AUTO_UPDATE_MIN_VERSION="${BOOTLOADER_AUTO_UPDATE_MIN_VERSION:-1599135103}"
|
||||
@@ -115,7 +126,7 @@ getBootloaderConfig() {
|
||||
|
||||
if [ -f "${blconfig_alias}" ]; then
|
||||
local blconfig_ofnode_path="/sys/firmware/devicetree/base"$(strings "${blconfig_alias}")""
|
||||
local blconfig_ofnode_link=$(find -L /sys/bus/nvmem -samefile "${blconfig_ofnode_path}" 2>/dev/null)
|
||||
local blconfig_ofnode_link=$(find -L /sys/bus/nvmem -maxdepth 3 -samefile "${blconfig_ofnode_path}" 2>/dev/null)
|
||||
|
||||
if [ -e "${blconfig_ofnode_link}" ]; then
|
||||
blconfig_nvmem_path=$(dirname "${blconfig_ofnode_link}")
|
||||
@@ -215,8 +226,28 @@ applyRecoveryUpdate()
|
||||
|| die "Failed to set permissions on eeprom update files"
|
||||
fi
|
||||
|
||||
cp -f "${RECOVERY_BIN}" "${BOOTFS}/recovery.bin" \
|
||||
|| die "Failed to copy ${RECOVERY_BIN} to ${BOOTFS}"
|
||||
if getBootloaderConfig | grep -q ENABLE_SELF_UPDATE=0; then
|
||||
# Self update has been disabled in the EEPROM config so recovery.bin
|
||||
# must be used to clear this.
|
||||
RPI_EEPROM_SELF_UPDATE=0
|
||||
fi
|
||||
|
||||
# Setting bootlaoder_update=0 was really intended for use with network-boot with shared
|
||||
# config.txt files. However, if it looks as though self-update has been disabled then
|
||||
# assume recovery.bin is required.
|
||||
config_txt="${BOOTFS}/config.txt"
|
||||
if [ -f "${config_txt}" ]; then
|
||||
if grep -q "bootloader_update=0" "${config_txt}"; then
|
||||
RPI_EEPROM_SELF_UPDATE=0
|
||||
fi
|
||||
fi
|
||||
|
||||
[ "${BOOTLOADER_CURRENT_VERSION}" -ge "${RPI_EEPROM_SELF_UPDATE_MIN_VER}" ] || RPI_EEPROM_SELF_UPDATE=0
|
||||
|
||||
if [ "${RPI_EEPROM_SELF_UPDATE}" != "1" ]; then
|
||||
echo "Using recovery.bin for EEPROM update"
|
||||
cp -f "${RECOVERY_BIN}" "${BOOTFS}/recovery.bin" || die "Failed to copy ${RECOVERY_BIN} to ${BOOTFS}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "EEPROM updates pending. Please reboot to apply the update."
|
||||
@@ -308,7 +339,10 @@ checkDependencies() {
|
||||
|
||||
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. Run with -h for more information."
|
||||
echo "rpi-eeprom-update is not enabled by default on CM4."
|
||||
echo "The recommended method for flashing the EEPROM is rpiboot."
|
||||
echo "See: https://github.com/raspberrypi/usbboot/blob/master/Readme.md"
|
||||
echo "Run with -h for more information."
|
||||
exit ${EXIT_SUCCESS}
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
[none]
|
||||
userdata0=0x12345789
|
||||
userdata1=0x12345789
|
||||
userdata2=0x12345789
|
||||
userdata3=0x12345789
|
||||
userdata4=0x12345789
|
||||
userdata5=0x12345789
|
||||
userdata6=0x12345789
|
||||
userdata7=0x12345789
|
||||
userdata8=0x12345789
|
||||
userdata9=0x12345789
|
||||
usercert=ZZZZZZZZZZZZlhEAAAADAQABAAABAQDg2l41l7troIKOA0hk3p9y4KuITWBL/aaTMORoqmXfyqEONNULSMElaLWch/b8ScHmcS+kxkS5DtLmKFo1JI14IaQNL5fr4C6Dp23CyMGIgjp3ZFg9tXs/qWpw36Ge0MCxjabbFeKVcMXD10voMT0AHfJtQb2YfOl37ffzC4bR3phUnp0Ceqpl0Loe6hxUP/r4Jen1OKskdfjsldfjalAjn9ASdkjnkjbaAKjnLKJbaKJHDRDkllDAlciaIKSPX2b0uk2MJRJhfarMHDnmxZtEzqMgwLdLol9XVjiSu/7EUzR9Qtvs8xhf6XuUJPRD6OtJCb49L+bb/pXAej/GOk0f
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
@@ -1,28 +0,0 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
[none]
|
||||
userdata0=0x12345789
|
||||
userdata1=0x12345789
|
||||
userdata2=0x12345789
|
||||
userdata3=0x12345789
|
||||
userdata4=0x12345789
|
||||
userdata5=0x12345789
|
||||
userdata6=0x12345789
|
||||
userdata7=0x12345789
|
||||
userdata8=0x12345789
|
||||
userdata9=0x12345789
|
||||
usercert=ZZZZZZZZZZZZlhEAAAADAQABAAABAQDg2l41l7troIKOA0hk3p9y4KuITWBL/aaTMORoqmXfyqEONNULSMElaLWch/b8ScHmcS+kxkS5DtLmKFo1JI14IaQNL5fr4C6Dp23CyMGIgjp3ZFg9tXs/qWpw36Ge0MCxjabbFeKVcMXD10voMT0AHfJtQb2YfOl37ffzC4bR3phUnp0Ceqpl0Loe6hxUP/r4Jen1OKskdfjsldfjalAjn9ASdkjnkjbaAKjnLKJbaKJHDRDkllDAlciaIKSPX2b0uk2MJRJhfarMHDnmxZtEzqMgwLdLol9XVjiSu/7EUzR9Qtvs8xhf6XuUJPRD6OtJCb49L+bb/pXAej/GOk0f
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# ++++++++++++++++++++++++++++++++++++++++++++++++!
|
||||
46
test/bootconf-4076.txt
Normal file
46
test/bootconf-4076.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
[none]
|
||||
userdata0=0x12345789
|
||||
userdata1=0x12345789
|
||||
userdata2=0x12345789
|
||||
userdata3=0x12345789
|
||||
userdata4=0x12345789
|
||||
userdata5=0x12345789
|
||||
userdata6=0x12345789
|
||||
userdata7=0x12345789
|
||||
userdata8=0x12345789
|
||||
userdata9=0x12345789
|
||||
usercert=ZZZZZZZZZZZZlhEAAAADAQABAAABAQDg2l41l7troIKOA0hk3p9y4KuITWBL/aaTMORoqmXfyqEONNULSMElaLWch/b8ScHmcS+kxkS5DtLmKFo1JI14IaQNL5fr4C6Dp23CyMGIgjp3ZFg9tXs/qWpw36Ge0MCxjabbFeKVcMXD10voMT0AHfJtQb2YfOl37ffzC4bR3phUnp0Ceqpl0Loe6hxUP/r4Jen1OKskdfjsldfjalAjn9ASdkjnkjbaAKjnLKJbaKJHDRDkllDAlciaIKSPX2b0uk2MJRJhfarMHDnmxZtEzqMgwLdLol9XVjiSu/7EUzR9Qtvs8xhf6XuUJPRD6OtJCb49L+bb/pXAej/GOk0f
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
46
test/bootconf-4077.txt
Normal file
46
test/bootconf-4077.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
[none]
|
||||
userdata0=0x12345789
|
||||
userdata1=0x12345789
|
||||
userdata2=0x12345789
|
||||
userdata3=0x12345789
|
||||
userdata4=0x12345789
|
||||
userdata5=0x12345789
|
||||
userdata6=0x12345789
|
||||
userdata7=0x12345789
|
||||
userdata8=0x12345789
|
||||
userdata9=0x12345789
|
||||
usercert=ZZZZZZZZZZZZlhEAAAADAQABAAABAQDg2l41l7troIKOA0hk3p9y4KuITWBL/aaTMORoqmXfyqEONNULSMElaLWch/b8ScHmcS+kxkS5DtLmKFo1JI14IaQNL5fr4C6Dp23CyMGIgjp3ZFg9tXs/qWpw36Ge0MCxjabbFeKVcMXD10voMT0AHfJtQb2YfOl37ffzC4bR3phUnp0Ceqpl0Loe6hxUP/r4Jen1OKskdfjsldfjalAjn9ASdkjnkjbaAKjnLKJbaKJHDRDkllDAlciaIKSPX2b0uk2MJRJhfarMHDnmxZtEzqMgwLdLol9XVjiSu/7EUzR9Qtvs8xhf6XuUJPRD6OtJCb49L+bb/pXAej/GOk0f
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
|
||||
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
5
test/configs/bootconf-2021-03-04.txt
Normal file
5
test/configs/bootconf-2021-03-04.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-03-17.txt
Normal file
5
test/configs/bootconf-2021-03-17.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-05-19.txt
Normal file
5
test/configs/bootconf-2021-05-19.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-06-11.txt
Normal file
5
test/configs/bootconf-2021-06-11.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-06-17.txt
Normal file
5
test/configs/bootconf-2021-06-17.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-06-25.txt
Normal file
5
test/configs/bootconf-2021-06-25.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-07-06.txt
Normal file
5
test/configs/bootconf-2021-07-06.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-09-23.txt
Normal file
5
test/configs/bootconf-2021-09-23.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-09-27.txt
Normal file
5
test/configs/bootconf-2021-09-27.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-10-04.txt
Normal file
5
test/configs/bootconf-2021-10-04.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-10-05.txt
Normal file
5
test/configs/bootconf-2021-10-05.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-10-27.txt
Normal file
5
test/configs/bootconf-2021-10-27.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-11-22.txt
Normal file
5
test/configs/bootconf-2021-11-22.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2021-12-02.txt
Normal file
5
test/configs/bootconf-2021-12-02.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-01-20.txt
Normal file
5
test/configs/bootconf-2022-01-20.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-01-25.txt
Normal file
5
test/configs/bootconf-2022-01-25.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-02-04.txt
Normal file
5
test/configs/bootconf-2022-02-04.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-02-16.txt
Normal file
5
test/configs/bootconf-2022-02-16.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-02-28.txt
Normal file
5
test/configs/bootconf-2022-02-28.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-03-10.txt
Normal file
5
test/configs/bootconf-2022-03-10.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-04-14.txt
Normal file
5
test/configs/bootconf-2022-04-14.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-04-26.txt
Normal file
5
test/configs/bootconf-2022-04-26.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-05-20.txt
Normal file
5
test/configs/bootconf-2022-05-20.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-07-14.txt
Normal file
5
test/configs/bootconf-2022-07-14.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-07-19.txt
Normal file
5
test/configs/bootconf-2022-07-19.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-07-22.txt
Normal file
5
test/configs/bootconf-2022-07-22.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-07-26.txt
Normal file
5
test/configs/bootconf-2022-07-26.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-08-02.txt
Normal file
5
test/configs/bootconf-2022-08-02.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-09-02.txt
Normal file
5
test/configs/bootconf-2022-09-02.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-10-03.txt
Normal file
5
test/configs/bootconf-2022-10-03.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-10-06.txt
Normal file
5
test/configs/bootconf-2022-10-06.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-10-12.txt
Normal file
5
test/configs/bootconf-2022-10-12.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-10-18.txt
Normal file
5
test/configs/bootconf-2022-10-18.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-11-02.txt
Normal file
5
test/configs/bootconf-2022-11-02.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
5
test/configs/bootconf-2022-11-04.txt
Normal file
5
test/configs/bootconf-2022-11-04.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
[all]
|
||||
BOOT_UART=0
|
||||
WAKE_ON_GPIO=1
|
||||
POWER_OFF_ON_HALT=0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user