Category Archives: Steam deck

How to Unlock the LCD and OLED Steam Deck BIOS for Increased TDP and Other Features

It feels like a very long time ago when all we had to do to gain additional features in the Steam Deck bios, was to run a compiled C program.

There is a lot of detail in the original blog post I wrote on this, and you should read it.

Since then as a community we have found ways to recover the Steam Deck BIOS, whether that is through binary editing, or looking through code to find the recovery mechanism.

Valve have also, very clearly and evidently, prevented people from tinkering with the Steam Deck BIOS. I have no doubt that the vast majority of people that found out how to unlock these options, in the innocent pursuit of gaining more performance, bricked their Steam Deck by going too far, and then pulled Valve up on their RMA and warranty claim to have it repaired. A lot of these guides did not cover how to backup your BIOS, and that you would need a chip programmer to recover from a bricked condition with the Steam Deck. While we do have a crisis mode that can recover from settings the majority of the time, there are still occasions when it will and cannot recover.

Though we now have a method of getting access to these forms again, it works on each current Steam Deck BIOS version, F7A0131 and F7G0109 / F7G0110 / F7G0112. SteamOS’ latest update of 3.6.19 came with an updated Steam Deck BIOS that allows for overclock settings on the Steam Deck LCD, too.

I Don’t Understand – What’re We Doing Here?

The Steam Deck BIOS prevents you from raising the power limit for Fast/Slow PPT above 15w, the BIOS has also hidden the AMD PBS and AMD CBS ‘forms’ that allow you to change settings such as RAM timings, TDP, EDC, and other fancy features that give you full control over the power consumption of the Steam Deck.

What we are doing here, is patching the BIOS temporarily so that you can raise the power limits above 15w, and also access these hidden forms. Though there are currently less features in them than in previous BIOS versions. There are benefits to having a more up to date version of the BIOS, such as the ability to recover from faulty BIOS settings, and generally the overclock and undervolt features are readily available. However, because of the ‘advanced’ form which Valve created and put in the BIOS, this imposes artificial limits on some of these settings (another example is that undervolting is limited to -50mv). So yes, you will have to ‘boot’ into this runtime patcher every time you want to change the settings. If you have the LCD Steam Deck, you can revert your BIOS version and use other methods.

Before I go into detail about how we can get these options back into your BIOS, I am going to say the same again.

Backup your Steam Deck BIOS Before Tinkering With It

Boot your Steam Deck, press the STEAM button, and choose the Power option. If you have Family View turned on, then enter the pass code. Then do it again and choose Switch to Desktop.

When you are in the desktop, open up a Konsole terminal and type in the following:

sudo /usr/share/jupiter_bios_updater/h2offt /home/deck/biosbkp.fd -O

Steam Deck BIOS Backup command

This will backup your BIOS in your home folder. If you do not know what ‘sudo is, then you should read this wiki article: https://wiki.archlinux.org/title/sudo

To use the ‘sudo’ command, before the ‘h2offt’ backup program command, you have to set a password for your ‘deck’ user account in linux. You do this from a konsole terminal by typing:

passwd

Be careful what you type, and make a note of the password. It will not show you what you are typing while you are typing it.

Then, make sure you copy and backup the file ‘biosbkp.fd‘ somewhere safe, that is not on your Steam Deck, and do not share it with others.

Settings that you Should Avoid

If you want to avoid bricking your Steam Deck into a state where you definitely need to use a chip programmer, then yes, there are settings you will want to avoid.

This isn’t a comprehensive list at all, but you may get the ‘feel’ for the settings you shouldn’t change from this. The rule of thumb is to not go too extreme on settings, and to not ‘force’ a setting. Even while incrementing values you could still brick your steam deck and need a chip programmer, there’s a rule of thumb to at least abide by.

Undervolting: Setting your undervolt too low can result in a ‘brick’ that can be difficult to recover from. Going beyond -50 can cause general instability and problems, someone set theirs to -100 and it was an instant ‘brick’.

pstate(0): Any of the pstate settings can result in an instant ‘brick’, this is basically forcing your processor to run in a manner that may or will not work, especially with no other changes. It simply is not worth changing this option at all.

ForceCclkFrequency / ForceGfxclkFrequency: This is similar to pstate in the sense that you’re forcing the processors to run at a set frequency, this can also result in a brick. It is better to use CclkFmaxOverride Control and GfxclkFmaxOverride Control because then the hardware can auto adjust.

I have Backed up my BIOS – Can I Unlock the Options Now?

I thank SmokeyCPU for the tools used for this, and to ‘vinegar_sigma’, ‘sub5ist’ and mytrixx for sharing their knowledge, time, effort, and being interested (that goes a longer way than you think). We have this thanks to each of them and ‘vinegar_sigma’ for putting it together.

You will need either a Steam Deck Dock, or a USB-A to USB-C adapter for your USB Storage, or a USB-C capable USB Storage for this to work.

Let us go through the steps that you need to do to prepare

  1. Format a USB storage drive to FAT32
  2. Download this ZIP file.
  3. Extract the files to your USB storage drive
  4. For simplicity, put the files in the root directory of your drive, rather than in the sub folder

These files will now be on your USB Storage:

  • runtime-patcher.efi
  • srep_config.cfg

You require the above stated files as a minimum. You will also have a couple of additional files:

  • _readme.txt

The readme.txt gives you similar steps and instructions that you will find in this blog post, along with credits. It also covers a few caveats about the alterations.

Note:

Previously there were two files available to download, for an LCD Steam Deck, or OLED Steam Deck. Now that we have had more feedback this is no longer required, but the zip files also had a timings.jpg image with RAM settings provided by Sub5ist. These settings are also provided later in the blog. Sub5ist tested these settings presented in the to tweak and alter RAM timings for the OLED Steam Deck in hexadecimal, and they helped improve system performance and frame-rate. You can see the results of these tweaks in a geekbench report for your comparison.

From various feedback I had also included a cbs-full.efi in the LCD/OLED 7zip file, as the file I was using worked without crashing, but the one in the zip file had problems for people. This is now removed from the zip file, if you want you may try these that are from other versions of the BIOS for OLED and LCD along with the old config for the runtime patcher tool.

The hanging/crashing may be because it is attempting to save to other form(s) or varstore(s) that need to be recovered/reinstated. So therefore, use it at your own risk. Not all features may currently be supported on the ‘full’ form, but some may be, by all means provide any feedback on your findings while we all look into it.

Booting into the BIOS

There are a few simple steps to this process now that we have the USB Storage setup. It matters which order you do them. Here they are:

  • Turn off your Steam Deck
  • Connect your USB Storage to the Steam Deck
  • Press the Volume + and Power buttons together
  • Navigate the Steam Deck menu with the directional pad
  • Press A on “Boot From File
Steam Deck BIOS Options
Steam Deck BIOS Options

You should now see a list of your efi options.

File Explorer in Steam Deck BIOS
File Explorer in Steam Deck BIOS

This may be different on your Steam Deck, if you dual boot with Windows, have a number of different Operating Systems installed, etc. If you have not labelled your USB Storage, you should see it listed here as ‘NO VOLUME LABEL’, or as your label if it has it.

Loading the Overrides

  • Use the directional pad to highlight your USB Storage
  • Either press A or press Right on the directional pad

Now we should see a list of the files:

Steam Deck BIOS File Explorer, efi files
File Explorer, efi files

I have more files here because it is possible to load extracted BIOS forms manually.

Now we perform the following steps:

  • Use the directional pad to highlight runtime-patcher.efi
  • Press the A button

This will run SmokeyCPU’s Smokeless Runtime EFI Patcher (SREP). I will go into detail about what it is doing later.

Smokeless EFI Patcher
Smokeless Runtime EFI Patcher

The system then returns you to the file explorer.

Now press the B button to quit out of the menu, and select the Setup Utility with the A button.

Now, you should see that the AMD CBS and AMD PBS menu have been loaded, and under the Advanced menu, you can also change the Fast PPT Limit, and Slow PPT Limit to higher than the stated 15000mW.

Fast PPT and Slow PPT are mainly for the GPU power control. There is an additional TDP limit that we should change if we want to see the CPU more reliably boost above 3.5Ghz.

Fast/Slow PPT Override
Fast and Slow PPT Limits Raised

Note: You do not need Smokeless UMAF, you are directly raising the limits above 15000mW

You can change the CPU/APU’s TDP limit by going to:

AMD CBS > SMU Common Options > TDP Control > Manual
AMD CBS > SMU Common Options > TDP > Change Value

If you’re setting PPT Fast / PPT Slow you will also want to set the TDP value above.

It appears that the Steam Deck OLED may be limited to 23w total, the Steam Deck LCD has been known to go higher, to 45w or more.

When you boot into Steam OS, you can run the following commands from a Konsole Terminal to check the PPT Fast / PPT Slow limits are raised:

sudo cat /sys/class/hwmon/hwmon6/power1_cap_default
sudo cat /sys/class/hwmon/hwmon6/power2_cap_default

or

sudo cat /sys/class/hwmon/hwmon4/power1_cap_default
sudo cat /sys/class/hwmon/hwmon4/power2_cap_default

The hwmon value (4, 5, 6) may change depending on whether or not your Steam Deck is docked/connected to a hub. These values do not reflect the TDP value.

These values are read from what the BIOS reports, and you cannot typically change them from within SteamOS. You will still be limited if you do not change power[1/2]_cap – these are reinforced to be 15w by the performance tab in SteamOS on game load. You can set the value manually or use PowerTools in the Decky plugin. There is more information on this in my other blog.

You will also see that the AMD CBS and AMD PBS menu are accessible from the left hand side menu in setup.

AMD CBS and AMD PBS
AMD CBS and AMD PBS Menu in the Steam Deck OLED Bios

The Steam Deck OLED BIOS also introduced the ability to overclock the GPU and CPU in BIOS F7G0109. That functionality is also accessible in the F7G0110 BIOS via the Advanced menu. The Steam Deck LCD BIOS recently introduced the same ability in BIOS F7A0131. You should update to this BIOS to take advantage of the ability to increase the TDP with the efi runtime patcher.

Undervolting is limited to ‘-50’ in the advanced BIOS form, even if you change it in the AMD CBS menu, this can be over-ridden with custom SREP settings.

Note: If you want to alter or change any settings again, you must follow the steps to load the .efi files from the USB Storage again. Loading the menus are temporary changes, but changing settings in the menus make permanent changes that are only cleared by a Valve BIOS update or Crisis Mode recovery or manually changing the options back.

Is Increasing the TDP Worth It?

You will struggle to hit higher clock speeds without increasing TDP. Increasing the TDP can result in the difference between matching your FPS to your refresh rate or not.

Here is a video demonstrating the direct effect of an increased TDP versus frame rate:

Help, I Need to Recover My Steam Deck!

Try as we may, it is still possible to break your Steam Deck by changing settings in these menus. If you have a BIOS backup you can recover using it. Or you can recover using Crisis Mode.

Please refer to my other blog post and search through it for Crisis Mode recovery.

How do I Overclock my RAM on the Steam Deck?

Backup your BIOS first. Understand that you may need a chip programmer to recover if the settings go bad, otherwise you can restore with the Crisis Mode recovery.

Your RAM in the Steam Deck is under-clocked, unless you have an early version of the Steam Deck LCD with 5500mt/s timed RAM, the typical Steam Deck LCD has RAM (Samsung or Micron) that should run at 6400mt/s. The OLED Steam Deck Micron RAM is also under-clocked, it has a max speed of 8533mt/s, but the Steam Deck APU cannot push it high enough, there have been some experiments with editing the BIOS to try to allow it to go higher, and so far those have been unsuccessful.

With the cut-down CBS form injected into the BIOS you can set faster RAM timings for both the Steam Deck LCD and Steam Deck OLED. I have recently discovered that the Steam Deck OLED can have Samsung (K3KL3L30CM-MGCT) and Micron RAM (MT62F1G64D4AH-023 WT).

You can find out which type of RAM your Steam Deck runs by typing the following command at a konsole terminal:

sudo dmidecode –type 17

Here are timings you can use for the Steam Deck LCD with Samsung RAM (K3LKBKB0BM-MGCP / K3LK7K70BM-BGCP000):

Steam Deck LCDSamsung
Clock speed 3200 Mhz
Trcdrd 0Сh Clk.
Trcdwr 0Eh Clk.
TrrdS 4 clk
TrrdL 4 clk
Tfaw 10
Trp 9 Clk. (Bh)
Tras 16h Clk.
Trc Ctrl Manual
Trc 0x20
TwtrS 4 Clk.
TwtrL 6 Clk.
Tcke 5 Clk.
Trdwr 0Dh Clk. (Eh)
Twrrd 7 Clk. (8)

crash2032, Steam Deck Discordinvite link

Steam Deck LCD – Samsung
Clock Speed 3200 Mhz
Trcdrd 0Сh Clk
Trcdwr 0Eh Clk
Trp 0Bh Clk
Trc 0x28
TwtrS 4 Clk
TwtrL 6 Clk
TrdrdScL 0x3
TwrwrScL 0x3
Trtp 5 Clk.
Tras 17h
Trdwr 0Eh

Ew Meh, Steam Deck Discord, invite link

Steam Deck LCD – Micron MT62F1G32D4DR-031 WT
Clock Speed 3200 Mhz
Tcrdrd – 0Bh clk
tcrdwr – 0D clk
trp – 0Bh clk
tras – 17h clk
trc – 0x23
twtrS – 4 clk
twtrL – 6 clk
trtp – 5 clk

Ew Meh, Steam Deck Discord, invite link

Steam Deck OLED – Micron MT62F1G64D4AH-023 WT
TRCDRD 0Ch
TRCDWR 8
TRP 9
TRAS 15
TRC (MANUAL) 0x20
TRRDS 4*
TRRDL 4*
TFAW (MANUAL) 0x10
TWTRS 2
TWTRL 6
TWR (MANUAL) 1A
TRTP 5
TRDWR 0Ch
TWRWRSD 1
TWRWRDD 1
TRDRDSD 1
TRDRDDD 1

sub5ist, Steam Deck Discord – invite link

Steam Deck OLED – Samsung K3KL3L30CM-DGCT
TRCDRD 0Dh
TRCDWR 8Clk
TRP 0Ch
TRC (MANUAL) 0x21
TRAS 15h
TRDWR 0Dh
TWRWRSD 1
TRDRDSD 1
TRDRDDD 1

sigma male, Steam Deck Discordinvite link

Steam Deck OLED – SK Hynix H58G66BK8HX128
TRCDRD 0Bh
TRCDWR 8
TRP 11h Clk
TRAS 1Ah Clk
TRC (MANUAL) 0x1E
TRRDS 4*
TRRDL 4*
TFAW (MANUAL) 0x10
TWTRS 2
TWTRL 6
TWR (MANUAL) 0X18
TRTP 5
TRDWR 0Dh
TWRWRSD 5
TWRWRDD 2
TRDRDSD 1
TRDRDDD 1
MEM VDDQ 114
Power Down Disabled

Dex, Steam Deck Discord

You may find the Samsung OLED timings to be unstable, the Samsung RAM is sensitive to voltage, for example decreasing MEM VDD2H/APU VDDIO to 6 can increase stability and reduce errors in memtester and memtest86.

With the introduction of the new Steam Deck OLED Limited Edition (White) it has been noticed that OLED Steam Decks now come with SK Hynix RAM.

Any overclock should be tested with software to see if it is stable and works without error. Software such as memtest86/memtest86+ should do this.

What are the Default RAM Timings for the Steam Deck RAM?

You can run ZenTimings in Windows to determine most of these.

Steam Deck OLED – Micron MT62F1G64D4AH-023 WT
Steam Deck OLED – Samsung K3KL3L30CM-DGCT
Provided by Dex, Steam Deck Discord
Steam Deck OLED – SK Hynix H58G66BK8H-X128
Incorrect MT/S reported by ZenTimings – Could not initialize power table
Provided by Dex, Steam Deck Discord

Where Are These EFI Files From?

You are probably wondering how this is done, and where the .efi files are from? The simple answer is: they are from the Steam Deck BIOS released by Valve, and they are from SmokeyCPU that has been configured by ‘vinegar_sigma’.

The Steam Deck BIOS files are all available from Valve directly in their repositories, these have been mirrored by the evlaV repo, but they are also directly available in locations such as:

https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64

Here, we have the ‘hardware support files’ which are named something like:

jupiter-hw-support-xxxxxxx.x-x-any.pkg.tar.xz or

jupiter-hw-support-xxxxxxx.x-x-any.pkg.tar.zst

Where “xxxxxxx” is the date, in the format of yyymmdd (year, month, date) and then a version. When you extract these files, you get the BIOS update files that your Steam Deck downloads, and these files go way back in versions.

You can also find your Steam Deck BIOS in the following folder, both the LCD and OLED BIOS are stored here:

/usr/share/jupiter_bios/

That does not entirely answer the question though, you see the Steam Deck uses a UEFI BIOS, and these are almost becoming like a ‘Real Time Operating System’ themselves, they have drivers, configurations, and a virtual ‘cmos’ or ‘nvram’ is used with an embedded micro-controller (as it is in the Steam Deck) where these settings are stored.

To dissect these BIOS files, we need to understand the file and their structures, and thanks to some open source tools such as UEFI Tool, we can open them up.

UEFI Tool with the Steam Deck OLED BIOS F7G0005_sign.fd

Inside the UEFI BIOS we have what are called ‘forms’, along with drivers and other files. What we are interested in are the ‘CBS’ and ‘PBS’ forms, and using the search capabilities in UEFI Tool we can find these forms, and it’s the ‘PE32 image section’ we are interested in for it to work with Smokeless EFI Runtime Patcher.

When we store these .efi files on the USB Storage, and load them after running the Smokeless EFI Runtime Patcher, we allow the forms to load and override what is already loaded by the BIOS (or not loaded as the case may be).

Therefore, if you do not trust what is in the zip file here, you can go and find your Steam Deck BIOS and extract these forms yourself, from the current version or previous, and load them up.

What About Smokeless EFI Runtime Patcher (SERP)?

SmokeyCPU wrote a tool that allows for two fundamental components:

  • We unlock the forms that we want to show
  • We load, or reload the forms so we can change the contents

If you open up SREP_Config.cfg you will see exactly what we are doing with this tool, once you open the file up you will see some commands, so to explain what they do:

  • Open the H2OFormBrowserDxe form
  • Patch the H2OFormBrowserDxe so that it will enable AMD CBS and AMD PBS
  • Open the SetupUtility form
  • Patch the SetupUtility so that it allows for a higher TDP for PPT Fast and Slow to be set
  • Load the SetupUtility from FV
  • Open the SetupUtility form
  • Load the AmdPbsSetupDxe form
  • Open the AmdPbsSetupDxe form
  • Load the CbsSetupDxeFF3 form
  • Open the CbsSetupDxeFF3 form

The patches refer to the UEFI Forms that we want to enable in hexadecimal, these are the hexadecimal conversions of the UEFI Form GUID as seen in UEFI Tool, and they are an alternate method of performing the SmokeyCPU unlock that we ran as a compiled executable.

We also then patch the SetupUtility form, because Valve hard-coded a limit of 15000mW for the maximum Fast PPT, and Slow PPT. There is a caveat with this, for some reason insydeh2obios is compiled little endian, that means the bit pattern is reversed. This means that the hexadecimal patch in the code also had to be reversed, referring to 15000 as 983A, as opposed to 3A98. The rest of the hexadecimal in the line is kept ‘as it is’ in the form.

If you want to align and see how these hexadecimal modifications align with the .efi files, then use UEFITool to extract the forms from the BIOS and use HxD to search for the values and you will see where the amendments are made for yourself.

Why Doesn’t my CPU Go Above 3.5GHz When It’s Set Higher in the BIOS?

Unless you can have the TDP set to 45-50w with serious cooling modifications, only two cores will boost to 4.2Ghz. The OLED Steam Deck will only allow you to set 23w TDP + 23w FastPPT + 23w SlowPPT. The LCD Steam Deck can be set higher. The LCD Steam Deck can also use an older BIOS that will allow you to disable the ‘power throttler’. The OLED Steam Deck does have an older BIOS that will allow you to do this, but its internal display will not initially work.

If you manually alter the GPU frequency, with PowerTools or otherwise, the CPU frequency will go no higher than 3.5Ghz.

You need to join in on this gitlab thread, and this SteamOS thread (yes even if it means registering for an account on either site), especially after CPPC / amd_pstate has been partly addressed with the latest BIOS versions.

There is an issue with amdgpu, which is used to control the CPU and GPU for the Vangogh AMD APU in the Steam Deck.

I check this with my team, the max frequency of Vangogh support is 3.5GHz, it will not allow to change the cpu max frequency higher than 3.5GHz, so any applications trying to OC the APU will be failed.

(…)

The OC function needs amdgpu driver and lowlevel PM firmware changed, it needs to request the feature support from Valve officially.

Perry Yuan, gitlab @ freedesktop.org

It is possible to mod amdgpu to remove this limit when manually setting the frequencies, but really we should all be jumping on the linked gitlab and github issue to get Valve to raise this limit.

Do you want to flash the BIOS?

How to Update or Flash your Steam Deck BIOS from Crisis Mode

Anyone that is familiar with InsydeH2O® UEFI BIOS will know that it has a ‘crisis mode’. The crisis mode allows you to re-flash the BIOS if it bricks itself. We thought that the Steam Deck maybe had this mode, or maybe it did not. We did not know what the name of the file had to be on the USB storage to get it to work! In fact, maybe it also looks at the microSD card? Anyway, here is how to flash your Steam Deck BIOS in crisis mode.

If you simply want to update or revert your Steam Deck BIOS; or perhaps you have set bad BIOS options, then you will want to try this out. Before considering paying out to Valve or returning to Valve via RMA for repair or replacement. If you have outright ‘bricked’ your Steam Deck, and you have a chip programmer then you will want to use that to recover it. Or if you do not have a backup then you can put one together. You can still try this method out before going that far.

To follow this process, you will need a USB storage device, and a means to connect that to your Steam Deck. Either via a USB hub, or USB Dock, or using direct USB-C storage. The size of it needs to be at least 32 megabytes (yes, megabytes, you are only storing the BIOS file on it which is 16 megabytes approximately). It can be larger than 32 megabytes, but ideally blank with no other files on it.

Note: This does not clear or wipe your Steam Deck’s storage. It only affects the Winbond SPI flash BIOS chip. As this is an official method of updating the BIOS, and so long as you use trusted BIOS files, and the correct file, and it is not interrupted, no harm will come to your Steam Deck.

As an overview here are the steps:

  • Format any USB storage to FAT32, on a Windows PC. (Or if you have Linux and know how, you can do so there too).
  • Download the BIOS file that’s relevant for your Steam Deck
  • Put the BIOS file onto the USB Storage (no folders or other files)
  • Boot into Crisis mode with the USB Storage attached
  • Follow the prompts (if there are any) and flash your BIOS
  • Enjoy the flashed Steam Deck

Where do I get the Steam Deck BIOS file?

For the Steam Deck LCD your BIOS file starts with F7A. For the Steam Deck OLED, it starts with F7G.

The BIOS files are available directly from Valve from this site:

https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64/

They’re in a file named something like:

jupiter-hw-support-xxxxxxx.x-x-any.pkg.tar.xz or

jupiter-hw-support-xxxxxxx.x-x-any.pkg.tar.zst

Where “xxxxxxx” is a date, in the format of yyyymmdd (year, month, date) and then version. There are also .sig files, which are ‘signatures’ to verify the file, we do not need these for now. You typically want the most recent version of the file, but of course older versions contain older BIOS versions.

For the Steam Deck LCD do not use BIOS versions before version F7A0105. For the OLED do not use versions before F7G0105. The 105 version for is the version used ‘at release’ of the Steam Deck, both versions.

If you are experiencing the “black screen of death” on the Steam Deck LCD, then you can fix this using bios F7A0131_sign.fd, to help you find which file this is in, it is available in jupiter-hw-support-20240624.1-1-any.pkg.tar.zst – you can work out if you are suffering from the version of the problem which can be repaired with this BIOS update if your Steam Deck still outputs to an external screen over USB-C.

If you need to use bluetooth in Microsoft Windows on the Steam Deck OLED, than you can fix this using bios F7G0112_sign.fd, to help you find which file this is in, it is available in jupiter-hw-support-3.6.20240807.1-1-any.pkg.tar.zst.

The BIOS file is in the path usr -> share -> jupiter_bios directory tree in the archive. You want the file name that ends in the extension .fd. It will have a name such as F7A0131_sign.fd or F7G0112.fd.

If you have trouble opening the file that you have downloaded from Valve, you can also find the files at the evlaV gitlab repo.

On the USB storage / pen drive, you need to put the BIOS file on the drive. There should only be the BIOS file on the USB storage / pen drive – no folders or directories, and rename your BIOS file, for the LCD Steam Deck it should be:

  • F7ARecovery.fd

For the Steam Deck OLED name it:

  • F7GRecovery.fd

How to Flash the Steam Deck BIOS from Crisis Mode

Make sure that your Steam Deck is fully charged. Or plugged into a dock with external power while flashing the BIOS. Do not remove the power, or remove the USB storage while flashing the BIOS.

  • Do not have any other USB storage connected to the Steam Deck than the one with the BIOS file. Having your SSD installed and inserted into the nvme m.2 bay should be fine.
  • Make sure that the Steam Deck is shut down. Hold the power button for 10 seconds if it is already turned on.
  • Check that the unit is off, track pads should have no haptic feedback. The fan should not be on, and the screen should not be lit
  • While holding the Volume – and “. . .” buttons, press the power button once.
  • You can keep the Volume – and “. . .” buttons pressed a few seconds after letting go of the power button to be sure, then let go.
  • Your Steam Deck screen will remain black for a bit, and the power LED should constantly flash on and off. You will see some text at the bottom of the screen.

Note: As of Steam Deck LCD BIOS F7A0131, entering the crisis mode combination has changed behavior, and it may go into battery storage mode first. This means the Steam Deck will turn off and require you to plug in mains power for it to turn back on.

What Happens Now?

This option should then appear (though for some people, it apparently can skip this entirely):

BIOS flash prompt
On Screen Prompt to Flash Steam Deck BIOS

If you do not get this far, the file on the USB storage is either incorrect, or not named correctly.

You can navigate this pop-up with the track pad, or the d-pad. From this prompt, basically select ‘Yes’ to continue, or ‘No’ to stop. If you do not see this prompt, it will continue to move on to flash the Steam Deck BIOS.

If you are trying to recover your Steam Deck and flashing ‘blindly’ you can press the A button for it to continue at this prompt. You will have to wait to see if it has been able to continue successfully, it helps if your USB storage has an activity LED because you will see it flash as it reads the file from it.

Your screen should now change to show the h2offt flash firmware tool, and it may be in portrait mode:

h2offt BIOS Flash firmware tool

This will take some time to complete. Your Steam Deck will reboot after it has successfully flashed. Make sure not to remove the storage or power (if connected) during the flash.

Thanks to ghidra, and HxD for confirming what the blasted recovery filename should be. Make sure that you make a BIOS backup in future. Having a ‘dump’ of your BIOS chip and restoring with a chip programmer can still be necessary under some circumstances.

Steam Deck in Case

Unbricking your Steam Deck without a BIOS Backup

Before trying this method, you should check out this post which should allow you to recover your Steam Deck with Valve’s BIOS update files in some circumstances.

This post was originally available on Reddit but is no longer available. It is replicated here because it has helped save a number of people from having to RMA their Steam Deck. The original post also supplied a ‘cleaned’ BIOS file. Unfortunately it was stored on a Google Drive and the file has been removed.

“Hey guys,

So you, like me, went too hard on the undervolting and ended up bricking your SD. And worst, you didn’t make a backup of your BIOS beforehand?

Fear not, it’s is possible to recover your SD even without a BIOS backup, I just did it to mine.

You’re going to need a CH341A SPI chip programmer. More details on how to use it, please refer to this guide by /u/Interesting-Bag-6206:

https://www.reddit.com/r/SteamDeck/comments/123ml95/how_to_reflash_your_steam_deck_bios_chip/

Here there’s another guide on how to read and write the BIOS on windows and Linux https://jensd.be/980/linux/bios-or-spi-programming-on-windows-or-linux-using-a-ch341a

Download the bios file direct from here: https://gitlab.com/evlaV/jupiter-hw-support/-/tree/master/usr/share/jupiter_bios

Editor’s Note: You should download a BIOS version higher than 110 unless you have an EV2 device.

First Step

Unzip the file and go to /usr/share/jupiter_bios/ open F7A0115_sign.fd using a HEX editor. In my case I’m using Bless, for linux. This is what you’re going to see:

Hex Readout

Search for $_IFLASH_BIOSIMG and delete everythign before ….( 02 02 00 02 28 in hexadecimal

Hex Readout

This is what should look like. The first 5 hexadecimal digits should be 02 02 00 02 28 like in the picture below.

Hex Readout

Then go to line 00ffffec on your hex editor. Delete everything after the last FF.

Hex Readout

This is how it should look like after

Hex Readout

Save the file, this is the “clean” file I’m making available above.

Second Step

You need to dump your “corrupted” bios using the guides.

DO NOT UNDER ANY CIRCUMSTANCE OVERWRITE YOUR BIOS BEFORE DUMPING IT

You will need your original BIOS file to be able to restore your deck. If you overwrite it now with the “clean” BIOS is GAME OVER.

Open your corrupted bios and make sure you have more than 1 backup of it just in case. You’re going to see a familiar sight.

Hex Readout

Search for $DMI on the hex editor (line 006a3fce).There are only 2 places where it appears. The first one is what you want. You Are going to see a block of info’ containing your Deck serial number, Controller ID, etc. Copy the entire block. It’s easy to see. It starts after an FF and ends before an FF.

Hex Readout

Open your “clean” BIOS file and replace the exact block, this is exactly what you have to replace

Hex Readout

Save your modified BIOS, and write it to the Deck. That’s it! It will take about a minute to boot the first time. After that it should be back in working condition.

Steam Deck in Case

DISCLAIMER: I’m not responsible for any damage you cause to your deck.”

This article was recovered via the web archive.

There’s a good python tool you can use hosted over on the evlaV gitlab repository that can help you prepare a bios file for flashing with a programmer, and also copy across your Steam Deck ID from a backup of a faulty BIOS before flashing a ‘fixed’ BIOS to recover from.

You can find more information about overclocking, undervolting and backing up your BIOS in my other blog post.