12th Gen Intel Core BIOS 3.09 Release BETA

Framework Laptop 13 - 12th Gen Intel Core BIOS 3.09 Release BETA

Highlights

  1. Update Intel CSME to 16.1.32.2418v0.2_A0_Corporate
  2. Update PD firmware version 0.1.2E to improve system power consumption with low power HDMI/DP expansion cards when no monitor is attached.
  3. Fixed retimer updates cause ports to stop working after the update.
  4. Fixed retimer capsule update causes the device in standalone mode to reset and fail updating during the update process.
  5. Added battery lifetime extender functionality. (See below for details)
  6. Add USB4 PCR Measurement BIOS option in the advanced setup menu.

Please note that if you update to 3.06 or higher, you will not be able to downgrade to version lower than 3.06, as it will cause left side ports to stop functioning correctly.

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.

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.07, 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.

Downloads

Windows

Download Link SHA256
Framework_Laptop_13_12th_Gen_Intel_Core_BIOS_3.09.exe d0bb963d74c6bee2b06dff3ac013bd9632b41581e89fe4ac49337b4e27d0217d

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.

Please note that the windows update does not support updating retimer firmware. There is not a functional impact to port functionality if you do not choose to update your retimer firmware.

Windows retimer updates

Please note that retimer updates only need to be done one time. So this is only necessary to do one time. This is optional.

Download Link SHA256
Framework_Laptop_13_12th_Gen_Intel_Core_Retimer_port01_310.exe bff7e0d1468db20b69fb492b719323346188642806354277b64ad77662784555
Framework_Laptop_13_12th_Gen_Intel_Core_Retimer_port23_310.exe bff7e0d1468db20b69fb492b719323346188642806354277b64ad77662784555

There are 2 retimers on the system. Please follow the instructions to do twice with different executable files.

Retimer update instructions.

  1. Update the BIOS first.
  2. Boot into Windows after BIOS update.
  3. Run the .exe and wait for firmware update tool to stage the update.

  1. After initialization, the system will restart and and update the retimer firmware.
  2. Repeat step 3 after rebooting to update the second set of retimers.

Please note that you must update with a charger attached.

Linux/LVFS

Please note that for this platform LVFS will not update the CSME firmware. so we only recommend updating using the EFI updater. This is a limitation of LVFS which does not ship the binary blobs from Intel necessary to update the CSME.

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

Please note, you need to update to 3.05 or later to update using EFI, as this is needed to support capsule on disk.

We have finished the beta period, and consider this release stable. You can download the release below, please follow the update instructions below.

Download Link SHA256
Framework_Laptop_12th_Gen_Intel_Core_3.09_EFI.zip 3f49a00f2e9a2712cb8a323904d836f259bcd2ae7939ec1a31cc111e4c0b140b

We have rewritten the update process for EFI. This new version will stage the bios and retimer updates onto your internal SSD and run them all together in sequence. This is to avoid issues with usb devices disconnecting and disappearing during subsequent updates during the update process, which would cause partial updates to be applied.
Troubleshooting:
If you experience ports not working after your update. Please shutdown, unplug all power sources, wait 90 seconds, and then power on again.

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. Boot your system while pressing F12 and boot from the thumb drive.
  3. Let startup.nsh run automatically.
  4. Follow the instructions to install the update.

Updating retimers

After the bios update completes, press F12 after restarting to again enter the boot menu, and boot from your thumb drive. Let startup.nsh run again to confirm or update your retimer firmware. If retimers need updating, the update will be staged to perform an update on both retimers.

If doing a standalone update, the display output will not work during the retimer update. Please note that retimer updates take 2 minutes to complete. So please wait at least 5 minutes before attempting to power off or reset the device.

Updating a Mainboard outside of a laptop

This release supports standalone updates without a battery attached only when updating using the EFI shell method only. 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 shell. Please follow the ā€œInstructions for EFI shell updateā€ to run the updater.

Select the EFI USB Boot Device.

The Updater will update the PD controller from right side. Press any key to continue updating.

Part 2

Plug the AC to the left side, then boot to EFI updater. The Updater will update the PD controller from left side. Press any key to continue updating.

After PD updates, it will reboot automatically, then start the BIOS capsule update.

Then, the EC will update after BIOS section finishes.

After this, the system will reboot. Please press F12, and select your thumb drive as the boot device. And run the update again to update retimers if necessary.

If the retimer update is finished, the system will reboot automatically. Please press F12 again, and select your thumb drive as the boot device. You will see the screen that shows all the firmware versions.

If the retimer update is not needed, you will see the screen that shows all the firmware versions.

Security Fixes

CVE Note Score (CVSS Version 3.x)
CVE-2023-45230 Dhcp6SendRequestMsg does not validate the Server ID option 8.3
CVE-2023-45232 DXE memory corruption vulnerability 7.5
CVE-2023-45233 DXE memory corruption vulnerability 7.5
CVE-2023-45234 PxeBcHandleDhcp6Offer does not validate the DHCPv6 offers 8.3
CVE-2024-25078 A memory corruption vulnerability in StorageSecurityCommandDxe 7.4
CVE-2023-34424 Improper input validation in firmware 4.4
CVE-2023-38655 Improper buffer restrictions in firmware 6.8
CVE-2023-40067 Unchecked return value in firmware 5.7
CVE-2023-48361 Improper initialization in firmware 2.3
CVE-2024-21844 Integer overflow in firmware 5.3

Enhancements

  1. Update PD firmware version 0.1.2E to improve system power consumption with low power HDMI/DP expansion cards when no monitor is attached.
  2. Update Intel CSME to 16.1.32.2418v0.2_A0_Corporate
  3. Added battery lifetime extender functionality.
  4. Add USB4 PCR Measurement BIOS option in the advanced setup menu.

Fixes

  1. Fixed retimer updates cause ports stop working after the update.
  2. Fixed retimer capsule update causes the standalone device to reset and fail the update.

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.09 3.08
SI c.0.75.10 c.0.75.10 Same
TXT 1.18.13.0 1.18.13.0 Same
Intel CSME 16.1.32.2418 16.1.30.2269 Updated
Microcode 4.29 4.29 Same
GOP 21.0.1061 21.0.1061 Same
EC f8203c2 4ea1c89 Updated
PD 0.1.2E 0.1.2C Updated

Known Issues

  1. There are two progress bars when updating the bios using the EFI update method.
  2. No display output during the retimer update.
8 Likes

Thank you for posting the new BIOS!

Sounds like Iā€™m able to downgrade to 3.08, did I understand correctly?

Since updating to 3.08 from 3.05, my complete laptop (not standalone board) began to have pre-OS external display output (BIOS, boot selector, decryption, etc), which I absolutely love and take advantage of frequently, I just wanted to double check I can downgrade to 3.08 if this doesnā€™t work under 3.09 :slight_smile:
Edit: Confirmed 3.09 does support it! (But went back to 3.08 due to fan curve and potential charging quirk.)

(Btw, any plans on enabling non-standalone pre-OS external display out on other generations? My 11th Gen doesnā€™t do it unless I disconnect the eDP internal screen. How about everything newer than 12th Gen? Is this capability already enabled? Iā€™m somewhat interested upgrading, and I use laptop closed with external monitor all the time, so just wanted to make sure)

Installed via Windows updater and seems to be working.

2 remarks. I was disappointed to see that you are still force-updating the ME firmware. My first update failed, because the Dell power supply I was using (130W, dell proprietary crap) is ignored when attached during boot and so the updater refused to proceed with the capsule part of the update. And retrying with another power supply led to it going through the entire process of updating ME firmware again, even though it was already updated from the first attempt.

On another note: the PD firmware update actually fixes that issue, now I do not need to replug that power supply anymore on rebootsā€¦

2nd: the USB4 measured boot stuff:
What precisely is that option managing? I understand measured boot just fine. On my previous laptop, eGPUs being attached during boot could mess with measured boot (for bitlocker) because of the GPUā€™s option ROM that was automatically loaded. But it had an option to simply not boot any optionROM behind the TB controller, solving that problem for all the cases, in which no optionROM is needed (which would really only be needed by a GPU for boot support or for example a RAID card with boot support or LAN adapter with integrated PXE boot ROM.

The description of your new USB4 measured boot option, makes it seem like it would not stop optionROMs behind the USB4 controllers from booting, but simply not measuring the USB4 or PCIe topology of it. Is that true? Did the platform not only measure all bootROMs/ BIOS code executed, but ALSO the current PCIe topology behind the USB4 ports? Or is that BIOS setting very mislabeled?
Or is that option only skipping the measuring of booted optionROMs, but not preventing them from being loaded, which would be a big security issue?

I can confirm, my eGPU no longer messes with measured boot, if that option is disabled, but Iā€™d like clarification whether this comes at security cost or not (and how great of a cost).

Yes, 3.09 can be downgraded to 3.08. Just follow the update instruction.

Just updated from 3.08 with the exe following the instructions, everything went without a single issue (so far).
Thanks !

Did the Linux/Other/UEFI Shell update (Fedory 41) and had no issues! Thanks!
Edit: Came from 3.08

This is awesome! Great update, love seeing framework on top of vulns :flexed_biceps:

1 Like

Did the update just now using the EFI updater, I had no issues.

Very easy, only part I got hung up on was that I thought I had to restart again to do the retimer updates but actually my retimers were already up-to-date. So took an extra 5 minutes for me to double check all the versions to make sure everything had gone through correctly, since I was expecting a second restart to be needed.

Everything seems to be working fine, Iā€™ll post again if it turns out anything is broken later :slight_smile:

Updated with EFI. First time when not connected it said ā€œupdatingā€ and then just rebooted.
later tried again with ac connected, and it actually updated with no issues so far.

Thanks for the good work :slight_smile:

1 Like

I had a small issue that I have not seen before: the power led signalled sleeping, while the notebook was wide awake and in use. I did not notice when it started doing that, if from waking up from actual sleep or in the middle of being awake. Did not affect anything else and putting it to sleep quickly and waking it up again put it back into sync with the actual state.

No steps to reproduce at this time, will edit in case it happens again and I find out more.

I currently have 3.05 on several boards and am trying to update to 3.09, and am getting stuck on the actual BIOS update (i.e. after the PD updates and CMDB but before the retimers). CapsuleApp.efi runs and reboots but then just reboots again after getting to the Framework logo, then takes a bit longer to reboot and then goes right back to the update script again.

Running ā€œCapsuleUpdate.efi -Sā€ shows ā€œCapsule Status: Abortedā€.

Was this actually tested against 3.05?

P.S. Iā€™m updating these standalone in a CoolerMaster case.

I finally got the BIOS update working by opening up the cooler master case and connecting a spare battery I had from when I upgraded to the 61Wh battery. I even tried with various independent power adapters and docks and the bios update wouldnā€™t initiate with any of them.

So, standalone update appears to be broken, at least when starting from 3.05ā€¦

Iā€™ve seen that twice with BIOS 3.08 (~ 1 month apart, couple of months ago) and assumed it was either caused by a kernel update or a confused EC. Iā€™m almost certain that it happened when the computer was still awake (but screen already turned off).

My laptop slept through the night and had battery the next day. Seems like the power related fixes are working, normally itā€™s dead by the time I wake up.

Updated from 3.08 to 3.09 (EFI method) without any problems (my retimers were already updated by upgrading from 3.04 to 3.06 Beta). No need to disable SecureBoot, boot loader and boot priority were not affected by the update.

A couple of observations:

  • The new Framework_Laptop_13_12th_Gen_Intel_Core_BIOS_3.09.exe for Windows seems a little different from the older msi updates for 3.06 and 3.08. It does no longer copy the capsule (Framework_Laptop_13_12th_Gen_Intel_Core_capsule_signed_allsku_3.09.cap) to C:\Windows\firmware or installs a ā€œdriverā€ but allows a install over the same BIOS version.

  • Audio now works in Haiku.

  • Even after disabling the new battery lifetime extender and toggling the battery charge limit several times, it seems no longer as reliable as before. With a charge limit of 80% set in BIOS, it has charged from 80% to 100% on power, from 67% to 98% (after disconnecting and reconnecting to power) and stayed at 92% (after disconnecting, letting the battery discharge a little, and connecting to power again). It works mostly fine if I explicitly change the charge limit temporarily with framework_tool in Linux (e.g., framework_tool --charge-limit 70).

  • The bottom gets (and stays for a prolonged time) significantly hotter than before (even on ā€œPower Saveā€ power profile), the fan now starts to accelerate much later (I actually thought it wouldnā€™t run at all until I booted into Windows for a test). The input cover gets uncomfortably warm during normal use. ā†’ This will make me try to downgrade to 3.08 again.

Are there more details available? Does this only work with the EFI method? Iā€™ve tried to downgrade with the 3.08 msi installer under Windows but could only downgrade the CSME (after acknowledging a warning that Iā€™m about to downgrade the firmware). But afterwards, the automatic process aborted at 99%.

BTW, that seems the wrong checksum for Framework_Laptop_13_12th_Gen_Intel_Core_Retimer_port23_310.exe (at least, this time no one uploaded the same file under two different names, so both sides can be updated).

1 Like

After spending nearly all morning trying to upgrade my standalone 12th gen boards, I successfully updated two 1280p boards and one 1240p. The other 1240p, well after the bios update it never started back up againā€¦

When I press the power button it appears to turn on, the fan spins, and eventually Iā€™m greeted with a blink codeā€¦ and the only thing thatā€™s red instead of green is ā€œTouchpad detectedā€, which is correct as itā€™s not connected.

Note that this is in a cooler master case but with a battery and screen connected.

Soā€¦ lovely update.

Seems like 3.09 has extremely conservative fan curve, making heat saturate the device and causes a much lower clock speed under sustained load.

1240P. Coming from 3.08, jumped between 3.08 and 3.09 about 3 times to confirm.

I used ā€˜Extreme Testā€™ in this web-based test, with Vivaldi browser, 24H2.

With 3.08, once I initiate an ā€˜Extreme Testā€™ which loads the CPU at 100% all cores, fan goes to max quickly. With fresh paste, CPU maintains ~2.1GHz sustained. (1240Pā€™s base is 1.70GHz)

With 3.09, under the same test, the fan is extremely hesitant to make itself known. Throughout the test, it occasionally slightly accelerates before slowing back down. The laptop is quiet alright, but CPU only maintains ~1.6GHz sustained, which is under the base frequency, scores significantly lower, and the heat radiating from the chassis is intense.

Dropped back to 3.08 restores the more effective fan curve. (Windows installer was weird when jumping between the two versions, but EFI method seems reliable)

Is there a new cooling setting on 3.09 that I missed? The more aggressive cooling on 3.08 delivers much better performance, and I suppose having the PCB saturated with intense heat canā€™t be good long-term.


Additionally, I observed strange charging behavior which might or might not be related to 3.09 Beta.

After initially updating to 3.09 by windows .exe installer with a Belkin WCH013dq charger, and connecting back to my regular S43BM702UN monitor after updating, I noticed my battery charge limit is being disregarded. BIOS showed my previous charge limit of 88% survived the upgrade, but battery was being charged way past that.

I decided to reset BIOS to default, disabled Battery Life Extender, and re-applied charge limit again. Upon saving and rebooting, laptop stuck on black screen while a transformer hum type of noise started in the center of the monitor (not where itā€™s built-in speakers are), a sound never occured previously.

The monitor hum stopped immediately upon disconnecting the laptop. I forced laptop to power off, waited a few minutes, and connected it back to the standalone Belkin charger, specifically the chargerā€™s the top port while an unused USB-C to Lightning cable was in the bottom port (which was never a problem). The Belkin chargerā€™s handshake behavior apparently became altered. I donā€™t have a USB-C meter but it was supplying very low wattage to the laptop and barely charging it. It seems happier when the unused Apple cable is removed, but itā€™s supposed to dynamically allocate based on what each port is actually pulling, that idling cable never caused issue before.

I pulled out my 11th Gen FW13 to confirm the charge is indeed slow, I might get a 1% increase when sitting on desktop for a few minutes, and loading the computer will cause battery % to drop. I further confirmed with a Samsung phone that the charger is indeed nerfing itself, as long as the Apple cable is present in the bottom port. Disconnecting the Apple cable does trigger the ā€˜Super Fast Chargingā€™ (25W iirc) on that phone, but Iā€™m unsure if itā€™s actually pushing 25W to the phone or 60W to the laptop, donā€™t have a USB-C meter handy and didnā€™t want to wait.

Disconnecting charger from AC and both cables, essentially rebooting it, restored the desired behavior. Now the unused USB-C to Lightning cable, and even when an iPhone is connected to it, no longer nerfs the other portā€™s output. I didnā€™t not reconnect with 12th Gen on 3.09 BIOS to poke the lion again.

I downgraded to 3.08 BIOS with an 87W Apple single-port charger.

2 Likes

Iā€™m seeing the same thing after upgrading from 3.08 to 3.09.

The update install was easy and smooth using the EFI instaler, though.