Framework Laptop 16 Ryzen 7040 BIOS 3.03 Release and Driver Bundle

The easiest way to upgrade is copy the firmware files onto a USB flash drive, and boot from that. Use the BIOS option “Boot from file” to find the file to boot from.
In the upgrade notes, it mentions that the upgrade will fail if the battery is 100%.
To get round this, I went into the BIOS and set the max battery setting to 80%, used my laptop without external power for a bit, got the percentage down to 90% and then plugged it back in again, and then tried the firmware update.

For those of us who may have missed it. Where is this located? Is this a new GPU firmware update that just came out? Skimmed the OP just in case but don’t see it

1 Like

Linux firmware package from unstable in Debian or the upstream repo kernel-firmware / Linux Firmware · GitLab.

Okay, Thanks for the info.

Ok, here goes. Framework 16: I just got Arch-linux with BTRFS and Gnome installed yesterday. I have just read through the whole thread and am now as confused as ever about the BIOS update. I need your help. How do I do the update? As confused as I am, I feel that I need specific instructions to do it right.

Install fwupd.
fwupdmgr update

1 Like

Running the 7840HS with the 7700S in windows. Did the tdp get decreased by any chance? I noticed on 3.0.2 that in HWInfo64 the Core Package Power would go to roughly 51W while running Cinebench R24, now it’s topping out at 42W. This is with Windows. The only difference I made for the driver bundle is that I installed the 24.5.1 AMD driver.

Any way to reassign these to - and + so I can use the Enter key in both modes?

I don’t know, i am new to Linux and don’t use QMK and such things.

I do not know for sure, but From what I’ve seen here I would certainly guess that the answer is yes.
There are several threads related to keyboard mods through via and qmk.

1 Like

I looked into QMK etc late last night. It appears the standard keyboard and numpad can do that.
However, I do not have time to figure it out right now, but did save bookmarks for later.

I do like the idea of using the plus and minus keys for this purpose as I rarely use them otherwise, but I do use the enter key on the numpad quite a bit.

1 Like

Feel free to join us over at Framework 16 power specifications
Idk if it’s Linux specific, but I’m experiencing lower TDP when plugged in than unplugged.
So to get maximum power on some rare occasions, I actually unplug my laptop. Really hope that gets fixed. If it’s a BIOS issues, perhaps that’s what you’re experiencing as well?

If you’re using a small one try a bigger (higher wattage) power adapter.

Well yes that’s partially it (65W), but it should also be able to use the battery and the power adapter at the same time. Because in that sense, NO power supply is strong enough to supply both the 7940HS and the 7700S at the same time under full gaming load, so what the laptop does (and what we see in practice) is that it sips from the battery, especially in load peaks - hence peoples batteries are draining when gaming even when plugged in.
However it might not be able to do that for me for some reason.

My electronics background isn’t particularly strong so maybe it’s as simple as no two sources can supply to one sink at the same time, i.e. sources are battery and PD, and sinks are battery, socket and expansion bay.
So in my config, PD can charge battery and supply socket at the same time, but PD and battery can’t work together to supply the socket.
For a dGPU setup, PD can charge battery and supply both socket and dGPU, and if the PD is insufficient, it can switch to using e.g. PD for dGPU and battery to supply socket.
That doesn’t quite match what we see however, in that it only sips from battery, whereas in that theory it would use a lot more battery and the PD would be largely underutilised.

So I don’t see why my setup couldn’t reach peak power with a 65W charger. Maybe somebody from the framework team can chime in?
As I finished writing this, I found this thread which might give more clues:

I could explain it actually. They have to choose targets based on power adapter and power slider state in the EC. You can see all the choices that are made in EmbeddedController/zephyr/program/lotus/lotus/src/cpu_power.c at lotus-zephyr · FrameworkComputer/EmbeddedController · GitHub

The limits are different if you have a dGPU or not and on how big the charger connected is. It’s a balancing act because you don’t know what someone is going to do with their system. If you choose something too aggressive then the battery is going to tank. If it’s too conservative then performance suffers.

What you can do is message your intent by using the power slider in Windows or PPD in Linux. It will respond to that and change some of the limits based on that intent.

1 Like

Thanks for the hint, great to see.
I think I found the bug - and yes, I believe it to be a bug.
Assuming TYPE_FPPT counts and is limited by all four checks here.
update_os_power_slider should be fine in my case, 65W.
update_adapter_power_limit also seems to be fine, 65W.
update_safety_power_limit I don’t quite understand from a cursory look.
But update_thermal_power_limit seems to contain a bug where, in the no-dGPU case, it limits the power to 30W if you have anything less than 80W of AC power, despite the DC case following the update_os_power_slider:

This matches exactly what I observed, in that with DC, power slider works, with AC, it doesn’t have any effect.
Thanks for the hint! I’ll see if I can compile and flash mine, wish me luck.

4 Likes

Cool good luck! If it works send up a pull request!

Are there plans on an updated bundle with the newest amd adrenaline and graphics drivers

1 Like

Update BIOS using LVFS. No issues with Fedora 40 Gnome desktop