Framework Laptop 13 Ryzen 7040 BIOS 3.06 Release BETA - Held

2024-12-05 Release held at BETA - this release will not be promoted to stable.

We found an issue during the beta release period- where the battery will charge and discharge between the sustaining minimum and maximum thresholds, after the sustaining time has expired when the system is in the on state. For Beta users, you can disable the battery sustaining feature in the bios until we release 3.07. We are targeting to release 3.07 to beta to fix this issue by the end of December. This only impacts this product, and does not impact Intel Core Ultra, or Framework Laptop 16.

2024-11-21

Highlights

  • Fixed 5 security vulnerabilities.
  • Fixed ALS sensor communication failures.
  • Fixed IRQ1 wake issues on Linux.
  • Fixed diagnostic compatibility issue with 2.8K displays.
  • Added automatic battery lifetime extender if the system is attached to AC for several days.

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

After the beta release, we will monitor community feedback, and publish this release to our stable release channel after approximately one week if no major issues are reported.

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.

Battery Extender functionality

With the high energy density on the 61Wh battery, leaving it at 100% state of charge for an extended period of time can shorten the lifetime of the battery. To prevent this, we have added a new feature that automatically limits the maximum state of charge if the system is left plugged into power for more than 5 days. The timer is reset after the system is disconnected from a power adapter for more than 30 minutes.

Battery Extender Duration Battery State of Charge
0-5< Days 99% β†’ 100%
5-7 Days 90% β†’ 95%
>7+ Days 85% β†’ 87%

This functionality also reduces cycling of the battery by allowing the battery to discharge by several percent before charging again. Note that in addition to this automatic setting, you can also manually set a lower charge limit on your battery in BIOS to further preserve battery longevity.

This feature can be disabled or enabled in the BIOS Advanced menu.

Battery Extender: This option is enabled by default. If disabled, the system will always keep the battery fully charged.

Battery Extender Trigger: This option sets the number of days that must pass before the battery state of charge is reduced automatically to extend the battery life.

Battery Extender Reset: This option sets the number of minutes that the system is running on battery before the extender is reset, causing the system to charge to 100% when attached to power again.

Downloads

Windows

Download Link SHA256
Framework_Laptop_13_Ryzen7040_BIOS_3.06.exe 07c85f9fa2caf16d9bca46275164ff35ccb0cc1538d6c412bfe95f2c3dfa7684

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

Updating via LVFS is available in the testing channel during the beta period.

You can enable updates from testing by running

fwupdmgr enable-remote lvfs-testing

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.

You can see the current releases status at LVFS: Laptop 13 AMD Ryzen 7040

Linux/Other/UEFI Shell update

Download Link SHA256
Framework_Laptop_13_Ryzen7040_capsule_signed_allsku_3.06_EFI.zip 308bfcf6e84521dfc5c6435538b2bbb08cebcc8df722509be8ad654eb239f609

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.
  6. If you are updating a system in standalone mode, please pay careful attention to the standalone update process below.

Updating a Mainboard outside of a laptop

This release supports standalone updates without a battery attached. After rebooting, please follow the onscreen instructions to update your BIOS when in standalone mode, which will require moving the power source between both sides of the Mainboard to allow PD firmware to update correctly.

Please note that the power and display output must be connected to the same side during standalone updates. Failure to do this may result in no display output during the update process.

We recommend the following update flow for standalone updates:

Part 1

Ensure that standalone operation is enabled in the bios advanced setup menu.

Display connected to upper left port.
Power connected to the lower left port.
Run the updater from EFI/Windows updater.

After rebooting into the updater the update will commence:

The updater will update the BIOS and EC.

The Updater will update the PD controller that is not connected to the power source.

You will see one PD controller will fail the update with the X, and β€œupdate complete” is displayed, but the bios will restart.

Part 2

At this screen, the bios update will stop. You must disconnect the display and power source, and move them to the other side.
The display should be connected to the top right.
Power should be connected to the bottom right.

Press the power button, and the second PD update will complete.

After this, the system will reboot, and your bios update is complete.

Security Fixes

Module Name Vulnerability Score
UefiPxeBcDxe CVE-2023-45234 8.8
Dhcp6Dxe CVE-2023-45230 8.8
IP6Dxe CVE-2023-45232 7.5
IP6Dxe CVE-2023-45233 7.5
AMD PI CVE-2023-31315 7.5

Enhancements

  • Added battery lifetime extender functionality
  • Update Insyde kernel to 05.54.23.0020 with AMD PhoenixPI-FP8-FP7_1.1.0.3.

Fixes

  • Fix issue with IRQ1 triggering on non keyboard wake sources. Causing Linux to wake unexpectedly.
  • Fix EDID reporting with 2.8K panel. Which would erroneously report no panel connected blink codes.
  • Adjusted _CRT temperature thresholds which would cause the thermal sensors to not be initialized by the kernel on some Linux Kernel versions.
  • Modify power button behavior to prevent powering on the system when the Input Cover is first connected to the Mainboard.

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 3.06 Updated
EC ec_306_f666c Updated
PD 0.0.1C Same
AMD PI 1.1.0.3 Updated

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

  • BIOS display output may not show up in standalone mode when booting the first time. To work around this issue we suggest booting into the OS and then restarting and pressing F2 to enter the setup menu.
  • When updating in standalone mode, there may be no display output after updating one side’s PD firmware. Suggest connecting power and display on the same side when performing a BIOS update in standalone mode.
  • Connecting with iPhones over type-c may be unstable.
17 Likes

Awesome!

Are there more details on this?

1 Like

The one day I am bitching about never getting a bios update this shows up XD

5 Likes

Updated top post with more information.

1 Like

Great, thanks! Any updates on lowering the minimum brightness for the 1.5k display?

4 Likes

I’m assuming that installing the update will reset things like a battery charge limit set in ectool so that I can just adopt the Battery Extender functionality.

Is that so, and is it worth adding a note to the post?

K3n.

I’m seeing this under Arch, which I know is not officially supported. Anyone know how to get around or remediate this?

I do have Secure Boot enabled successfully using systemd-boot, UKI, and sbctl.


UPDATE: solved.

Just had to sudo cp /usr/lib/fwupd/efi/fwupdx64.efi /usr/lib/fwupd/efi/fwupdx64.efi.signed (in my case), per this github issue: missing signed bootloader for secure boot: /usr/lib/fwupd/efi/fwupdx64.efi.signed cannot be found Β· Issue #7508 Β· fwupd/fwupd Β· GitHub.

4 Likes

Any idea why this update won’t show up on fwupdmgr on my Arch?

fwupd sees that the bios is updatable but won’t show an update with the testing repo enabled.

Update after successfully updating BIOS:

  • On first boot, post-update, my Bluetooth adapter was inactive
  • After attempting a systemctl restart bluetooth.service, I powered down.
  • After powering back up, the Bluetooth adapter was back. I did, however, have to re-pair all devices, but it’s otherwise working as expected.
1 Like

@inffy, can you share a screenshot of what you see?

Did you run sudo fwupdmgr refresh --force then sudo fwupdmgr update after fwupdmgr enable-remote lvfs-testing?

Sure, I have tried to force refresh but nothing.

fwupdmgr get-remotes
Framework Laptop 13 (AMD Ryzen 7040Series)
β”‚
β”œβ”€  Remote ID:          vendor-directory
β”‚     Type:               directory
β”‚     Enabled:            true
β”‚     Priority:           1000
β”‚     Filename:           /usr/share/fwupd/remotes.d/vendor/firmware
β”‚     Filename Signature: /usr/share/fwupd/remotes.d/vendor/firmware.jcat
β”‚     Filename Source:    /etc/fwupd/remotes.d/vendor-directory.conf
β”‚   
β”œβ”€  Remote ID:          lvfs-testing
β”‚     Type:               download
β”‚     Enabled:            true
β”‚     P2P Metadata:       true
β”‚     P2P Firmware:       false
β”‚     Checksum:           3b83dfb10fd72b41150743add096e8102af0a74eaf1c0b96d794106a43e3cc6c
β”‚     Age:                1 hour
β”‚     Refresh Interval:   24 hours
β”‚     Priority:           1
β”‚     Filename:           /var/lib/fwupd/metadata/lvfs-testing/firmware.xml.zst
β”‚     Filename Signature: /var/lib/fwupd/metadata/lvfs-testing/firmware.xml.zst.jcat
β”‚     Filename Source:    /etc/fwupd/remotes.d/lvfs-testing.conf
β”‚     Metadata URI:       https://cdn.fwupd.org/downloads/firmware-testing.xml.zst
β”‚     Metadata Signature: https://cdn.fwupd.org/downloads/firmware-testing.xml.zst.jcat
β”‚     Report URI:         https://fwupd.org/lvfs/firmware/report
β”‚     Automatic Reporting: true
β”‚   
└─  Remote ID:          lvfs
      Type:               download
      Enabled:            true
      P2P Metadata:       true
      P2P Firmware:       false
      Checksum:           305a0bf51b4a87e9f1a515ab69905954b21004ff565218083b3e5373de4eea8e
      Age:                1 hour
      Refresh Interval:   24 hours
      Filename:           /var/lib/fwupd/metadata/lvfs/firmware.xml.zst
      Filename Signature: /var/lib/fwupd/metadata/lvfs/firmware.xml.zst.jcat
      Filename Source:    /etc/fwupd/remotes.d/lvfs.conf
      Metadata URI:       https://cdn.fwupd.org/downloads/firmware.xml.zst
      Metadata Signature: https://cdn.fwupd.org/downloads/firmware.xml.zst.jcat
      Report URI:         https://fwupd.org/lvfs/firmware/report
      Automatic Reporting: true
fwupdmgr refresh --force
Updating lvfs-testing
Downloading…             [  -                                    ]
Updating lvfs
Downloading…             [***************************************]
Successfully downloaded new metadata: Updates have been published for 2 of 3 local devices
Successfully uploaded report
❯ sudo fwupdmgr update
Devices with the latest available firmware version:
 β€’ Fingerprint Sensor
 β€’ System Firmware
Devices with no available firmware updates: 
 β€’ HDMI Expansion Card
 β€’ Laptop Webcam Module (2nd Gen)
 β€’ Lexar SSD NM790 1TB

Strange. What do you see with fwupdmgr get-history?

Well it found a fingerprint sensor update when i enabled the testing-repo

❯ sudo fwupdmgr get-history
[sudo] password for juha: 
Framework Laptop 13 (AMD Ryzen 7040Series)
β”‚
└─Fingerprint Sensor:
  β”‚   Device ID:          813b4757e78d708603a80ead0a2b6ef1364b7790
  β”‚   Previous version:   01000252
  β”‚   Install Duration:   10 seconds
  β”‚   Update State:       Success
  β”‚   GUID:               1e8c8470-a49c-571a-82fd-19c9fa32b8c3
  β”‚   Device Flags:       β€’ Updatable
  β”‚                       β€’ Supported on remote server
  β”‚                       β€’ Reported to remote server
  β”‚                       β€’ Device stages updates
  β”‚                       β€’ Device can recover flash failures
  β”‚                       β€’ Signed Payload
  β”‚                       β€’ Can tag for emulation
  β”‚ 
  └─Fingerprint Sensor Upgrade Fingerprint Reader Update:
        New version:      01000334
        Remote ID:        lvfs-testing
        Release ID:       86579
        Summary:          Firmware for the Goodix Fingerprint Print Moc Sensor
        License:          Proprietary
        Size:             193,4 kB
        Created:          2024-03-04
        Urgency:          Medium
          Tested:         2024-04-05
          Distribution:   ubuntu 24.04
          Old version:    01000334
          Version[fwupd]: 1.9.16
          Tested:         2024-03-13
          Distribution:   fedora 39 (workstation)
          Old version:    01000332
          Version[fwupd]: 1.9.13
          Tested:         2024-03-13
          Distribution:   fedora 39 (workstation)
          Old version:    01000332
          Version[fwupd]: 1.9.14
          Tested:         2024-03-13
          Distribution:   fedora 39 (workstation)
          Old version:    01000252
          Version[fwupd]: 1.9.14
          Tested:         2024-03-09
          Distribution:   ubuntu 24.04
          Old version:    01000332
          Version[fwupd]: 1.9.14
        Vendor:           Framework
        Release Flags:    β€’ Trusted payload
                          β€’ Trusted metadata
        Description:      
        Fix physical MITM vulnerability that was found from blackwinghq - a touch of pwn part 1.
        Checksum:         0e4de0a705142ffedeabfe59d584aec53e2ab30ce1fd41e5244137a22940eeb8

Yes, mine did, as well. Here’s my output:

ο‚© fwupdmgr get-history
Framework Laptop 13 (AMD Ryzen 7040Series)
β”‚
β”œβ”€Fingerprint Sensor:
β”‚ β”‚   Device ID:          813b4757e78d708603a80ead0a2b6ef1364b7790
β”‚ β”‚   Previous version:   01000248
β”‚ β”‚   Install Duration:   10 seconds
β”‚ β”‚   Update State:       Success
β”‚ β”‚   GUID:               1e8c8470-a49c-571a-82fd-19c9fa32b8c3
β”‚ β”‚   Device Flags:       β€’ Updatable
β”‚ β”‚                       β€’ Supported on remote server
β”‚ β”‚                       β€’ Device stages updates
β”‚ β”‚                       β€’ Device can recover flash failures
β”‚ β”‚                       β€’ Signed Payload
β”‚ β”‚                       β€’ Can tag for emulation
β”‚ β”‚
β”‚ └─Fingerprint Sensor Upgrade Fingerprint Reader Update:
β”‚       New version:      01000334
β”‚       Remote ID:        lvfs-testing
β”‚       Release ID:       86579
β”‚       Summary:          Firmware for the Goodix Fingerprint Print Moc Sensor
β”‚       License:          Proprietary
β”‚       Size:             193.4 kB
β”‚       Created:          2024-03-04
β”‚       Urgency:          Medium
β”‚         Tested:         2024-04-05
β”‚         Distribution:   ubuntu 24.04
β”‚         Old version:    01000334
β”‚         Version[fwupd]: 1.9.16
β”‚         Tested:         2024-03-13
β”‚         Distribution:   fedora 39 (workstation)
β”‚         Old version:    01000332
β”‚         Version[fwupd]: 1.9.13
β”‚         Tested:         2024-03-13
β”‚         Distribution:   fedora 39 (workstation)
β”‚         Old version:    01000332
β”‚         Version[fwupd]: 1.9.14
β”‚         Tested:         2024-03-13
β”‚         Distribution:   fedora 39 (workstation)
β”‚         Old version:    01000252
β”‚         Version[fwupd]: 1.9.14
β”‚         Tested:         2024-03-09
β”‚         Distribution:   ubuntu 24.04
β”‚         Old version:    01000332
β”‚         Version[fwupd]: 1.9.14
β”‚       Vendor:           Framework
β”‚       Release Flags:    β€’ Trusted payload
β”‚                         β€’ Trusted metadata
β”‚       Description:
β”‚       Fix physical MITM vulnerability that was found from blackwinghq - a touch of pwn part 1.
β”‚       Checksum:         0e4de0a705142ffedeabfe59d584aec53e2ab30ce1fd41e5244137a22940eeb8
β”‚
└─System Firmware:
  β”‚   Device ID:          1e4fa9cea0b89e613370cf9657ffa0b6d3f37fec
  β”‚   Previous version:   0.0.3.5
  β”‚   Update State:       Success
  β”‚   Last modified:      2024-11-21
  β”‚   GUID:               b5f7dcc1-568c-50f8-a4dd-e39d1f93fda1
  β”‚   Device Flags:       β€’ Internal device
  β”‚                       β€’ Updatable
  β”‚                       β€’ System requires external power source
  β”‚                       β€’ Supported on remote server
  β”‚                       β€’ Needs a reboot after installation
  β”‚                       β€’ Cryptographic hash verification is available
  β”‚                       β€’ Device is usable for the duration of the update
  β”‚
  └─Laptop 13 AMD Ryzen 7040 System Update:
        New version:      0.0.3.6
        Remote ID:        lvfs-testing
        Release ID:       101366
        Summary:          Framework Laptop 13 System Firmware for AMD Ryzen 7040 Mainboards
        License:          Proprietary
        Size:             36.1 MB
        Created:          2024-10-14
        Urgency:          High
          Tested:         2024-11-21
          Distribution:   ubuntu 24.10
          Old version:    0.0.3.5
          Version[fwupd]: 1.9.24
        Vendor:           Framework
        Duration:         2 minutes
        Release Flags:    β€’ Trusted payload
                          β€’ Trusted metadata
        Description:
        Please note that after upgrading to this version, you cannot downgrade to a previous version.

        New Features: Add Battery Extender Functionality

        Fixes in this release

        Fixes: IRQ1 triggering from multiple wake sources causing system to wake unexpectedly. Fix issue with invalid critical temperature _CRT in ACPI. Fix EDID data to properly recognize the 2.8K panel. Fix issue where the system will be power on when the input cover is plugged into the mainboard.

        Update AMD PI to FP7_1.1.0.3. Update Insyde Kernel to 05.54.23.0020.
        Issues:           132380
                          CVE-2023-31315
                          CVE-2023-45233
                          CVE-2023-45232
                          CVE-2023-45230
                          CVE-2023-45234
        Checksum:         30dd52ddff3fa3882b1019422833cccd2834b3e99906b332704f44030d02b9b4

Hah, rebooted and logged into gnome (mainly ise Hyprland) and now it finds the update.

I guess it was just somekind of cache thing or something

2 Likes

I wasn’t able to find it either using lvfs testing repo. I just ran the efi update method via USB stick.

On my FW16, the charge limit wasn’t altered by the update. It still sits at 80%, but the battery extender functionality is active by default. I don’t expect it to do anything, though, as long as the manual setting is lower than it would chose autonomously.

1 Like

I think it doesn’t effect if you have set something like 80 on the max charging limit in Bios.

Hello

Had the issue also with fwupdmgr not seeing the update

Found a post advising to remove the cache form /var/cache/fwupdmgr

then a refresh or refresh --force, and the update was present .

Hope that helps

PS: This is on archlinux, may be a bit different on other systems

3 Likes