Home Virtual Reality New Raspberry Pi 4 VLI Firmware Lowers Temperature by 3-5°C

New Raspberry Pi 4 VLI Firmware Lowers Temperature by 3-5°C

by admin2 admin2
22 views
New Raspberry Pi 4 VLI Firmware Lowers Temperature by 3-5°C

Orange Pi Development Boards

The other day I tested Raspberry Pi 4 with an heatsink since previous multi-threaded benchmarks clearly made the board throttle when runs those without any cooling solution.

The guys at the Raspberry Pi Foundation somehow noticed my post, and I received an email from Eben Upton explaining a new Raspberry Pi 4 VLI firmware had “some thermal optimizations that are not installed by default on early production units.” I did not understand VLI at first, but eventually understand this referred to the firmware for VIA VL805 PCIe USB 3.0 controller on the board.

The Raspberry Pi Foundation provided me with a test version of the firmware, which they’ll release in the next few days, or weeks after testing is completed.

Now if you’re going to test a platform that will throttle due to overheating, it’s very important you do so at constant room temperature. I work in a office where the air conditioner is set to 28°C, so that’s about the temperature I have here.

Before going on with the test I’ve installed rpi-monitor to have nice CPU temperature charts later on:

sudo aptget install dirmngr

sudo aptkey adv recvkeys keyserver keyserver.ubuntu.com 2C0D3C0F

sudo wget http://goo.gl/vewCLL O /etc/apt/sources.list.d/rpimonitor.list

sudo aptget update

sudo aptget install rpimonitor



Let’s run sbc-bench without heatsink with old VLI firmware (version 00013701):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

sudo /bin/bash ./sbcbench.sh c

sbcbench v0.6.7

Installing needed tools. This may take some time... Done.

Checking cpufreq OPP... Done.

Executing tinymembench. This will take a long time...^[[15~ Done.

Executing OpenSSL benchmark. This will take 3 minutes... Done.

Executing 7zip benchmark. This will take a long time..../sbcbench.sh: line 600:  9284 Killed                  “${SevenZip}” b >> ${TempLog}

./sbcbench.sh: line 600:  9454 Killed                  “${SevenZip}” b >> ${TempLog}

./sbcbench.sh: line 600:  9615 Killed                  “${SevenZip}” b >> ${TempLog}

Done.

Checking cpufreq OPP... Done.

ATTENTION: Throttling has occured. Check the log for details.

Memory performance:

memcpy: 2695.2 MB/s

memset: 3703.2 MB/s (0.5%)

7zip total scores (3 consecutive runs):

OpenSSL results:

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes

aes128cbc      62423.76k    76661.25k    83079.59k    84544.17k    84863.66k    85082.11k

aes128cbc      62536.07k    76638.74k    83104.00k    84629.16k    84956.50k    85185.88k

aes192cbc      56289.64k    67320.53k    72100.18k    73361.75k    73569.62k    73667.93k

aes192cbc      56288.07k    67469.87k    71959.30k    73264.47k    73566.89k    73536.85k

aes256cbc      51019.20k    60045.33k    63557.38k    64655.02k    64948.91k    64957.10k

aes256cbc      50838.41k    60060.05k    63685.29k    64467.29k    64935.25k    64951.64k

Full results uploaded to http://ix.io/1NaQ. Please check the log for anomalies (e.g. swapping

or throttling happenend) and otherwise share this URL.



7-zip never completed, as it was killed three times due to running out of memory. Maybe it happened because with a 1GB RPi 4, we’re right at the limit. Enabling ZRAM may help.

But we do have our temperature data for the full benchmark. We started at 67°C idle, and the spike to over 80°C (11:26 to 11:30) is exactly during 7-zip multi-threaded benchmark:

Raspberry Pi 4 SBC Bench Temperature
Tempeature during sbc-bench – Click to Enlarge

Now let’s install the firmware in a terminal in the Raspberry Pi 4:

unzip vl805_update_0137a8.zip

chmod a+x vl805

sudo ./vl805 w vl805_fw_0137a8.bin

VL805 FW version: 00013701

VL805 EEPROM successfully reprogrammed please reboot to activate.

sudo reboot



For reference the tool can also be used to backup the firmware, and write to any location in the EEPROM:

./vl805 h

Usage: vl805 [<options>]

  where <options> are taken from:

    h            Show this help message

    r <file>     Read EEPROM

    w <file>     Write EEPROM

    v <file>     Verify EEPROM

    o <offset>   Specify an offset to read from/write to (for testing).

                  N.B. Erases to the end of the EEPROM!

    d            Verbose debugging



If you mess up you’ll lose USB connectivity, but user could have to ssh or serial into the device and re-run the tool to flash an older firmware to recover. It’s unclear whether early adapter will have to update the firmware manually, or it will be done automatically as part of the update process. That’s one of the reason I can’t share the files now.

Raspberry Pi 4 VLI Firmware Idle Temperature
Click to Enlarge

Nevertheless it does seem to have some effect on idle temperature. Previously I got just under 65°C, but now I get just above 61°C once it stabilizes, so the new firmware does lower the temperature by 3 to 4°C thanks to lower power consumption. Sadly, I can’t measure the latter as my power meter is dead.

Now let’s run sbc-bench again without heatsink and the new VLI firmware (version 0137a8):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

sudo /bin/bash ./sbcbench.sh c

WARNING: this tool is meant to run only on Debian Stretch or Ubuntu Bionic.

When running on other distros results are partially meaningless or cant be collected.

Press [ctrl][c] to stop or [enter] to continue.

sbcbench v0.6.7

Installing needed tools. This may take some time... Done.

Checking cpufreq OPP... Done.

Executing tinymembench. This will take a long time... Done.

Executing OpenSSL benchmark. This will take 3 minutes... Done.

Executing 7zip benchmark. This will take a long time..../sbcbench.sh: line 600:  5469 Killed                  taskset c 0 “${SevenZip}” b mmt 1 >> ${TempLog}

Done.

Checking cpufreq OPP... Done.

ATTENTION: Throttling has occured. Check the log for details.

Memory performance:

memcpy: 2662.9 MB/s

memset: 3719.3 MB/s (0.5%)

7zip total scores (3 consecutive runs): 5473,5483,4938

OpenSSL results:

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes

aes128cbc      62552.61k    76725.93k    83106.05k    84651.01k    85273.26k    85185.88k

aes128cbc      62791.37k    76941.34k    82987.52k    84688.90k    85054.81k    85229.57k

aes192cbc      56272.02k    67331.56k    72086.95k    73305.43k    73591.47k    73596.93k

aes192cbc      56187.43k    67463.00k    71973.12k    73198.25k    73706.15k    73596.93k

aes256cbc      51015.38k    60031.36k    63559.94k    64579.58k    64918.87k    64957.10k

aes256cbc      46234.68k    58296.15k    63157.42k    64423.94k    64875.18k    64809.64k

Full results uploaded to http://ix.io/1NaS. Please check the log for anomalies (e.g. swapping

or throttling happenend) and otherwise share this URL.



This time all three runs for 7-zip could complete for some reasons, and while throttling still did occur, it did to a lesser extent, and the temperature was clearly lower during to single thread benchmarks (~70°C vs 75°C with old firmware).

Raspberry Pi 4 VLI-805 Firmware Temperature
Click to Enlarge

For reference, 7-zip benchmark score with heatsink averaged 5,397 points, without heatsink + old VLI firmware 4,423 points, but the “no heatsink with new VLI firmware” results are much better at 5,298 points. You’ll also note the first two runs were as good as the results with heatsink, but the last one dropped to just under 5,000 points, so for full load under and extended period of time a heatsink is still recommended for full performance. It’s still impressive what a new firmware can achieve.

You may wonder what the Raspberry Pi Foundation has changed. Thomas Kaiser may have found the reason in advance, as now ASPM (Active-State Power Management) seems to be enabled:

sudo apt install pciutils

sudo lspci vvv | grep ASPM

LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 <4us

ClockPM+ Surprise LLActRep BwNot+ ASPMOptComp+

LnkCtl: ASPM Disabled; RCB 64 bytes Disabled CommClk

L1SubCap: PCIPM_L1.2+ PCIPM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+

L1SubCtl1: PCIPM_L1.2 PCIPM_L1.1 ASPM_L1.2 ASPM_L1.1

LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 <16us

ClockPM+ Surprise LLActRep BwNot ASPMOptComp

LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled CommClk+



This was not the case with the old VLI firmware. The full lspci output can be found here.

Read More

You may also like

Leave a Comment