Framework Laptop 16 Ryzen 7040 BIOS 4.01 Release BETA - Held

v4.02 is released Framework Laptop 16 BIOS v4.02 and Driver v3.01 Releases (AMD Ryzen™ 7040 Series) BETA

We have decided to keep this version in BETA because we received a critical issue that must be fixed and released quickly.
We will provide a new beta version (4.02) later today. This version is based on v3.07 but will include all the changes originally introduced in v4.01. We plan to move v4.02 to the stable channel next week.
We will continue to debug the critical issue and release updates promptly to enhance your system.

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. After updating your laptop to BIOS 4.01, you’ll need to update Keyboard/Numpad/MacroPad firmware to 3.0.1, following the instructions here.
  2. This release includes support for NVIDIA® GeForce RTX™ 5070, which also needs Driver Bundle 3.00 or newer.

Highlights

  1. Added support for the NVIDIA® GeForce RTX™ 5070.
  • Integrated the NVIDIA DR and VK keys to support the NVIDIA G-SYNC feature (requires a 2nd Gen Display k=Kit).
  • Added support for the NVIDIA Advanced Optimus feature (requires a 2nd Gen Display Kit).
  1. Updated the 7040 Series STT table.
  2. Updated the standalone detection user interface (UI).
  3. Updated the Framework Input Module application.
  4. Enabled the USCI 2.0 feature.
  5. Fixed the issue causing PROCHOT to occur when the system was under heavy load.
  6. Fixed an issue where the CPU became locked at 0.55 GHz during Furmark and CPU burn stress tests.
  7. Fixed an issue where the screen would flash when switching between two EPR adapters.

Note:

  • Once you update to version 4.01, you will only be able to downgrade to BIOS 3.05 or any subsequent version.

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.

Downloads

Windows

Download Link SHA256
Framework_Laptop_16_Amd_Ryzen7040_BIOS_4.01.exe 1C21F342378A09A7FCF7AB0CAA4A28ABCA9108674A5C4FE4A99F575A56020EA3

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, 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.01_EFI.zip 953BA7D1D4C65AD388461674F491B92456A02C687E24C45C1A2A7CDA1FC41C13

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.

Battery Extender functionality

With the high energy density on modern batteries, leaving them 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.

Battery Charge Limit Functionality

This release modifies the battery charge limit functionality to add a 5% float range. This allows us to reduce the number of microcycles on the battery when the CPU turbos.
Previously to the change in 3.05, the battery would be held at the target state of charge, so if a large power draw happened for a short time, such as when the CPU turbos, the battery would drain slightly and then charge again.
Introduced in this version, the battery will not start to charge until the battery has dropped 5% below the charge limit.

As an example, if the user sets the battery charge limit to 80%, the battery will maintain a state of charge between 80% and 75%. And will not charge up to 80% until it has discharged to 75% while the system is on.

If this is activated while the battery state of charge is above the limit, the battery will discharge without drawing power from the adapter until the upper limit is reached.

Security Fixes

N/A

Enhancements

  1. Added support for the NVIDIA® GeForce RTX™ 5070.
  • Integrated the NVIDIA DR and VK keys to support the NVIDIA G-SYNC feature (requires a 2nd Gen Display kit).
  • Added support for the NVIDIA Advanced Optimus feature (requires a 2nd Gen Display kit).

Fixes

  1. Updated the 7040 Series STT table.
  2. Updated the standalone detection user interface (UI).
  3. Updated the Framework Input Module application.
  4. Enabled the USCI 2.0 feature.
  5. Fixed the issue causing PROCHOT to occur when the system was under heavy load.
  6. Fixed an issue where the CPU became locked at 0.55 GHz during Furmark and CPU burn stress tests.
  7. Fixed an issue where the screen would flash when switching between two EPR adapters.

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.01 Updated
EC ec_401_eb70edf Updated
PD 0.0.21 Updated
NVIDIA® GeForce RTX™ 5070 PD 0.0.21 Added
AMD PI 1.2.0.0c Same

Reporting Issues

To report issues we have created a public issue tracker on github. https://github.com/FrameworkComputer/SoftwareFirmwareIssueTracker/issues 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.

Heading

6 Likes
  • Added support for the NVIDIA Advanced Optimus feature (requires a 2nd Gen Display Kit).

Nirav said that the only differenze between 1st and 2nd gen display was Freesync vs actual G-SYNC.

Does this mean that Optimus/MUX will not work with a 5070 paired with 1st gen display? :face_with_raised_eyebrow:

It’s good to see the beta coming up though! I’ll update today and will report back for issues. :grin:

1 Like

I see that 4.0.1 updates the EC code.
Please can someone update the EC source code on github here with the changes:

It has not been updated in a while.
I would suggest that when more public people can see the EC source code, more people could suggest pull requests with bug fixes, meaning less effort for FW engineers.

7 Likes

Updated BIOS to 4.01 and Keyboard/Numpad firmware to 3.0.1 - no issues

Updated and working so far. The only downside I have now:
When I power on, it takes about 20 seconds until the text appears on the top left and on the bottem left where it says “booting into OS” or something like that.
on the top left, I see my CPU and RAM.

Did you reload the BIOS defaults?

No yet, I just changed some settings and saved. Good idea, I will do it later.

I’ve updated BIOS to 4.01 but the keyboard firmware fails to update

after doing

$ fwupdmgr update

and type “Y”

Restarting device… [ ]
failed to detach: failed to wait for detach replug: device c76174094144e363df0c2b6d9e511ebfce89ed7d did not come back

and if I do it again but this time I unplug and plug the keyboard back while it says “Restarting device…”, it says

Perform operation? [Y|n]: Y
Writing… [************************** ]
failed to write-firmware: writing firmware not supported by device

I’ve also attempted to do it manually ( keyboard boot loader mode ) but mount fails

mount: /mnt/rp2040: wrong fs type, bad option, bad superblock on /dev/sda, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.

I think my keyboard is faulty as no one else is having any issues…

Every time I boot my system, BIOS tells me my keyboard firmware is out of date and it won’t continue to boot unless I press the power button and I’m unable to ( I don’t see any option in the BIOS to disable this ) to disable this check…

Try following the instructions here for the keyboard:

Releases · FrameworkComputer/qmk_firmware · GitHub

Specifically the “On any OS (UF2) ones.”
You click on the “Assets” at the bottom of the page, which gives you a selection of files ending in .uf2

Select the correct one for your keyboard.
In linux, simply using “lsusb” will output something like:
"Bus 001 Device 006: ID 32ac:0018 Framework Laptop 16 Keyboard Module - ISO"
So, here I have the “ISO” one.

Once you get the keyboard into “boot” mode, a new “disk” appears and you simply drop the .uf2 file onto that disk. It then disappears, and updates the keyboard.

Note: Maybe you are missing the “pressing the ALT keys” bit.

1 Like

Are you saying the bios blocks bootup if the keyboard firmware is incorrect? That is horrifying.

1 Like

It does not block boot, you just tap the power button and it continues.
It it just reminding you to upgrade the keyboard also.

Ahh, okay. I misunderstood with the way it was worded.

Question: Has anyone tried updating the keyboard firmware before (without) updating the bios? I want to try that first and hold off on bios until enough people have reported it’s good.

1 Like

as I said

the mount command I used was

mount -t vfat /dev/sda /mnt/rp2040

when the keyboard goes in bootloader mode, block device appears at /dev/sda. can’t copy the file if it won’t even mount

What does “blkid /dev/sda” return? What do you get in dmesg?

Updated to 4.01 and ran the keyboard/numpad updates. My expansion card ports 1 and 2 stopped functioning. I get no data from port 2 and port 1 no long works at all, even to charge. Ports 3, 4, 5, and 6 are working and port 4 is charging. I have tried moving cards around and they work when not in ports 1 and 2 so it is not a dead card issue. This issue persists after a restart.

Edit: When powered off I do not even get a charging light when plugged into port 1. Port 4 gives a charging light.
Edit 2: The issue persists after loading optimized defaults.
Edit 3: I resolved the issue by running the BIOS update again. All of the version changes matched except that it said that PD 2 was being updated from 0.0.1E to 0.0.21, which is the version that PD1 was on after the update. Both seem to be on 0.0.21 and functioning fully/normally.
Edit 4: So it only fixed it with that one particular charger. With other chargers, ranging from 100w to the Delta 240w, I am having some trouble where it is not charging on the left port still. On some it will charge when powered off but it stops charging when powered on. Quite frustrating. Never doing a beta BIOS again after this.

1 Like

/dev/sda: PTUUID=“000b8631” PTTYPE="dos

[ 9666.848631] usb-storage 1-4.2:1.0: USB Mass Storage device detected
[ 9666.851049] scsi host0: usb-storage 1-4.2:1.0
[ 9667.886846] scsi 0:0:0:0: Direct-Access RPI RP2 3 PQ: 0 ANSI: 2
[ 9667.916974] sd 0:0:0:0: [sda] 262144 512-byte logical blocks: (134 MB/128 MiB)
[ 9667.918560] sd 0:0:0:0: [sda] Write Protect is off
[ 9667.918574] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 9667.920401] sd 0:0:0:0: [sda] No Caching mode page found
[ 9667.920412] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 9667.968834] sd 0:0:0:0: [sda] Attached SCSI removable disk

and these two last lines show after attempting to mount the block device

[ 9764.444300] FAT-fs (sda): bogus number of reserved sectors
[ 9764.444308] FAT-fs (sda): Can’t find a valid FAT filesystem

which is why I think the keyboard maybe faulty

Sorry, there should be a partition under there:
“blkid /dev/sda1”

And in case you are trying to mount sda, it wont work. You need to mount /dev/sda1 (or whichever device it comes up as.

On my laptop, the keyboard device just automounts.
But checking it, it appears in dmesg as:
[ 2640.574800] scsi 0:0:0:0: Direct-Access RPI RP2 3 PQ: 0 ANSI: 2
[ 2640.575401] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 2640.576627] sd 0:0:0:0: [sda] 262144 512-byte logical blocks: (134 MB/128 MiB)
[ 2640.577398] sd 0:0:0:0: [sda] Write Protect is off
[ 2640.577403] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 2640.579578] sd 0:0:0:0: [sda] No Caching mode page found
[ 2640.579602] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 2640.663828] sda: sda1
[ 2640.664070] sd 0:0:0:0: [sda] Attached SCSI removable disk
So, mount /dev/sda1 not /dev/sda
It has two files on it.

that’s the issue, it’s only showing /dev/sda, there is no /dev/sda1

only other thing I can think of is I don’t have the filesystem needed for the device but if it’s vfat, well… I do already

I wonder if it require MMC or something like that

It is a usb-storgage device, so needs modules:
usb-storage
uas

What does your “sudo dmesg” give ?

The full dmesg is:
[ 2639.431969] usb 1-4.3: new full-speed USB device number 7 using xhci_hcd
[ 2639.539509] usb 1-4.3: New USB device found, idVendor=2e8a, idProduct=0003, bcdDevice= 1.00
[ 2639.539523] usb 1-4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2639.539530] usb 1-4.3: Product: RP2 Boot
[ 2639.539535] usb 1-4.3: Manufacturer: Raspberry Pi
[ 2639.539540] usb 1-4.3: SerialNumber: XXX
[ 2639.566044] usb-storage 1-4.3:1.0: USB Mass Storage device detected
[ 2639.566201] scsi host0: usb-storage 1-4.3:1.0
[ 2639.566310] usbcore: registered new interface driver usb-storage
[ 2639.567629] usbcore: registered new interface driver uas
[ 2640.574800] scsi 0:0:0:0: Direct-Access RPI RP2 3 PQ: 0 ANSI: 2
[ 2640.575401] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 2640.576627] sd 0:0:0:0: [sda] 262144 512-byte logical blocks: (134 MB/128 MiB)
[ 2640.577398] sd 0:0:0:0: [sda] Write Protect is off
[ 2640.577403] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 2640.579578] sd 0:0:0:0: [sda] No Caching mode page found
[ 2640.579602] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 2640.663828] sda: sda1
[ 2640.664070] sd 0:0:0:0: [sda] Attached SCSI removable disk