The latest iteration of the popular tiny single-board computer from the Raspberry Pi Foundation has gotten a new firmware update which enabled power-saving in the VLI VL805 controller which manages it's two USB 3.0 ports. There is also a beta firmware which finally enables PXE network booting available.

Raspberry Pi 4 model B

The Raspberry Pi 4's firmware has so far had what qualifies as a hardware bug where the VLI VL805 controller used to power it's two USB 3.0 ports has been running at full speed all the time. This generates a lot of heat as well as unnecessary high power-draw. The Raspberry Pi Foundation released a beta-firmware back in July which attempted to fix the issue. It worked to some degree but it made some USB devices connect at ridiculously low speeds; some devices would be limited to a few kilobytes per second. That's acceptable for a keyboard but a total scandal if you are trying to use an external harddrive. Developers at VLI and the Raspberry Pi Foundation are confident that the new firmware fixes power-saving without limiting devices speed when they are in use.

Installing the new firmware

The update process is easy if you are running the Debian Buster based Raspbian operating system the Raspberry Pi foundation maintains for these devices. Upgrading is as easy as:

sudo apt update && sudo apt upgrade && sudo apt install rpi-eeprom rpi-eeprom-images

This command will install the two firmware-related packages rpi-eeprom and rpi-eeprom-images and perform the actual firmware upgrade upon next boot. You will have to reboot to do the actual firmware update process.

Running the command sudo rpi-eeprom-update will show you what firmware version you have installed.

The latest version of the alternative operating system NOOBS which is also available for the Pi is updated to include the new firmware.

Earlier Pi models like the Pi 3B do not have this problem or a VLI VL805 USB 3.0 chip.

Heat and Power Savings

The updated firmware reduces the Pi 4's power-draw by about 0.4W when it's idle and 0.3W under load. That's a pretty huge difference in heat-output in a small closed-off enclosure.

Network Booting Is Now Possible

The new standard firmware version does not include PXE Network booting functionality. However, there is now a beta firmware version available which does - finally - give the Raspberry Pi 4 the ability to boot off a network server. Enabling the beta firmware requires changing a line in the file

/etc/default/rpi-eeprom-update

where

FIRMWARE_RELEASE_STATUS="critical"

should be changed to

FIRMWARE_RELEASE_STATUS="beta"

Then you should run

sudo rpi-eeprom-update

and reboot to get the new bootloader. The foundation has a page titled Network boot your Raspberry Pi with Pi-specific instructions for PXE network booting.

The bootloader firmware is beta so there may be bugs - but it appears to work fine. (There is a EEPROM recovery image available if you run into serious trouble)