Skip to content

Commit d584a84

Browse files
committed
pieeprom-2025-05-08: 2712: Implement TCP window for net boot (latest)
* arm_loader: Correct some mailbox response lengths The GET_GENCMD_RESULT mailbox handler was setting the wrong response length, and GET_FIRMWARE_COMMIT_HASH and GET_FIRMWARE_VARIANT were not setting any length. See: raspberrypi/firmware#1968 * Signed boot and HTTP boot mode HTTP boot mode is supposed to be disabled if signed boot is enabled and a host is not specified. The code is checking the http_secure flag to enforce this. But this is valid now we support custom CA certs. Only disable HTTP mode if we're using the default HOST. * Implement TCP window for net boot The minimal IP stack used for https booting lacks the ability to cache packets received out of order, which can lead to severe slowdown when it happens. The problem seems to affect some ISPs more than others. The receive window implemented here copes with packet losses of 10%. * netboot: Correct the TCP MSS * rp1_net: Overwrite the length field Although concise, ORing in the packet length runs the risk of leaving some unwanted bits set. Ensure the length field is cleared before ORing in the required value. * Correct msecs in debug timestamps The fractional part of timestamps in UART debug output was showing the 100ths and 1000ths of a second, rather than 10ths and 100ths, causing strange sequences that appear to jump backwards. * Implement GET_BOARD_MAC_ADDRESS on Pi5 The Pi 5 EEPROM implements a subset of the original mailbox properties. Add GET_BOARD_MAC_ADDRESS to the subset. See: #698 * Ensure the initramfs matches the kernel As far as is possible, both the kernel and initramfs are matched to the device. However, where multiple kernel variants can run on a device, the initramfs must be matched to the chosen kernel. Make that the sole rule for initramfs selection, rather than duplicating the device matching logic. See: raspberrypi/firmware#1965 * Enable logging messages from OS loader Pi 5 EEPROM builds were missing the output from the main OS loading function, including some important diagnostics. Enabling the logging output from this loader code results in some near-duplicates, but is more user friendly and is available via "sudo vclog -m".
1 parent 816bf7c commit d584a84

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed
2 MB
Binary file not shown.

firmware-2712/latest/recovery.bin

0 Bytes
Binary file not shown.

firmware-2712/release-notes.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,48 @@
11
# Raspberry Pi5 bootloader EEPROM release notes
22

3+
## 2025-05-08: Implement TCP window for net boot (latest)
4+
5+
* arm_loader: Correct some mailbox response lengths
6+
The GET_GENCMD_RESULT mailbox handler was setting the wrong response
7+
length, and GET_FIRMWARE_COMMIT_HASH and GET_FIRMWARE_VARIANT were not
8+
setting any length.
9+
See: https://github.com/raspberrypi/firmware/issues/1968
10+
* Signed boot and HTTP boot mode
11+
HTTP boot mode is supposed to be disabled if signed boot is enabled and
12+
a host is not specified. The code is checking the http_secure flag to
13+
enforce this. But this is valid now we support custom CA certs.
14+
Only disable HTTP mode if we're using the default HOST.
15+
* Implement TCP window for net boot
16+
The minimal IP stack used for https booting lacks the ability to cache
17+
packets received out of order, which can lead to severe slowdown when
18+
it happens. The problem seems to affect some ISPs more than others.
19+
The receive window implemented here copes with packet losses of 10%.
20+
* netboot: Correct the TCP MSS
21+
* rp1_net: Overwrite the length field
22+
Although concise, ORing in the packet length runs the risk of leaving
23+
some unwanted bits set. Ensure the length field is cleared before
24+
ORing in the required value.
25+
* Correct msecs in debug timestamps
26+
The fractional part of timestamps in UART debug output was showing the
27+
100ths and 1000ths of a second, rather than 10ths and 100ths, causing
28+
strange sequences that appear to jump backwards.
29+
* Implement GET_BOARD_MAC_ADDRESS on Pi5
30+
The Pi 5 EEPROM implements a subset of the original mailbox properties.
31+
Add GET_BOARD_MAC_ADDRESS to the subset.
32+
See: https://github.com/raspberrypi/rpi-eeprom/issues/698
33+
* Ensure the initramfs matches the kernel
34+
As far as is possible, both the kernel and initramfs are matched to the
35+
device. However, where multiple kernel variants can run on a device, the
36+
initramfs must be matched to the chosen kernel. Make that the sole rule
37+
for initramfs selection, rather than duplicating the device matching
38+
logic.
39+
See: https://github.com/raspberrypi/firmware/issues/1965
40+
* Enable logging messages from OS loader
41+
Pi 5 EEPROM builds were missing the output from the main OS loading
42+
function, including some important diagnostics. Enabling the logging
43+
output from this loader code results in some near-duplicates, but is
44+
more user friendly and is available via "sudo vclog -m".
45+
346
## 2025-04-07: arm_dt: Revert to using the max fan speed (latest)
447

548
* arm_dt: Revert to using the max fan speed

0 commit comments

Comments
 (0)