Compare commits

..

6 Commits

Author SHA1 Message Date
Phil Elwell
07fe5c48b7 bug_report template: Be more precise about the UART pins 2024-12-10 14:34:38 +00:00
Tim Gover
585ec185f2 rpi-eeprom-config: Increase default timeouts
Increase the delays to compensate for an (unlikely) retry loop
if flashrom reports an error.
2024-12-09 19:12:00 +00:00
Tim Gover
af0426b473 rpi-eeprom-update: Add retries and verification to flashrom stage
Retry flashrom updates on failure and explicitly verify the images.
So far, there haven't been any reports of flashrom failures but
retrying is the best course of action in case this failure ever
occurs.
2024-12-09 19:12:00 +00:00
Tim Gover
fe7bfc7201 pieeprom-2024-12-07: 2711: 2712: Enable NUMA by default (latest)
* Enable banklow (and so NUMA) by default
  banklow=1 (2712) and banklow=3 (2711) give the best performance.
* enable_uart=1 now enables a Linix UART console on the 40-pin header
  unless a cable is detected on the dedicated boot-uart.
* Recreate internal bl31 stub from clean git tree to fix dirty commit
  message.
2024-12-07 18:14:54 +00:00
Tim Gover
9621ef6a92 pieeprom-2024-11-27: 2712: rp1fw: Add FIFO_STATE & DRAIN_TX, fix CAN_ADD_PROGRAM (latest)
* rp1fw: Add FIFO_STATE & DRAIN_TX, fix CAN_ADD_PROGRAM
  RP1 firmware eb39cfd516f8c90628aa9d91f52370aade5d0a55 adds
  methods to drain the TX FIFO and retrieve the state of both FIFOs. It
  also fixes the CAN_ADD_PROGRAM implementation, which was fatally
  broken.
* network-install - Update the UI to display the board model / variant.
2024-11-27 17:30:53 +00:00
Tim Gover
4a7375bebe imager: Update 2712 imager release to 2024-11-12 2024-11-25 13:56:09 +00:00
12 changed files with 52 additions and 6 deletions

View File

@@ -80,7 +80,7 @@ body:
attributes:
label: Bootloader logs
description: |
If the problem can't be diagnosed from the bootloader HDMI diagnostics screen then we'll normally need to see more detailed logs to diagnose the problem. The bootloader and GPU firmware can be configured to enable log output to the UART pins `14` and `15` on the [40-pin GPIO header](https://www.raspberrypi.com/documentation/computers/os.html#gpio-and-the-40-pin-header)
If the problem can't be diagnosed from the bootloader HDMI diagnostics screen then we'll normally need to see more detailed logs to diagnose the problem. The bootloader and GPU firmware can be configured to enable log output to the UART (GPIOs `14` and `15`, pins `8` and `10` on the [40-pin GPIO header](https://www.raspberrypi.com/documentation/computers/os.html#gpio-and-the-40-pin-header, or on the Debug header on a Pi 5)
* To enable UART logging from the bootloader specify [BOOT_UART=1](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_UART) in the EEPROM config
* To enable UART logging from the `start.elf` GPU firmware stage add [uart_2ndstage=1](https://www.raspberrypi.com/documentation/computers/config_txt.html#uart_2ndstage) to `config.txt`.
* If you are familiar with using Wireshark then it's also possible to use [NETCONSOLE](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#NETCONSOLE) write logs to UDP packets.

Binary file not shown.

Binary file not shown.

View File

@@ -1,5 +1,10 @@
# Raspberry Pi4 bootloader EEPROM release notes
## 2024-12-07: Enable banklow (and so NUMA) by default (latest)
* Enable banklow (and so NUMA) by default
banklow=1 (2712) and banklow=3 (2711) give the best performance.
## 2024-10-21: Fix PCIe BAR issue for some switches (latest)
* Boot-menu improvements

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,5 +1,21 @@
# Raspberry Pi5 bootloader EEPROM release notes
## 2024-12-07: Enable banklow (and so NUMA) by default (latest)
* Enable banklow (and so NUMA) by default
banklow=1 (2712) and banklow=3 (2711) give the best performance.
* enable_uart=1 now enables a Linix UART console on the 40-pin header
unless a cable is detected on the dedicated boot-uart.
* Recreate internal bl31 stub from clean git tree to fix dirty commit message.
## 2024-11-27: rp1fw: Add FIFO_STATE & DRAIN_TX, fix CAN_ADD_PROGRAM (default)
* rp1fw: Add FIFO_STATE & DRAIN_TX, fix CAN_ADD_PROGRAM
RP1 firmware eb39cfd516f8c90628aa9d91f52370aade5d0a55 adds methods
to drain the TX FIFO and retrieve the state of both FIFOs. It also
fixes the CAN_ADD_PROGRAM implementation, which was fatally broken.
* network-install - Update the UI to display the board model / variant.
## 2024-11-12: Promote 2024-11-12 to default release (default)
* Promote 2024-11 to the default release and archive older versions.

View File

@@ -8,4 +8,4 @@ script_dir=$(cd "$(dirname "$0")" && pwd)
${script_dir}/make-release critical 2023-01-11 000138c0 "${script_dir}/2711-config" release-2711 rpi-boot-eeprom-recovery 2711
# Pi5
${script_dir}/make-release critical 2024-09-23 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712
${script_dir}/make-release critical 2024-11-12 "" "${script_dir}/2712-config" release-2712 rpi-boot-eeprom-recovery 2712

View File

@@ -111,7 +111,7 @@ def exit_error(msg):
sys.stderr.write("ERROR: %s\n" % msg)
sys.exit(1)
def shell_cmd(args, timeout=5, echo=False):
def shell_cmd(args, timeout=10, echo=False):
"""
Executes a shell command waits for completion returning STDOUT. If an
error occurs then exit and output the subprocess stdout, stderr messages
@@ -180,7 +180,7 @@ def apply_update(config, eeprom=None, config_src=None):
# If flashrom is used then the command will not return until the EEPROM
# has been updated so use a larger timeout.
shell_cmd(args, timeout=60, echo=True)
shell_cmd(args, timeout=180, echo=True)
def edit_config(eeprom=None):
"""

View File

@@ -189,6 +189,32 @@ prepareImage()
fi
}
runFlashrom()
{
attempts=5
freq=16000
# If flashrom fails then retry at a lower speed.
while [ ${attempts} -gt 0 ]; do
echo "flashrom -p linux_spi:dev=${SPIDEV},spispeed=${freq} -w ${BOOTFS}/pieeprom.upd"
if flashrom -p linux_spi:dev=${SPIDEV},spispeed=${freq} -w "${BOOTFS}/pieeprom.upd" >> "${FLASHROM_LOG}"; then
echo "Verifying update"
if flashrom -p linux_spi:dev=${SPIDEV},spispeed=${freq} -v "${BOOTFS}/pieeprom.upd" >> "${FLASHROM_LOG}"; then
echo "VERIFY: SUCCESS"
return 0
else
echo "VERIFY: FAIL"
fi
fi
freq=8000
attempts=$((attempts - 1))
if [ ${attempts} -gt 0 ]; then
echo "Failed to update bootloader using flashrom. Retrying."
fi
done
return 1
}
applyRecoveryUpdate()
{
[ -n "${BOOTLOADER_UPDATE_IMAGE}" ] || [ -n "${VL805_UPDATE_IMAGE}" ] || die "No update images specified"
@@ -266,8 +292,7 @@ applyRecoveryUpdate()
echo "a bootloader rescue SD card image which restores the default bootloader image."
echo
FLASHROM_LOG="$(mktemp)"
echo "flashrom -p linux_spi:dev=${SPIDEV},spispeed=16000 -w ${BOOTFS}/pieeprom.upd"
if flashrom -p linux_spi:dev=${SPIDEV},spispeed=16000 -w "${BOOTFS}/pieeprom.upd" > "${FLASHROM_LOG}"; then
if runFlashrom; then
# Success - remove update files from the boot partition
removePreviousUpdates
echo "UPDATE SUCCESSFUL"