v1.17 release for Pi 4

At last, the long awaited version 1.17 of the Raspberry Pi UEFI firmware has been released!

https://github.com/pftf/RPi4/releases/tag/v1.17

This release brings the following two major features:

  • Direct USB boot. This means that you can now boot this firmware straight from USB, without the need for an SD card. [tianocore/edk2-platforms@2254262]
  • ESP support. This means that you can now place your Pi 4 boot files into a EFI System Partition, and have the UEFI firmware launch as expected, regardless of whether you are using an MBR or GPT ESP, or even of the ESP resides on a USB or SD. Of course, this feature doesn’t really come from the UEFI firmware itself, that has always supported it, but from the firmware archive containing an updated start4.elf from the Raspberry Pi Foundation, where ESP boot support has finally been added.

Note that booting from USB or from ESP does require a recent-enough version of the Pi EEPROM.

If you have acquired your Raspberry Pi model recently, this shouldn’t be a problem, but if you find that booting from USB or from ESP doesn’t work, please visit https://github.com/raspberrypi/rpi-eeprom/releases to update your EEPROM.

Additionally, this firmware improves the Genet UEFI driver for heavy loads. [tianocore/edk2-platforms@2242b99]

As always, please read the release notes and usual caveats.

v1.16 release for Pi 4

A bit of polish and correctness, making for a less frustrating experience overall and keeping up with TianoCore development.

https://github.com/pftf/RPi4/releases/tag/v1.16

What’s inside this release?

As always, read the release notes and usual caveats.

v1.15 release for Pi 4

https://github.com/pftf/RPi4/releases/tag/v1.15

What’s inside this release?

This is a minor release, but the asset tag functionality is pretty cool. This let’s you set a custom string to be reported via SMBIOS to the booted OS, which you could use for inventory or provisioning requirements.

The tag can also be set programmatically or via the UEFI Shell command line.

Shell> setvar AssetTag -guid CD7CC258-31DB-22E6-9F22-63B0B8EED6B5 -bs
-rt -nv =L"ABC123" =0x0000

The matching Pi 3 release is v1.27.

As always, read the release notes and usual caveats.

v1.14 RELEASE FOR Pi 4

Now with 8GiB (yay!) support!

https://github.com/pftf/RPi4/releases/tag/v1.14

What’s inside this release?

The 8GiB variant changes the board layout a bit, dropping the SPI EEPROM containing the xHCI (USB3 controller) microcode, which required the relevant code to be added to UEFI to load it during boot. The good news is that the same approach is harmless on the other (1GiB, 2GiB and 4GiB Pies).

Like the 4GiB variant, UEFI will default to booting with only 3GiB to deal with OSes that can’t process the ACPI-reported DMA limits.

Of course, without the 3GiB limit, you get the full 8GiB (minus the gpu_mem amount anyway).

Booting to UEFI Shell should be a bit less awkward now, now that it is permanent to the Boot Manager menu.

The matching Pi 3 release is v1.26.

As always, read the release notes and usual caveats.

v1.13 RELEASE FOR Pi 4

Cleanup and bug fixes.

With this release, GENET networking support in UEFI is usable! You can perform PXE and HTTP boot, and use the TFTP command in the Shell.

https://github.com/pftf/RPi4/releases/tag/v1.13

What’s inside this release?

As always, read the release notes and usual caveats.

v1.12 release for Pi 4

Cleanup and bug fixes.

https://github.com/pftf/RPi4/releases/tag/v1.12

What’s inside this release?

Matching Pi 3 release is v1.25, which disables the scaled resolution by default, and improves Device Tree vs ACPI selection menu.

As always, read the release notes and usual caveats.

v1.11 release for Pi 4

Cleanup and bug fixes.

https://github.com/pftf/RPi4/releases/tag/v1.11

What’s inside this release?

Matching Pi 3 release is v1.24, which primarily fixes UART and USB regressions seen with newer VideoCore firmware.

As always, read the release notes and usual caveats.

v1.10 release for Pi 4

Cleanup and bug fixes.

https://github.com/pftf/RPi4/releases/tag/v1.10

What’s inside this release?

Those last two fixed regressions seen on Windows 10 after some ACPI restructuring to properly describe DMA constraints on VideoCore-attached devices. The regressions affected Pi 3, but the fix should equally apply to Pi 4.

The matching release over in Pi 3 land is v1.23. But that release is interesting enough to deserve it’s own post :-).

As always, read the release notes and usual caveats. The notes have gotten a bit of a rinse, so have a look to clear out any old assumptions.

v1.9 release is out

This mostly updates the underlying TF-A firmware, bringing a few important improvements.

https://github.com/pftf/RPi4/releases/tag/v1.9

What’s inside this release?

  • Update to TF-A v2.3 [tianocore/edk2-non-osi@96ec764]
  • Fix an ASSERT being produced with the DEBUG version, related to TFTP functionality [tianocore/edk2-platforms@f09ea1a]

The TF-A changes are worth describing in greater detail.

TF-A is the Arm secure firmware, providing services such as platform power off/reset and secondary CPU manipulation. The improvements to UART detection mean that TF-A firmware, just like UEFI, will honor config.txt selection of the UART (e.g. via overlay, although it’s really done by the VPU firmware). This is more developer oriented, and means not losing logging/initialization messages. Unrelated to Pi 4 itself, it paves the way for proper (transparent) Pi 3 UEFI support for Compute Module variants and that 64-bit variant of the Pi 2 (rev 1.2).

As always, read the release notes and usual caveats. Note that we do not distribute DEBUG builds. The PSCI CPU_OFF implementation allow a host OS to de-initialize individual CPU cores. More concretely, this will allow more of the Arm Architecture Compliance Suite (ACS) to pass.

The matching Pi 3 UEFI release is v1.22.

v1.8 release out

This is a pretty small update, mostly as a checkpoint to some internal refactoring happening.

https://github.com/pftf/RPi4/releases/tag/v1.8

What’s inside this release?

The matching Pi 3 release is https://github.com/pftf/RPi3/releases/tag/v1.21

As always, read the release notes and usual caveats.