Framework Laptop 13 Ryzen 7040 BIOS 3.09 Release

is this update stable Should i update (ps. i don’t use the battery extender or charge limit)

yes i’ve updated through cmd method it worked well for me with ubuntu 25.04

yes it has been switched to stable now it is ok to update

Is it known if there are any differences between the beta and the final release - or are the two versions identical?

Its the same version

1 Like

After trying to update mine via Linux/LVFS (Fedora 42) from 3.05 to 3.09 my laptop is now stuck in the BIOS update screen with a graphical glitch taking up half of the screen. Already contacted supported, just wanted to put this information also here.

1 Like

Oops! :worried:

Looks like 3.09 has been made stable on LVFS but changelog does not show the full delta since 3.05:

Description:      
This firmware update includes the following changes:
        
• Fixed battery charging limitation cannot work when battery extender function disabled.
• Fixed battery charging limit is reset by battery extender reset timer.
Checksum:         9a9b6b23623227b1a2b5906030de4a1c08990ef3b57a65df101dab6ea4169b47
1 Like

It’s the changelog against 3.07 that went stable. So it’s actually correct

ArchLinux, upgraded from 3.05 to 3.09 using fwupdmgr. All good :smiley:

but is it actually stable bc 3.07 was promoted to stable while still being buggy

1 Like

I disagree. While this may “technically” be true, 3.07 was officially pulled but, somehow, despite this was never removed from GA, which should have been the right course of action. I’m still baffled that it never got properly pulled from the various distribution channels… So that said, 3.09 is, in fact, an upgrade from 3.05, especially for those who blacklisted the broken update via fwupd.

This might seem like a “haters gonna hate” moment, but it’s not the intention. It’s fairly trivial to include the rest of the changes in the summary with a preamble, e.g. “If upgrading from 3.05 also included are the following changes”.

It may be a relatively insignificant problem, but one can’t expect vendors (not just FW) to improve their practices if issues are not flagged up and fed back.

2 Likes

Bit the bullet and performed the update from 3.05 → 3.09. Went fine on Arch Linux with fwupdmgr. Had to fwupdmgr refresh --force to get it to show up. Took longer than 3.03 → 3.05 did. Battery is charging after the workday. Seems like my charge limit might’ve been cleared, so gonna have to set that back to 90%. Will be curious to see if the battery flipping persists.

Update: My charge limit still said 90% in the BIOS, but the batt extender was enabled. I disabled it, reset the charge limit to 100%, rebooted, then set the charge limit back to 90%. Still waiting for laptop to charge.

Side note (I didn’t know this): Enabling the supervisor password makes the option to use a power-on password appear! I have owned this laptop for over a year and didn’t realize you could set a power-on password.

Update II: 90% charge limit seems to be respected. Running stress + YouTube, with my 65W Anker Nano II, I still see KDE flipping between charging and discharging and sometimes Fully Charged, but I no longer see the battery charging rate be anything except 0.0W. This is an improvement over 3.05, where I saw a range of nonzero charge rates between -5W and 5W. Sucks that the flipping still happens, but (so far) at least it seems like no power is actually being drawn from the battery under load?

Update III: Spoke too soon. I see it flipping between -0.1W and 0.1W. Also giving me this goofy jigsaw pattern when under even mildly bursty load.

:waving_hand: I have 3.09 now. I downloaded ryzenadj through the AUR. What commands should I run?

The following does not seem to work:

$ sudo ryzenadj -i
CPU Family: Phoenix Point
SMU BIOS Interface Version: 15
Version: v0.16.0
failed to get /sys/kernel/ryzen_smu_drv/pm_table: No such file or directory
failed to map /dev/mem: Operation not permitted
If you don't want to change your memory access policy, you need a kernel module for this task.
We do support usage of this kernel module https://gitlab.com/leogx9r/ryzen_smu
Unable to get memory access
Unable to init power metric table: -5, this does not affect adjustments because it is only needed for monitoring.
░▒~▒░
$ sudo ryzenadj --dump-table
failed to get /sys/kernel/ryzen_smu_drv/pm_table: No such file or directory
failed to map /dev/mem: Operation not permitted
If you don't want to change your memory access policy, you need a kernel module for this task.
We do support usage of this kernel module https://gitlab.com/leogx9r/ryzen_smu
Unable to get memory access
Unable to init power metric table: -5, this does not affect adjustments because it is only needed for monitoring.

Looks like you have some problems to run it in the first place, maybe some modules are missing in your installation. Unfortunatly, I am a Windows guy and cannot help very much. It would be nice if you get this sorted.

I am interested in the following commands working:

ryzenadj.exe -i

Output in 3.05 (some values may differ):

CPU Family: Phoenix Point
SMU BIOS Interface Version: 14
Version: v0.15.0
PM Table Version: 4c0008
|        Name         |   Value   |     Parameter      |
|---------------------|-----------|--------------------|
| STAPM LIMIT         |    53.000 | stapm-limit        |
| STAPM VALUE         |     7.125 |                    |
| PPT LIMIT FAST      |    53.000 | fast-limit         |
| PPT VALUE FAST      |    14.235 |                    |
| PPT LIMIT SLOW      |    43.000 | slow-limit         |
| PPT VALUE SLOW      |     7.242 |                    |
| StapmTimeConst      |    36.857 | stapm-time         |
| SlowPPTTimeConst    |    90.756 | slow-time          |
| PPT LIMIT APU       |    41.000 | apu-slow-limit     |
| PPT VALUE APU       |       nan |                    |
| TDC LIMIT VDD       |    54.000 | vrm-current        |
| TDC VALUE VDD       |     4.984 |                    |
| TDC LIMIT SOC       |    16.000 | vrmsoc-current     |
| TDC VALUE SOC       |     2.041 |                    |
| EDC LIMIT VDD       |   105.000 | vrmmax-current     |
| EDC VALUE VDD       |    55.073 |                    |
| EDC LIMIT SOC       |    23.000 | vrmsocmax-current  |
| EDC VALUE SOC       |     3.955 |                    |
| THM LIMIT CORE      |   100.000 | tctl-temp          |
| THM VALUE CORE      |    46.792 |                    |
| STT LIMIT APU       |    60.000 | apu-skin-temp      |
| STT VALUE APU       |    36.689 |                    |
| STT LIMIT dGPU      |     0.000 | dgpu-skin-temp     |
| STT VALUE dGPU      |     0.000 |                    |
| CCLK Boost SETPOINT |       nan | power-saving /     |
| CCLK BUSY VALUE     |       nan | max-performance    |

Set stapm_limit:

ryzenadj.exe -a 43000
Sucessfully set stapm_limit to 43000

Set slow limit:
ryzenadj.exe -c 43000
Sucessfully set slow_limit to 43000

Set apu skin temp:
ryzenadj.exe --apu-skin-temp 43000
Sucessfully set apu_skin_temp_limit to 43000

Installed the upgrade via lvfs on Ubuntu 24.04, all seems good so far. My 80% charge limit is still set. I don’t know if it’s flipping between charging and not charging, it kinda seems like it is, and I don’t remember it doing so before.. but at the moment I’m not on my usual charger. I thought that issue was related to a specific version of upower which I thought my version of Ubuntu didn’t have.

I have the same anker charger as you, and I upgraded to an 100W ugreen charger and since then only very rarely I get battery sipping while plugged in, I only noticed it once or twice with the new charger, and I was playing games so it kinda makes sense, what doesn’t make sense is FW selling an 60W charger for a device that works optimally with 100W of power input.
I bought the 100W charger because I saw some people in the forums recommending that to avoid the issue you just mentioned, when I was using my anker and lenovo 65W chargers the battery would discharge to 74-77% before charging back up to 80% (I have this limit in the bios), with the new charger this behaviour doesn’t happen, however I’m still running the broken 3.07 BIOS on my FW, I intend on updating as soon as I have time, but since out of nowhere my FW started to respect the charge limits I set in the bios, I’m kinda tempted to wait a little longer to make sure there are no new issues with this version

not seeing the float range after upgrading to 3.09 from 3.07, it does now do my 80% charge limit but it seems to keep the battery around 79%, maybe because i have the lower power ryzen 5 model? i’m using the charger that came with the laptop

edit: nevermind, despite toggling between charging and discharging the battery percentage is going down, as it should

try adding iomem=relaxed to your kernel boot parameters and restarting.

see: Kernel parameters - ArchWiki

EDIT: you might also have to use the ryzenadj-git package from the AUR instead.

EDIT EDIT: just to be clear, adding'iomem=relaxed is one way you can fix this, but it comes at the cost of security. depending on how you configure your bootloader, you can make it persistent, or only during the current boot cycle if you want to temporarily test ryzenadj out. the other option is using a custom kernel module.

I forgot to mention but before I updated using fwupdmg on fedora 42 i fully reset the bios to factory settings. It was as a precaution.

After the flash I went in and changed options to my liking.