In this blog post you will find help, guidance and assistance for unlocking your LCD Steam Deck BIOS to be able to undervolt and overclock your Steam Deck if your BIOS version is below version 118, 119, 120, 121 or 131. There is also information on how you can recover from doing so in case it goes bad, how to also backup your BIOS, and links to a method for undervolting without modifying your BIOS that is a safer way to recover from. There is also settings for using your RAM at 6400 speed, though you need to be comfortable with opening up your Steam Deck and restoring the BIOS with a programmer should anything go wrong. The OLED Steam Deck’s RAM runs at 6400 by default, and is actually capable of higher. Being unable to restore your Steam Deck to a state where you did not tinker with it, means you will void your warranty and incur a repair cost if you do not recover it yourself. Do not ignore this warning.
In February 2022, Valve released its portable personal computer, the Steam Deck. It is frequently compared to the Nintendo Switch, and other portable personal computers, the Steam Deck demonstrates how it is different by combining the ecosystem of a new version of SteamOS based on Arch Linux (previous versions were Debian and intended for ‘Steam Machines‘).With the previously released Steam Controller and its two touch pads, gyroscopic movement and customisable Steam Input infrastructure along with a custom AMD APU called Van Gogh (having integrated GPU, CPU and also ‘Vision Cores’ which as of yet, go unused), my theory is that the Van Gogh is a concept processor for a standalone VR headset (as what is used for the Oculus Quest 2).
Of course with any portable device, especially one to play games on, there are people that want to get the most out of it, battery life, performance, frame rate, etc. The Steam Deck is well optimised. It runs very ‘close to the bone’ as it were, and while it has settings under the ‘Performance’ tab on the ‘Quick Access Menu’ (accessible via the three dot button under the right track pad) it has many, many more features available that are hidden away in its BIOS, and rightly so.
Having hidden options in the BIOS is not a new idea, with computers that are ‘off the shelf’ or ‘store bought’ there are often settings locked away which are not commonly visible. With the introduction of recent AMD and intel(?) processors, there’s even more options to change and it’s all thanks to UEFI.
If you want to read more about UEFI, then you can do so from tianocore’s github and check out UEFITool. Simply put, UEFI has meant that BIOS’s and Firmware have become a lot more complex, having their own drivers, configurations, and a requirement to have storage for those configurations. On ’embedded devices’ or custom hardware like laptops, this means that you do might do away with the traditions of ‘CMOS’ and instead store the configuration on an SPI Flash chip, like the Steam Deck, and that’s where a tools by SmokelessCPUv2 aka SmokeyCPU comes in.
The Steam Deck in particular, uses insydeH20 UEFI BIOS, like many other laptops, tablets and embedded hardware devices. Tools and software for this are usually distributed directly by the Original Equipment Manufacturers, because they typically pay insyde for the license and the software, end users like you or me do not get their hands on the development kits for this or the tools, unless they are distributed in ‘BIOS updates’ or ‘drivers’ and even then we only see a portion of what is available. In the case of the Steam Deck, it has its BIOS backup and flash tool stored in ‘/usr/share/jupiter_bios_updater/h2offt’ along with its platform configuration. You can also find other BIOS and firmware tools on the Steam Deck, such as for the official Steam Deck Dock.
In November 2023, Valve announced the release of the Steam Deck OLED available from November 16th, and now refers to the original as the Steam Deck LCD. As of BIOS F7G0109_sign and F7A0131_sign it is currently possible to increase the maximum CPU and GPU speeds in the BIOS, to 4200Mhz for CPU, and 2200Mhz for GPU.
The BIOS still lacks the AMD CBS and AMD PBS forms meaning it would require some refactoring/rebuilding of the BIOS to enable editing functionality. At the very least, the Steam Deck OLED will have 6400 mt/s ram by default.
However, there is hope if you click ‘View the whole list’ on the Steam Deck OLED page:
Valve intend on open-sourcing the BIOS and EC firmware, so there is potential to have more control over your Steam Deck in future, it is not known if this will only be the OLED revision at the time of writing.
Until then, you can temporarily override the settings in the Steam Deck BIOS to load the AMD CBS and PBS forms and remove the TDP power limit without having to edit or flash your Steam Deck BIOS directly.
You Should Backup your Steam Deck BIOS – Especially before Tinkering With It
sudo /usr/share/jupiter_bios_updater/h2offt /home/deck/biosbkp.fd -O
Is the command in SteamOS. If you haven’t run this before, and you have not already tinkered with your Steam Deck BIOS (overclocking, under-volting, etc.) run it now.
If you don’t know what ‘sudo‘ is, then read this article: https://wiki.archlinux.org/title/sudo
To use this, you need to set a (sudo) password for the ‘deck’ user account on the Steam Deck using:
passwd
From a konsole terminal in desktop mode, make sure you’re careful what you type and that you remember it. It won’t show you the key presses when you type it in.
Then backup biosbkp.fd somewhere safe that isn’t on your Steam Deck and don’t share it with others.
Why not share it with others?
Well the BIOS has a lot more information in it than the update files that you receive from Valve. As it is a UEFI BIOS and it contains more components to it than simply the settings you edit with Smokeless and change from boot. It also contains your Steam Deck’s MAC addresses, serial numbers and may contain information relating to Deck rewards. The BIOS ends up larger than the BIOS update files that you get from Valve.
How Do I Recover From Bad BIOS Settings or a Bad BIOS?
If you break your Steam Deck’s BIOS or its settings in a seemingly ‘irrecoverable fashion’, then to restore it you need an SPI chip programmer (the CH341A, a SOIC8 clip with cable and a 1.8v adapter – you can find it at Aliexpress or Amazon UK / US) and the tools to either program the chip where it is soldered, with the battery disconnected, or you have to de-solder the chip and attach it to an SPI chip programmer.
There’s a good introduction to how to do this from a Microsoft Windows installation available on Reddit, and there’s also a guide on instructables.
As a bonus, here are a couple of video guides:
Considering the SPI Flash Chip in the Steam Deck is 1.8v, you may want to watch this to help you with how to orientate the programmer:
When connecting the programmer you’ll want to make sure you’re using the 1.8v adapter, and ensure that you are orientating / aligning the pins up correctly from pin ‘1’ onwards, and using the correct ‘half’ of the socket where you insert the connections.
Rather frustratingly, there are many different versions of software to use with the CH341A programmer.
- Windows: AsProgrammer
- Windows: NeoProgrammer
- Linux: QT-CH341A-LINUX-PROGRAMMER
- Linux: CH341eeprom (guide)
You will need to be able to identify the chip and select it in the CH341A programming software that you use, else it might not flash properly. If one of the above software does not work for you, you might have to search for it.
You can ID the chip on ifixit’s site it’s the:
- Winbond 25QW128JW
‘2129’ chip surrounded with a yellow box.
More information on the SPI chip can be found at the WinBond site. You can also directly view its datasheet.
Specifically, it’s a 1.8v 128m-bit serial flash memory chip.
Again, the backup of the BIOS is a full backup of the entire chip. Using tools for a programmer you can write the entire dump to the chip in full.
This backup will retain any settings for voltages, frequencies, etc. So make sure you back it up when it’s in a state you want to return to, and not one that you don’t want to restore to.
‘Crisis Mode’ or ‘CMOS Clearing’
The insyde BIOS that the Steam Deck uses, also has a ‘recovery mode’ that may allow you to reset the BIOS settings without having to use a programmer.
There’s a button combination you can use to start up your Steam Deck that should clear any BIOS settings or revert it to ‘default’. This can also be referred to as a ‘crisis mode’ – some people refer to it as ‘clearing the CMOS’ but it definitely does a bit more than that.
Getting this to work is a little tricky:
- Shut the unit down, either from the OS or by holding power button for 10 seconds.
- Check that the unit is off. Trackpads should have no haptic feedback.
- While holding the volume – and “…” buttons, press the power button once.
- Keep holding volume – and “…” during the power button press and a few seconds after that, then let go.
If this doesn’t work for you, then this works best if you disconnect the battery internally to the Steam Deck and then do the combination while plugging in the USB power when holding down the buttons.
When you hear the first beep/chime start you may be able to hold the volume + button and go into the BIOS.
Doing these recovery steps may also work better if you have a copy of Smokeless_UMAF on hand and connected via USB when you also connect power, using a USB hub or dock and boot straight into the boot select menu, and choose your USB stick, rather than using the Steam Deck BIOS options for AMD CBS / PBS
These steps where you have to disconnect the battery does mean that you need to open the back of the Steam Deck. People have found that using a PH1 Philips screwdriver fits best, but be careful as it can be easy to mangle and strip the screw heads.
Another ‘Crisis Mode’ or BIOS Recovery Without a Programmer
The insyde BIOS also has a mode that will allow you to re-flash the BIOS without using a programmer. This is typically referred to as ‘Crisis mode’, but people typically rely on the above method to reset settings.
On a laptop or desktop computer, to enter this mode you would normally power on your computer with the ‘Windows’ key and ‘B’ key held.
You would also have a FAT32 formatted USB pen drive connected to your computer, on this would be a file. This file would not be your BIOS backup, but it would be a BIOS update file. On the steam deck, this would be called something like: F7A0110_sign.fd or F7A0110.fd, the latest version is F7A0121_sign.fd for the LCD Steam Deck and F7G0109_sign.fd for the OLED.
These BIOS files are available directly from Valve:
https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64/
jupiter-hw-suport-
xxxxxxxx.x-x-any.pkg.tar.xz
Where the ‘x’s are numbers relating to the date of the release, you typically want the most recent/highest number. These filenames can also end in .zst
, there will be additional files which are .sig
and these are typically used for verification of the other file. Alternatively, they’re directly available at the evlaV gitlab repository.
The bios file is in the path \usr\share\jupiter_bios
in the archive, the archive can be opened with tools such as 7-Zip
or Peazip
, if it isn’t clear, you only need the .fd
file.
On the USB pen drive, you need to rename the .fd BIOS file to this:
For LCD Steam Deck: F7ARecovery.fd
For OLED Steam Deck: F7GRecovery.fd
Note: Make sure you are using the correct BIOS for your Steam Deck, LCD or OLED have different BIOS files. F7A for LCD, F7G for OLED.
Make sure that your Steam Deck is fully charged, or you’re doing this via a powered dock before flashing, and do not remove the USB device or the dock, or power while flashing your Steam Deck.
With the USB drive connected to the Steam Deck, making sure it is the only storage you have connected, you will need to do the following to enter the ‘crisis mode’:
- Shut the unit down by holding power button for 10 seconds.
- Check that the unit is off. Trackpads should have no haptic feedback.
- While holding the volume – and “…” buttons, press the power button once.
- Keep holding volume – and “…” during the power button press and a few seconds after that, 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. Then an option should appear like this:
You can navigate with the track pad, or the d-pad, and press ‘a’ to choose ‘YES’.
Your screen should now change to the h2offt flash firmware tool like this, it will be rotated:
Thanks to the creator of the ‘smokeless_UMAF’ tool, after time with ghidra and HxD I have confirmed that this mode should exist on the Steam Deck, but I haven’t tried triggering it yet..
How do I Tinker with my BIOS?
SmokeyCPU has familiarised themselves sufficiently with the UEFI BIOS that they were able to create a tool to reveal the settings in the ‘Form browser’ that reveals the appropriate settings, configurations and options that are usually hidden on your computer. It wasn’t intended for the Steam Deck, but it works and shows the AMD CBS and AMD PBS options and all of the sub options. This tool is ‘Smokeless_UMAF‘ – Cryobyte33 uses this tool on their Steam Deck, and provides tips to do so.
Smokeless_UMAF, when saved to a FAT32 formatted USB drive, allows you to boot the Steam Deck and access a version of the ‘form browser’ (aka AMD CBS / AMD PBS settings), but only if your BIOS version of the Steam Deck is before version 115.
If it is not clear, you use this tool to load up a ‘form browser’ of options in your UEFI BIOS that are for your AMD APU, that controls the functions and interactions between it and the components in your Steam Deck. This means you can under-volt and overclock the CPU component, the GPU and also raise power limits, and power limits when ‘boosting’, and also settings for the RAM timings, among other functionality such as boot options, and features that aren’t necessarily broken out from the APU onto the main board from USB to ‘Camera’ and other functionality, we do not have a full documented list of what these options do.
Now while it’s possible to revert your BIOS version if you have access to the previous versions, and you can use the ‘h2offt’ tool that you can also use to backup your BIOS, you will likely lose out on any optimisations, fixes and other features that are deployed to Steam’s BIOS updates in future.
Modifying your BIOS without Smokeless UMAF
The Steam Deck community suddenly became concerned, had Valve done this intentionally? Frankly I would understand if they did, because a lot of people were seemingly ‘bricking’ their Steam Decks with careless abandonment and not knowing how to recover it. It was then pretty easy for them to say to Valve “my Steam Deck won’t turn on, can I have an RMA?” and that’s also the concern for members of the Steam Deck community with this new method, and maybe it is only a matter of time before Valve finds out, I even thought twice about writing this blog post.
When the 115, 116 or version 117 BIOS comes up, now that Smokeless_UMAF doesn’t readily work with it, how will they get their performance gains?
What can they do?
So they raised this with the creator of Smokeless_UMAF. Initially, SmokeyCPU wasn’t that interested, but like any good, intelligent and curious person, suddenly came out with a solution. SmokeyCPU had discovered that Valve had changed the BIOS such that the form would ‘unload’ after a certain initiation, and that’s mainly why it no longer loaded in the tool they created, regardless of AMD CBS now being ‘offset’.
After some digging in the UEFI specification, and also reverse engineering, SmokeyCPU produced a few lines of C Programming code that ‘unlocked’ the forms in the stock Steam Deck BIOS. There were both cries of joy, and cries of concern, while this code could not directly be compiled on the Steam Deck because Valve have purposefully restricted the packages and their contents, (glibc for example isn’t properly installed, and so you cannot setup your locales) someone can easily compile the code on another computer and share it, and then, the options are visible in your Steam Deck BIOS, which looks like this: (Thanks to dan2wik on the Steam Deck discord for the photograph.)
No longer do you need a bootable USB, the options are ‘just there’, at least until your BIOS is updated again by Valve as they tend to reset your settings to ‘default’. Updating the BIOS manually or from a future update from Valve will likely retain the unlock because it is modified in a different area than the BIOS update file (eg. F7A0114_sign.fd) updates.
Editing the values from the Steam Deck BIOS menu brings up an on-screen keyboard, and you can use the Steam Deck button, joystick, etc. to navigate the menu and options.
Though a full restore of an entire BIOS backup dump will remove the menu unlock if you are using a backup created, before there has been any modification made.
Okay, I want the BIOS Modification
The few lines of C to do the modification can be found at the Github link, but to make this ‘easier’ I have compiled the modification which you can download to your Steam Deck and simply run it along with a basic safety measure of backing up your Steam Deck BIOS.
Though it is purposefully not straight forward, and I have put into it a call to h2offt to backup your BIOS to ‘/home/deck’ before it makes the changes. You can get the tool and run it like this in a konsole terminal on your Steam Deck:
wget https://www.stanto.com/files/sdunlock -O /home/deck/sdunlock
chmod +x /home/deck/sdunlock
sudo /home/deck/sdunlock
And then shut down your Steam Deck so that it powers off, then boot into the BIOS with ‘Volume +
‘ and the ‘Power
‘ button, and you’ll have the extra menu options.
If you get the error “cannot execute binary file” this has meant my file hosting has corrupted the file and I need to re-upload it. You can likely find how to reach out to me by googling my username.
The tool doesn’t do anything ‘special’. It checks whether or not you are running the tool with ‘sudo’, and if you are, it tells you that it’s based on SmokeyCPU’s code to unlock the BIOS, and when you enter ‘ok’ it checks if you have already ran the tool, by looking for a previous BIOS backup (you only ever need to run the tool once) and if it does not exist, it runs the backup BIOS command, and tells you where it is stored, and then tells you to shutdown the Steam Deck. If you wish to re-hide access to the menus, then type ‘lock’ instead of ‘ok’, but be warned that there is not a check on this, it will just go ahead and make the change directly to the i/o ports. It also doesn’t clear any settings made, so those will still be saved until a Valve BIOS update. It does not backup the BIOS if you choose to lock your BIOS.
The unlock method has been tested on BIOS versions F7A0110, F7A0113, F7A0115, F7A0116 and F7A0117. The tool I compiled will check which version of BIOS you have that it can determine from your Steam Deck, and warn you if it is not one of these versions.
The unlock method has been tested on BIOS version F7A0118, F7A0119, F7A0120, F7A0121 and F7A0131 and it does not work, the method to make it work is not easy. There are details below on how you can revert your BIOS version and keep it there so that you can still use the AMD CBS and AMD PBS menus. This only works on the Steam Deck LCD.
The source for the tool is not currently public. You do not have permission to distribute the source code to the tool. Code it uses is freely available.
RyanRudolf (the 10 Minute Steam Deck Gamer) has an alternate script which you may want to check out.
Actually I Do Not Want to Mod my BIOS, Can I Still Undervolt?
Yes, you can undervolt, I believe also control TDP, and restore it in software using ‘RyzenAdj. ‘1/4 Life’ has put together a nice collection of scripts to make this into a systemd service for SteamOS, so that when you’re happy with the settings, it will restore them on boot, and it means if you do accidently enforce settings that ‘brick’ your Steam Deck, you can boot with a recovery USB and mount your SteamOS to revert it, or simply factory reset or re-image your Steam Deck.
Here’s a link to KyleGospo’s Steam-Deck-Software-Undervolt github where you can find the installation instructions.
BIOS version 118/119/120/121/131 also have undervolt settings available by default in the Steam Deck BIOS. You can set the values for SOC, CPU and GPU to a maximum value of -50mv each.
Settings that you Should Avoid
If you want to avoid bricking your Steam Deck LCD 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 -30 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.
There is Always a ‘Catch’ – Fast and Slow PPT
Changes to the TDP (Fast PPT and slow PPT) are not ‘saving’ (they’re being capped) with the unlock tool when set from the Steam Deck BIOS.
Valve have settings elsewhere in the BIOS (under Advanced) for controlling these settings as well as in the AMD CBS/PBS area, which means that it is being overridden if you set these values in the Steam Deck BIOS.
However, if you use Smokeless_UMAF, it doesn’t load the ‘Advanced’ section of the BIOS, therefore the values being set aren’t reset. Smokeless_UMAF only loads the AMD CBS/PBS forms, but presumably if you go back into the Steam Deck BIOS after setting with Smokeless_UMAF, you will encounter the same ‘reset’ problem.
The BIOS unlock tool will need to be updated (or used with another tool) to adjust this (and basically patch out the Valve override) but this has implications, according to SmokeyCPU, such as breaking the valid signing of the UEFI BIOS.
You have a choice:
- Use the efi runtime patcher.
- Use Smokeless_UMAF to change these settings (because it should now work) and re-apply when needed.
There’s the option to override the Fast and Slow PPT in SteamOS with:
- NGnius PowerTools with DeckyLoader
- RyzenAdj in Windows/Linux Or
- Directly writing to the appropriate hwmon sys class in Linux.
Also check the PPT values they are set to by running the following in the Konsole terminal in SteamOS:
sudo cat /sys/class/hwmon/hwmon4/power1_cap
sudo cat /sys/class/hwmon/hwmon4/power2_cap
In BIOS version 118/119 and above these are now:
sudo cat /sys/class/hwmon/hwmon5/power1_cap
sudo cat /sys/class/hwmon/hwmon5/power2_cap
Equally you can set these from a Konsole terminal, and they will revert to whatever is set in the BIOS on reboot/reset:
echo 18000000 | sudo tee /sys/class/hwmon/hwmon4/power1_cap
echo 18000000 | sudo tee /sys/class/hwmon/hwmon4/power2_cap
In BIOS version 118/119 and above these are now:
echo 18000000 | sudo tee /sys/class/hwmon/hwmon5/power1_cap
echo 18000000 | sudo tee /sys/class/hwmon/hwmon5/power2_cap
In this example, we’re setting the Fast and Slow PPT (overall TDP) to 18 watts. You will likely want to disable the new ‘Fan Curve’ in settings in SteamOS so that the fan reacts faster and cools better.
Note: These Change With SteamOS Updates
I keep discovering that the hardware monitoring of these change regularly. At the time of writing on the Steam Deck OLED, these are not even listed under /sys/class, they are under /sys/devices/
So how do you find them?
If you use the command:
sudo find /sys/ -name *power1* 2>/dev/null
And:
sudo find /sys/ -name *power2* 2>/dev/null
You will be given locations for power1_cap and power2_cap, the reason why we’re using asterisks (*) here is so that I can show you we have more information about power than simply these ‘caps’, here is an example output:
/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/hwmon/hwmon6/power2_cap_min
/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/hwmon/hwmon6/power2_average
/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/hwmon/hwmon6/power2_cap_max
/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/hwmon/hwmon6/power2_cap_default
/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/hwmon/hwmon6/power2_label
/sys/devices/pci0000:00/0000:00:08.1/0000:04:00.0/hwmon/hwmon6/power2_cap
We can see here that there’s ‘average’, ‘cap_default’, ‘label’, etc. In fact, ‘power1_cap_default’ is set to 30w, or 29w, the Steam Deck actually scales up its power usage and can use over the default 15w up to this value. Which tells us that the Steam Deck mainly manages itself with a balance of power and thermals from a number of different sensors and settings.
What Are ‘Known Good’ Settings to Under-Volt?
Firstly, do not touch ‘pstate’ or ‘pstate0’ values. These very easily ‘brick’ your Steam Deck. You never need to touch them.
Anecdotally, people have managed the following settings, and have them stable. The settings are in the order of CPU / SOC / GFX and listed by their discord names:
Stanto: -20 / -20 / -20
JDGBolt: -20 / 0 / 0
xzythundergodfist: -70 / -55 / -55 | -65 / -50 / -50
doomslaya: -30 / -50 / -55
dan2wik: -27 / -20 / -41 | -40 / -15 / -35 (and -5 cvip)
linkstar612: -20 / -20 / -20
goatrafa: -25 / -25 / -50
therealmccoy: -30 / -30 / -50 | -20 / 0 / -40
baldsealion: -35 / 0 / -25
max: -20 / -20 / -40
acekard: -38 / 0 / -17
aerir: -30 / -30 / -30
dan2wik has two Steam Decks and noticed particularly that they had different tolerances for the settings, it could be unstable if it was sat at idle with the fan going at 100%.
doomslaya found that any more on the cpu/soc and they had a ‘hard crash’.
baldsealion found that if they went any lower on the gpu, they would have bad artifacting, and acekard found at -40gpu they had games which crashed.
We tend to refer to this as the ‘silicon lottery’, even if you go down in -5 or -10 increments, you could end up with an unstable or ‘bricked’ Steam Deck, which is why you should be careful and have a BIOS backup in case the other recovery methods do not work. Even on the Steam Deck OLED.
Where are the Undervolt/Overvolt Settings in the Steam Deck LCD BIOS pre 118/119?
You can still use Smokeless_UMAF, or you can now boot into your Steam Deck BIOS by pressing VOLUME+ and POWER from the Steam Deck being turned off. From pressing the button combination you can now go to ‘Setup Utility‘ with the D-Pad and pressing ‘A’, and then navigate down to:
AMD CBS > SMU Debug Options > SMU Feature Config Limits
Once you have navigated to this area, you will want to change the following option:
SVI3 Voltage Control > Auto to Manual
This will unlock further options which allow you to set a Voltage Offset for each part of the AMD APU. Set these options from Auto to Negative to ‘undervolt’, and Positive, to ‘overvolt’
VDDCR_VDD Voltage Offset Sign
VDDCR_SOC Voltage Offset Sign
VDDCR_GFX Voltage Offset Sign
Then you can change the value underneath them from 0 to the value that you want to overvolt or undervolt to. Keeping in mind that you may ‘brick’ your device if you go too extreme, and it is considered sensible to change these in small increments. To be safe and careful you could change these in increments of one. If you are confident and have a BIOS backup, and a chip programmer, you could go with increments of 10, or what you are comfortable with, but keep in mind the experiences of other people quoted above.
The names of the respective values you will change may be obvious but they are here:
VDDCR_VDD Voltage Offset
VDDCR_SOC Voltage Offset
VDDCR_GFX Voltage Offset
You may have also noticed that there are two further options that refer to ‘CVIP’ such as:
VDDCR_CVIP Voltage Offset Sign
VDDCR_CVIP Voltage Offset
CVIP is the Vision Image Processor cores on the AMD VanGogh APU, these are mostly not used. A tested value for this is setting it to -5mw, as discovered by dan2wik:
Excessive cvip undervolts seem to only cause hard power loss. (…) CVIP voltage reduction on 1 deck was causing immediate performance loss, and on the (other) deck lost performance at -10mv and had data bus idle state issues at -15mv so I put it at -5mv. My other deck is able to run -35mv cpu and -40mv gpu. Touching cvip at all on it causes performance anomalies though.
dan2wik [1][2][3], Steam Deck Discord
There are two ‘DSPs‘ on the VanGogh in the Steam Deck, these are from Cadence, and are called the Vision Q6 DSP (2 cores) and Vision C5 DSP (2 cores). Unfortunately there is not really any software that supports them, for software from Cadence you unsurprisingly have to pay them, and AMD’s MiVisionX toolkit is windows only. If the support for Radeon Open Compute is anything to go by, then it is probably the case that it requires custom compilation or work since VanGogh is an APU.
Can I Use this to Run my RAM at 6400MT/s?
People have very easily bricked their Steam Deck LCD doing this and then struggled to recover from it. It should be recoverable, but remember that you may have to use a programmer to re-flash your BIOS chip. Note that the Steam Deck OLED already runs it RAM at 6400mt/s.
Make sure that you’re using BIOS version 110, 115 or 116. BIOS 113 and BIOS 114 have changes with its SRAM settings that do not allow for stable settings.
In case you were not aware, the RAM in the Steam Deck is running slower than it is designed to. This appears partly to be to save some power while not losing too much performance, however at least 3% performance gains can be seen from setting it at the speed that it is meant to run at.
Check your RAM type in your Steam Deck as to whether or not it can run at 6400MT/s, in my Steam Deck I have the k3lkbkb0bm-mgcp, Samsung RAM. I’m not sure of the model of the Micron RAM but I’m told that’s rated at 6400MT/s. You can check the model of your RAM under:
Settings -> System -> Model/Serial Numbers
And then look it up online.
If you’re doing the RAM ‘overclock’ , you will have to adjust any under-voltage / undervolt to be a lot more conservative than you have already, running the RAM faster does not like being starved of power.
So Yes. Here are the settings by dan2wik from the Steam Deck discord – only do the following if you’re comfortable with using a chip programmer to reset your steam deck:
AMD CBS > UMC Common > DDR Common > DRAM Timing > Accept > Overclock: Enabled
AMD CBS > UMC Common > DDR Common > DRAM Timing > Accept > Memory Clock Speed: 3200MHz
AMD CBS > UMC Common > DDR Common > DRAM Controller > DRAM Power > Power Down Enable: Disabled
AMD CBS > UMC Debug > DDR Debug > DDR DRAM Timing > Enforce Supported Frequency: Disabled
AMD CBS > UMC Debug > DDR Debug > DDR DRAM Controller > DDR DRAM Power > Power Down Enable: Disabled
AMD CBS > UMC Debug > LPDDR Debug > LPDDR Dram Controller > Lowest DDR Speed: DDR3200
AMD CBS > UMC Common Options > DDR Common Options > DRAM Controller Configuration > DRAM Power Options > Power Down Enable : disable
AMD CBS > UMC Debug Options > DDR Debug Options > DDR DRAM Controller Configuration > DDR DRAM Power Options > Power Down Enable: Disabled
If dram overclocking fails, you may have a chance at recovering by re-plugging or disconnecting the battery internally, and booting directly to smokeless via USB with vol- and power when plugging in external power
dan2wik, Steam Deck discord
If you find that these settings are unstable on your Steam Deck, then you may benefit form increasing the RAM voltage (not the voltage of the RAM Controller). You can change this by going to:
AMD PBS > MEM VDDQ voltage
The default is ‘134’, this value is counter-intuitive in that if you reduce the value, it increases the voltage to the RAM. There have been a number of users that have commented reducing this value to ‘114‘, ‘124‘ or ‘132‘ has increased stability.
Increasing the RAM speed to 6400 can cause instability with undervolt settings, especially with the SoC as the SoC voltage handles memory control.
These Settings Don’t Work for Me?
They do not work for everyone. There has been some commentary that the settings work with BIOS 110, but that they do not work with BIOS 116. Alternatively you could try only setting the following settings:
AMD CBS > UMC Common > DDR Common > DRAM Timing > Accept > Overclock: Enabled
AMD CBS > UMC Common > DDR Common > DRAM Timing > Accept > Memory Clock Speed: 3200MHz
AMD CBS > UMC Common > DDR Common > DRAM Controller > DRAM Power > Power Down Enable: Auto
AMD CBS > UMC Debug > DDR Debug > DDR DRAM Timing > Enforce Supported Frequency: Auto
AMD CBS > UMC Debug > DDR Debug > DDR DRAM Controller > DDR DRAM Power > Power Down Enable: Disabled
AMD CBS > UMC Debug > LPDDR Debug > LPDDR Dram Controller > Lowest DDR Speed: DDR3200
AMD PBS > MEM VDDQ VOLTAGE: 144
Reddit
These settings are slightly different, but enough so that they work for some people.
Another user has managed to have stable settings with BIOS version 116 and have the memory set to 6400. This is somewhat unusual as they have mixed in undervoltage and overvoltage settings for the CPU, SOC and GFX. You should not copy the overvolt/undervolt settings exactly, as you may need conservative settings for your Steam Deck. Also make sure you have backed up your BIOS first, and you are aware of the recovery methods. Their settings are as follows:
AMD CBS > UMC Common > DDR Common > DRAM Timing > Accept >
Mini_Basher_15, CryoBytes33 discord
Overclock: Enabled
AMD CBS > UMC Common > DDR Common > DRAM Timing > Accept >
Memory Clock Speed: 3200Mhz
AMD CBS > UMC Common > DDR Common > DRAM Controller > DRAM Power >
Power Down Enable: Auto
AMD CBS > UMC Debug > DDR Debug > DDR DRAM Timing >
Enforce Supported Frequency: Auto
AMD CBS > UMC Debug > DDR Debug > DDR DRAM Controller > DDR DRAM Power >
Power Down Enable: Disabled
AMD CBS > UMC Debug > DDR Debug > DDR DRAM TIMING CONFIGURATION > DRAM TIMING USER CONTROLS > MANUAL > UCLKDIV1MO >
ENABLED
AMD CBS > UMC Debug > LPDDR Debug > LPDDR Dram Controller >
Lowest DDR Speed: DDR3200
AMD PBS > MEM VDDQ VOLTAGE >
124
AMD CBS > SMU Debug Options > SMU Feature Config Limits > SVI3 Voltage Control >
Manual
AMD CBS > SMU Debug Options > SMU Feature Config Limits >
VDDCR_VDD Voltage Offset Sign : –
AMD CBS > SMU Debug Options > SMU Feature Config Limits >
VDDCR_VDD Voltage Offset: 50
AMD CBS > SMU Debug Options > SMU Feature Config Limits >
VDDCR_SOC Voltage Offset Sign : +
AMD CBS > SMU Debug Options > SMU Feature Config Limits >
VDDCR_SOC Voltage Offset: 42
AMD CBS > SMU Debug Options > SMU Feature Config Limits >
VDDCR_GFX Voltage Offset Sign : –
AMD CBS > SMU Debug Options > SMU Feature Config Limits >
VDDCR_GPU Voltage Offset: 50
If you are struggling to recover your Steam Deck from settings that do not boot, then here are the steps for quick reference:
– Shut the unit down, either from the OS or by holding power button for 10 seconds.
– Check that the unit is off. Trackpads should have no haptic feedback.
– While holding the volume – and “…” buttons, press the power button once.
– Keep holding volume – and “…” during the power button press and a few seconds after that, then let go.
vJill, Valve Employee, Reddit
If this doesn’t work for you, disconnect the battery internally and then try it with the battery still disconnected. Try to go straight into the bios with the volume – and power button combo when powering on after you hear the beep of it powering on, and boot into smokeless_umaf if you can to change the settings.
There have also been questions about FCLK and if it’s possible to set this on the Steam Deck. Setting or enforcing FCLK can be ‘broken’, and can ‘brick’ your Steam Deck on BIOS versions 115, 116 and 117, if you are using version 110 it may work for you.
AMD CBS > SMU Debug Options > FCLK > 1600
AMD CBS > UMC Debug Options > DDR Debug Options > DRAM Timing User Controls > Manual
AMD CBS > UMC Debug Options > DDR Debug Options > DRAM Timing User Controls > UclkDiv1M0 > Enabled
You do not have to set this, and there is some debate as to whether or not it actually helps.
How can I Prevent my BIOS from updating? What Will Happen to my Settings?
Valve will ultimately release new BIOS updates. The act of updating the BIOS (or reverting it) resets the settings for it. That means you will lose:
- The ‘unlock’ for the AMD CBS/PBS menu
- Any under-voltage, over-clocking, or other settings that you put in place
You have a choice, you can either accept this and attempt to re-apply the ‘unlock’ for the menu, and re-apply the settings, or you can attempt to prevent your BIOS from updating or block BIOS updates. Updating SteamOS may still revert these settings. First it helps to block the bios update service:
sudo systemctl disable jupiter-biosupdate.service
sudo systemctl mask jupiter-biosupdate.service
JDGBOLT, Steam Deck Discord
This sets a mask to the service that updates your Steam Deck BIOS, you can also ‘unmask’ it and then ‘enable’ it. This should ‘survive’ updates but it is entirely possible it will not, and that you also need to setup a file.
You should also do the following to block the BIOS update, as specified in the file:
/usr/bin/jupiter-bios-update
Where it says ‘do nothing if this exists’:
Create an empty file: /foxnet/bios/INHIBIT
dan2wik, Steam Deck Discord
To create the file mentioned above, you can run the following commands from a konsole terminal:
sudo steamos-readonly disable
sudo mkdir /foxnet
sudo mkdir /foxnet/bios
sudo touch /foxnet/bios/INHIBIT
sudo steamos-readonly enable
Which should prevent the BIOS from being updated now and in future updates. You could do both (masking the service and creating the INHIBIT file) just to be extra certain, but there is still a chance that it will be reverted by future updates. This will not prevent your Steam Deck from telling you that there’s an update available.
To revert these settings you will want to do these commands, depending on which action you put in place:
sudo steamos-readonly disable
sudo rm -r /foxnet
sudo steamos-readonly enablesudo systemctl unmask jupiter-biosupdate.service
sudo systemctl enable jupiter-biosupdate.service
There may be some rare circumstances when you cannot unmask a service.
Note that if you block the BIOS updater, you will not benefit from BIOS improvements if you do this, and if you need support from Valve they will likely check to see if you’re using the latest BIOS and why you are not.
How Can I Revert or Update my BIOS Manually?
As we have established, the Steam Deck uses the insyde UEFI BIOS system. insyde has tools for updating, modifying and developing the BIOS that they do not typically release to the public, they release them to developers and original equipment manufacturers which have a habit of passing a version of it onto the user so they can update the BIOS in their laptop. Even then it tends to be a ‘cut down’ or ‘watered down’ version of the tool. Of course, these tools have been ‘leaked’ and there are various places on the internet to find them. These tools also have ‘false positives’ with Windows Defender because they are BIOS tools and are either unsigned, had their signature revoked, or have not been signed by an original equipment manufacturer. Keep this in mind if you use Windows insyde tools.
There are a couple of reasons why you would want to downgrade your Steam Deck BIOS:
- Valve have recently updated F7A0118_sign.fd or BIOS 118 and while this says in its release notes that it includes “options for undervolt” it has currently disabled Smokeless / Smokeless_umaf / smokelessumaf. Same goes for F7A0119_sign.fd
- Memory ‘overclock’ to 6400 is known to be more stable in BIOS 110 than BIOS 116
SteamOS comes with a version of the h2offt flash tool that we can use to update the BIOS and provides the appropriate platform.ini, msg_cht.ini and msg_eng.ini, because it is what Valve use when you update your SteamOS. It can be currently used to downgrade or upgrade the BIOS. It is situated at:
/usr/share/jupiter_bios_updater
The latest BIOS that you are using is situated at:
/usr/share/jupiter_bios
The BIOS update from Valve is typically named along the lines of F7A0115_sign.fd or F7A0116_sign.fd – the BIOS is certified and signed with a Microsoft certificate, partly for the purpose of tamper prevention but also for Windows to be able to trust it.
Users of the Steam Deck have been keeping their BIOS update files over time, and there’s also a mirror of the BIOS updates. Note you will not want to go back ‘too far’ with BIOS versions, if at all, because previous versions lack support for some different types of RAM in the Steam Deck, in fact some of them are for prototype Steam Deck hardware versions that are not publicly (typically) available. For the sake of this write-up, at present two are popular: Version 110 and 116, as 116 requires the BIOS unlock and is the latest available that supports the unlock method, unlike 118 / 119.
First, we shall backup our BIOS. I know this is already listed further up the page, but you might have skipped it:
sudo /usr/share/jupiter_bios_updater/h2offt /home/deck/biosbkp.fd -O
This will backup your BIOS and your current settings and overrides.
In SteamOS, to update or downgrade to 110 you can run the following from a Konsole terminal, we will pull the 110 BIOS from the evalV github (should this go down I’ll provide a mirror for it):
wget https://gitlab.com/evlaV/jupiter-hw-support/-/raw/0660b2a5a9df3bd97751fe79c55859e3b77aec7d/usr/share/jupiter_bios/F7A0110_sign.fd?inline=false -O /home/deck/Downloads/F7A0110_sign.fd
sudo /usr/share/jupiter_bios_updater/h2offt /home/deck/Downloads/F7A0110_sign.fd -U
The -U parameter should show a confirm message. When flashing, your Steam Deck will immediately restart and apply the BIOS file. It does not check if the BIOS is a different version and any BIOS settings you had previously will be lost.
Remember: To prevent your Steam Deck from updating the BIOS you will need the INHIBIT file to be in place as described above
Here are some useful commands:
sudo /usr/share/jupiter_bios_updater/h2offt -SC
This will show you your current BIOS version and Model Name
sudo /usr/share/jupiter_bios_updater/h2offt -?
This will show you the commands you can pass to h2offt
sudo /usr/share/jupiter_bios_updater/h2offt -RMP
This will show you the Rom Map in BIOS
There are other options, such as dumping the ‘cmos’ and writing to certain areas of the BIOS, but you do not need to do any of that to flash a new BIOS.
How do I Overclock my Steam Deck GPU and CPU?
In the Steam Deck BIOS, whether you have unlocked the menus, or if you’re using the Steam Deck OLED with BIOS 109, or you are using smokeless_umaf you can encourage the Steam Deck to go above its default speed limits. The default max CPU limit is 3.5Ghz (3500Mhz) and the default max GPU limit is 1.6Ghz (1600Mhz). The Steam Deck will scale the speed of the CPU and GPU depending on the available power budget. This is a shared value of 15w capped by default, but the Steam Deck OLED should be able to scale up to 30w shared.
The settings that you can change in the BIOS raise these maximum values, so that if the Steam Deck has thermal capacity, and also power available, it will increase the speed of either the GPU or CPU, though the way in which it balances these is by some factor decided by Valve and there is a symbiotic type relationship between CPU speed and GPU speed, for example if you limited the GPU speed to 1.2Ghz, then the GPU would scale higher. Some people do this with NGnius’ power tools (github mirror) but if you change the CPU speed with this tool, the Steam Deck LCD currently has an upper limit of 3.5GHz thanks to an amdgpu limitation, which has a temporary workaround due to CPPC issues.
Here are the options you can change to raise the CPU speed on the Steam Deck LCD:
AMD CBS > SMU Debug Options > SMU Feature Config Limits > CclkFmaxOverride Control > Manual
AMD CBS > SMU Debug Options > SMU Feature Config Limits > CclkFmaxOverride > value
For the value, set to 3500 or higher, though people have difficulty reaching 4000 with default power and temperature limits.
Here are the options you can change to raise the GPU speed:
AMD CBS > SMU Debug Options > SMU Feature Config Limits > GfxclkFmaxOverride Control > Manual
AMD CBS > SMU Debug Options > SMU Feature Config Limits > GfxclkFmaxOverride > value
For the value, set to 1600 or higher, though people have difficulty reaching 2000 with default power and temperature limits.
Note that these are not the Force options, forcing your GPU or CPU overrides can lead to a bricked Steam Deck that requires a BIOS recovery method using a chip programmer.
This is different in the Steam Deck OLED which as of BIOS F7G0109 you can set the max CPU and GPU from the BIOS near where you undervolt:
The settings for these are exactly the same as for the Steam Deck LCD stated above. Except that Valve have set a maximum of 4200 for the CPU, and a maximum of 2200 for the GPU. There is no harm or damage in setting these values higher than the stock values, the Steam Deck will simply increase the speeds to use these if it can.
If you’re having trouble setting these options, use the touch screen to select the text box and an on screen keyboard will appear. You want to set the ‘Auto’ field to ‘Manual’ and then another option will appear where you can set the frequency that you want.
You can likely force an underclock on the CPU and GPU here by setting lower than normal values.
How can I Override Power and Temperature Limits to Overclock?
Changing your power limits will mean a vast increase in temperature and your Steam Deck may shut itself off to protect itself. Scroll up to the section in this blog post about Fast and Slow PPT for one method on how to adjust the power limits.
Some people find that this is not enough, or that they have modified their Steam Deck to have all sorts of crazy methods of cooling. It is possible to completely disable the power limits, also known as the ‘power throttler’ which will allow the Steam Deck to scale as high as it needs to.
Note that there is no known way of doing this on the Steam Deck OLED at the moment due to not having access to these options in the BIOS.
The setting to do so is here:
AMD CBS > SMU Debug Options > SMU Features > Package Power Throttler > Disabled
Your Steam Deck may shut down with this set to ‘disabled’ as it can easily hit its thermal limit, even if it is for a brief second.
By default the vangogh APU will thermal throttle or activate its fail safes if it goes near a certain temperature, we do not know what temperature this is by default in the BIOS, but the utmost maximum value is 105 degrees centigrade. It only has to hit this temperature for less than a few seconds before it switches off the Steam Deck, you may not even notice it hits that temperature.
You can ensure that the Steam Deck is using this limit, or reduce it if you want by setting the following options:
AMD CBS > SMU Common Options > Thermal Control > Manual
AMD CBS > SMU Common Options > TjMax > Value
For example, you can set the value to 95, for 95 degrees centigrade.
Note that you cannot rely on tjmax alone to throttle your CPU or GPU speed, it either does not behave this way and it does not respond fast enough, or it is simply setting the max value that can be tolerated before the Steam Deck will be shut off.
Good Luck
Hopefully this guide has given you more than you need to know for unlocking the Steam Deck BIOS, under-volt and over-clock settings, and recovering your Steam Deck in the event of something catastrophic happening.
I update the ‘unlock tool’ above with functionality when I find it is useful, at present I am wondering if it is worthwhile having it handle downgrading the BIOS for people who do not simply want to unlock the BIOS, and also put in place the measures to prevent the BIOS from updating. However, most people find the methods to do what is in this blog post via other routes and handle it all themselves, which is the great part about the Steam Deck community and how accessible the hardware is.
Addendum: How Can we Unlock BIOS 118 or BIOS 119 or Above?
The 119 and 121, and OLED BIOS has been ‘unlocked’ but it is not easy. User lowkeyloki2151 on the Steam Deck discord, with help from SmokeyCPU and knowing what version of certain InsydeH2O tools to use, managed to patch together a working BIOS that is unlocked on the LCD Steam Deck, and add 32GB RAM support. Along with setting their RAM to 6400 MT/s
BIOS 118, BIOS 119, BIOS 120, BIOS 121 and BIOS 132 on the LCD Steam Deck, and every OLED BIOS contains a neutered AMD CBS and AMD PBS forms. These have to be replaced, and doing so is not easy. UEFITool’s alpha does not allow you to save the BIOS when attempting to edit or replace parts, so you have to use something else. InsydeH2OEZE 100.00.03.11 which is a proprietary tool from Insyde, and they are not happy if someone distributes it.
After editing the BIOS and replacing the AMD PBS and CBS forms, which are exported from BIOS 116, that is the first part of the journey. Then you need to ‘unlock’ the forms, how has not been shared, and flash the modified BIOS with a chip programmer. You may be able to ‘sign’ the BIOS if you use iEFIFlashSigner.exe or signtool.exe, using the platform.ini that the steam deck supplies with h2offt and setup appropriately, but again these are packaged together with proprietary Insyde BIOS tools and not meant for distribution. I have had success with simply extracting the header and footer data from signed BIOS .fd files that Valve shares, and inserting them back into dumped BIOS for them to then be recognised by h2offt, but I have not managed to get the BIOS to flash using the tool this way.
Editing the forms and updating the Steam Deck BIOS does work, but you have to use a chip programmer to flash the modified BIOS to the Steam Deck, and the appropriate software and tools to inject the forms into the BIOS.
While replacing the forms in the Steam Deck BIOS is definitely a way to go, there are ways to temporarily load the forms using an EFI Patcher from SmokeyCPU.