Framework Laptop 16 Ryzen 7040 BIOS 4.04 Release STABLE

Updating from 3.0x

Update sequence for AMD Ryzen™ 7040 Series Mainboard and the NVIDIA® GeForce RTX™ 5070 Graphics Module:

  1. If you are planning to use your Keyboard (1st Gen), RGB Macropad (1st Gen), or Numpad (1st Gen), you’ll first need to update your keyboard firmware using this link.
  2. Update your Framework Laptop 16 (AMD Ryzen 7040 Series) BIOS to the latest by following the instructions on this link.
  3. Replace the Graphics Module using this guide: Expansion Bay Module Swap.
  4. Update your driver bundle using this link.

This release includes two major updates:

  1. We’ve changed the keyboard standby/lid-close behavior to suspend the input device when the lid is closed, preventing unintended waking. Before updating your laptop to BIOS 4.04 from 3.0x, you’ll need to update Keyboard/Numpad/MacroPad firmware to 0.3.1, following the instructions here. If you already performed this and are on 4.0x there is no need to update again
  2. This release includes support for NVIDIA® GeForce RTX™ 5070, which also needs Driver Bundle 3.02 or newer. The BIOS version 4.0x is a mandatory requirement to support the NVIDIA® GeForce RTX™ 5070.

Highlights

  1. Update AMD PhoenixPI-FP8-FP7_1.2.0.0e.
  2. Modified the F2 key in the F12 Boot Menu to go to the setup menu instead of the settings menu to allow easier navigation to secure boot settings.
  3. Fixed an issue where the system was unable to boot from partially locked self-encrypting drives (SEDs).
  4. Fixed an issue where the CPU frequency could become locked at 545MHz under energy(battery) saver mode.

Note:

  • The BIOS version 4.0x is a mandatory requirement to support the NVIDIA® GeForce RTX™ 5070.
  • Once you update to version 4.04, the only compatible downgrade path is to BIOS 3.05 or any newer version (this restriction applies only if you are using UMA graphics or the AMD RX7700).

You can check your current BIOS version following the steps here to determine if you are on the latest release.

Subscribing to release notifications

If you want to subscribe to new release notifications you can now opt in through this link to receive an email when we release a new BIOS or driver update for your Framework Laptop.

Downloads

Windows

Download Link SHA256
Framework_Laptop_16_Amd_Ryzen7040_BIOS_4.04.exe 95F82B2130BA467262DEB0DFA3071F7AF5E7627B6B9E9B33522694EAC1BD4D27

Instructions for Windows Installer:

  1. Run the .exe.
  2. Click yes to reboot.
  3. Wait for the firmware progress bar to complete, and then the system will reboot.
  4. If you are updating a system in standalone mode, please pay careful attention to the standalone update process below.

Please note that you must update with a charger attached.

Linux/LVFS

Please note that you must update with a charger attached, then run:

fwupdmgr refresh --force

then

fwupdmgr get-updates

then

fwupdmgr update

Please note that you must update with a charger attached.

LVFS may not update if the battery is 100% charged. LVFS uses the battery status to determine if it is safe to apply updates. However if our battery is at 100% and the charger is off, we set the battery charging status to false. In this case you can discharge your battery a few percent, then plug in AC again and run fwupdmgr update.

Linux/Other/UEFI Shell update

Download Link SHA256
Framework_Laptop_16_Amd_Ryzen7040_BIOS_4.04_EFI.zip 592D7251892E25F8E4FFD66F9B1A5F4FF62D84C8AD7D798C2CEB3DF86A13272A

Note that if you use the EFI shell update with Windows, you should suspend Bitlocker if enabled before updating using the EFI updater.

Instructions for EFI shell update:

  1. Extract contents of zip folder to a FAT32 formatted USB drive. Cleanly unmount the drive before physically removing it, otherwise the BIOS update may not function correctly.
  2. Attach a charger to your device while updating.
  3. Boot your system while pressing F12 and boot from the thumb drive.
  4. Let startup.nsh run automatically.
  5. Follow the instructions to install the update.

Security Fixes

Module Name Vulnerability Score
CVE-2025-62626 Improper handling of insufficient entropy in the AMD CPUs could allow a local attacker to influence the values returned by the RDSEED instruction, potentially resulting in the consumption of insufficiently random values. 7.2
CVE-2025-54502 Incorrect use of boot service in the AMD Platform Configuration Blob (APCB) SMM driver could allow a privileged attacker with local access (Ring 0) to achieve privilege escalation potentially resulting in arbitrary code execution. 7.1
CVE-20225-54514 Improper isolation of shared resources on a system on a chip by a malicious local attacker with high privileges could potentially lead to a partial loss of integrity. 4.8

Enhancements

  1. Update AMD PhoenixPI-FP8-FP7_1.2.0.0e.
  2. Modified the F2 key in the F12 Boot Menu to go to the setup menu instead of the settings menu to allow easier navigation to secure boot settings.

Fixes

  1. Fixed an issue where the system was unable to boot from partially locked self-encrypting drives (SEDs).
  2. Fixed an issue where the CPU frequency could become locked at 545MHz under energy(battery) saver mode.

Component Versions

This BIOS update is a bundle of updates to multiple embedded components in the system.

Not all of them use the same version number.

BIOS 4.04 Updated
EC ec_404_3050f2d Updated
PD 0.0.21 Same
NVIDIA® GeForce RTX™ 5070 PD 0.0.22 Same
AMD PI 1.2.0.0e Same

Reporting Issues

To report issues we have created a public issue tracker on github. Issues · FrameworkComputer/SoftwareFirmwareIssueTracker · GitHub We hope that this is a better way to track issues with community involvement moving forward as we have found it difficult to both gather relevant information about issues people are reporting on the forums, and track the issues through their lifecycle in a transparent way.
If you do experience an issue with the update that is related to your system firmware, please post as complete a description as you can, including relevant system information, and external peripherals. Please note that we do not currently have a SLA for responding to issues on github, but we will be reviewing them through the bios release process, and will review them for future updates as well.

If you have an issue regarding hardware, broken devices, returns, etc, this is not the place, please contact support.

Known Issues

  1. Type-c connection may be unstable with some Apple phones.
  2. Cannot negotiate charging for certain portable EPR power banks.
  3. If a device is plugged into an expansion card slot during the update, all USB3/DP functionality will be lost until the device is removed and reinstalled, or the system is fully shut down and powered on again. (Power off, unplug the charger, wait 90 seconds, and then power on again to recover). This issue has an occasional failure rate.
  4. Intermittent CPU frequency lock at 545MHz following S3/Modern Standby resume.
9 Likes

Thanks for the update! I imagine a lot of people (myself included) will be happy to know the 7040 series hasn’t been left behind with the release of the AI 300 series, that one of the 545MHz bugs has been resolved, and that another of the 545MHz bugs has been identified/confirmed.

Looking forward to further updates :slight_smile:

5 Likes

I applied this update. Very disappointed to see the most obvious performance degrading issue reported here and here has still not been fixed. Come on guys.

1 Like

You normally release the source code to the EC on github.
Where is the source code for this ec_404_3050f2d ?

We are still collaborating with AMD on these two issues. Regarding the 35W CPU lock, we’ve observed that when the dGPU enters BOCO mode, the PMF table fails to apply our defined values. It appears the AMD mechanism reverts to chipset default values, effectively capping the CPU at 35W. We are currently waiting for AMD to identify the root cause of this override.

1 Like

I have pushed it to github. Framework Laptop 16 Ryzen 7040 now uses the branch fwk-tulip-29169.

5 Likes

@Quin_Chou
So, you have updated the

I.e. FrameworkComputer/EmbeddedController on the fwk-tulip-29169 branch.

Have you also updated the zephyr branch:

I.e. FrameworkComputer/zephyr on the fwk-main branch.

I ask, because as they are, it does not seem to compile/build.

Both branches are needed together to build the EC firmware.

No update for zephyr, still the same. The latest commit is upstream merged.

2 Likes

@Quin_Chou
Thank you very much for the confirmation.
I guess I must be doing something wrong.

I can’t seem to update the keyboard firmware. I believe fwupd is too old (it’s version 1.9.x). Is there any way to do it from Linux, or will I have to boot into Windows?

Edit: nevermind, I found the UF2 settings on the instructions, not sure how I missed them.

You can update the fwupd tool, then do the update. If you want to use Windows, it also works.

Have you read my message here: FW16 7040 BIOS 4.03 - CPU power locked at 35W (45W with 240w PSU) max when dGPU is asleep · Issue #146 · FrameworkComputer/SoftwareFirmwareIssueTracker · GitHub

Specifically this:

When the dGPU turns on, STT LIMIT dGPU is set to 51°C (ot 57°C depending on the adapter, …, anyway), which clears the overheating signal as STT VALUE dGPU becomes lower than STT LIMIT dGPU, so the AMD SMU is able to rise the STAPM LIMIT to reach the rated 54W for the APU.

To test if i could replicate even when the dGPU is off, I first reverted back to default bios settings (to be sure that there were no interference from my specific settings), then i launched a CPU+iGPU stress test and compared the APU power limit/consumption while STT LIMIT dGPU is set to the default 0°C VS 51°C via ryzen_adj, and the results are pretty clear: STT LIMIT dGPU == 0°C => 35W VS STT LIMIT dGPU == 51°C => 54W

Is the partially locked self-encrypting drives fix the same one from Cannot boot from partially locked self-encrypting drives · Issue #42 · FrameworkComputer/SoftwareFirmwareIssueTracker · GitHub? Just checking before I update off the test version I was sent (4.03) that has been working well

Or even better, this comment: FW16 7040 BIOS 4.03 - CPU power locked at 35W (45W with 240w PSU) max when dGPU is asleep · Issue #146 · FrameworkComputer/SoftwareFirmwareIssueTracker · GitHub

Which describes very precisely what you need to do to solve this issue.

TLDR

This single ACPI function call is enough to allow the CPU to reach its rated power limit, so the fix is easy for Framework: Update the STTC “dGPU off” (index >= 31) entries so that field 9 STT LIMIT dGPU is defined to a valid temperature, identical to the corresponding “dGPU on” entry.

1 Like

Shhhhh… Waiting on a response from AMD gives framework an unlimited deadline to fix it.

I finally got the FW EC 4.0.4 source code to compile, after a fair amount of changes to it. I will be creating my own repo of it with the changes.
I have found an odd bug that i have not yet found a reproducable way of causing it.
It will cause extra battery drain while in standby.
Symptom is, the EC can get into a state where it thinks the AC is on, when the power adapter is actually removed.
Inserting and removing the power adapter does not fix it.
This results in the EC never going into “EC hibernate” mode, thus wasting battery power and causing battery drain even when powered off and power adapter removed.

Also, somewhere between 3.0.5 and 4.0.4, it has broken the “reboot rw” and “sysjump rw” commands, so they stay in EC RO image, instead of switching to the RW image. This makes my experiments with EC source code far more difficult. Please fix it.