coreboot 24.05 release
The coreboot project is pleased to announce the release of coreboot version 24.05. This update represents three months of hard work and commitment from our community. With over 20 new members and contributions from more than a hundred fifty other people in coding, reviewing patches, and other areas, this release showcases the strength of our collaborative efforts.
With this release, coreboot has expanded its support, adding 25 new platforms or variants and 2 new processors, further demonstrating our dedication to offering flexible and adaptable firmware solutions. From laptops and servers to embedded devices, coreboot 24.05 is designed to enhance a variety of hardware platforms with its strong features.
We are grateful to all the contributors who have made this release possible. Your expertise and collaborative efforts continue to propel the coreboot project forward. We value the participation of everyone in the community, from long-time developers to those new to the project, and encourage you to explore the new opportunities that coreboot 24.05 offers.
Our next release will be 24.08, scheduled for mid-August.
Significant or interesting changes
Mark 64-bit support as stable
A significant amount of work has gone into fully supporting 64-bit coreboot builds. There are still additional pieces that are happening, but with SMM holding page tables itself, we can consider SMM support stable and safe enough for general use.
security/tpm: support compiling in multiple TPM drivers
Previously, boards could only be built with code supporting TPM 1.x or TPM 2.x specifications. This has been updated with code allowing both to be built in simultaneously, allowing the system to query the TPM. For systems with soldered-down TPMs or firmware TPM solutions, it’s still possible to specify a single TPM version so that the code for the other version isn’t included.
arch/arm64: Add EL1/EL2/EL3 support for arm64
Previously, arch/arm64 required coreboot to run on EL3 due to EL3 register access. This might be an issue when, for example, one boots into TF-A first and drops into EL2 for coreboot afterwards.
This patch aims at making arch/arm64 more versatile by removing the current EL3 constraint and allowing arm64 coreboot to run on EL1, EL2 and EL3.
The strategy is to add a Kconfig option (ARM64_CURRENT_EL) which allows us to specify coreboot’s EL upon entry. Based on that, we access the appropriate ELx registers. So, for example, when running coreboot on EL1, we would not access vbar_el3 or vbar_el2 but instead vbar_el1. This way, we don’t generate faults when accessing higher-EL registers.
Additional coreboot changes
util/smmstoretool: support processing ROMs
cpu/x86: Link page tables in stage if possible
lib/lzmadecode: Allow for 8 byte reads on 64bit to speed up decompression
mb/lenovo/*: Set VR12 PSI to fix crash
Numerous fixes for clang support
Ongoing code cleanup
Docs: Replace Recommonmark with MyST Parser. For changes, see the commit message in https://review.coreboot.org/73158
Changes to external resources
Toolchain updates
util/kconfig: Uprev to Linux 6.8’s kconfig
crossgcc: Upgrade CMake from 3.27.7 to version 3.28.3
util/crossgcc: Update LLVM from 16.0.6 to 17.0.6
crossgcc: Upgrade binutils from 2.41 to 2.42
util/crossgcc/buildgcc: Use Intel mirror for ACPICA
Git submodule pointers
amd_blobs: Update from commit id 64cdd7c8ef to ae5fc7d277 (1 commits)
arm-trusted-firmware: Update from commit id 17bef2248d to 48f1bc9f52 (517 commits)
cmocka: Update from commit id 8931845c35 to 8be3737209 (32 commits)
fsp: Update from commit id 507ef01cce to cc6399e8c7 (14 commits)
intel-microcode: Update from commit id ece0d294a2 to 41af345005 (1 commit)
vboot: Update from commit id 3d37d2aafe to 09fcd2184f (27 commits)
External payloads
payloads/U-Boot: Upgrade from U-Boot v2023.07 to v2024.4
payloads/edk2: Add Kconfig options for LAPIC timer & UFS support
payloads/Kconfig: Add flat binary as payload option
Platform Updates
Added mainboards:
AMD BirmanPlus for Glinda SoC
AMD BirmanPlus for Phoenix SoC
ASROCK Z97 Extreme6
Dell OptiPlex 7020/9020 MT
Dell OptiPlex 7020/9020 SFF
Framework Azalea (Framework 13 AMD 7040)
Google Brox EC ISH
Google Bujia
Google Glassway
Google Greenbayupoc
Google Kyogre
Google Lotso
Google Nova
Google Pujjoga
Google Riven
Google Skitty
Google Squirtle
Google Sundance
Google Tivviks
Google Trulo
Google Veluza
Google Wugtrio
Google Yavista
HP Pro 3500 Series
Lenovo ThinkCentre M700 / M900 Tiny
Lenovo ThinkCentre M710s
Raptor Computing Systems Talos II
SiFive HiFive Unmatched
Removed Mainboards
Intel Alderlake-M RVP
Intel Alderlake-M RVP with Chrome EC
Updated SoCs
Added src/soc/ibm/power9
Added src/soc/intel/xeon_sp/gnr
Added src/soc/sifive/fu740
Statistics from the 24.02 to the 24.05 release
Total Commits: 739
Average Commits per day: 8.64
Total lines added: 304721
Average lines added per commit: 412.34
Number of patches adding more than 100 lines: 60
Average lines added per small commit: 37.74
Total lines removed: 16195
Average lines removed per commit: 21.91
Total difference between added and removed: 288526
Total authors: 131
New authors: 23
Significant Known and Open Issues
coreboot-wide or architecture-wide issues
# |
Subject |
---|---|
522 |
‘region_overlap()’ issues due to an integer overflow. |
519 |
make gconfig - could not find glade file |
518 |
make xconfig - g++: fatal error: no input files |
Payload-specific issues
# |
Subject |
---|---|
499 |
edk2 boot fails with RESOURCE_ALLOCATION_TOP_DOWN enabled |
496 |
Missing malloc check in libpayload |
484 |
No USB keyboard support with secondary payloads |
414 |
X9SAE-V: No USB keyboard init on SeaBIOS using Radeon RX 6800XT |
Platform-specific issues
# |
Subject |
---|---|
524 |
X2APIC Options cause Linux to crash on emulation/qemu-i440fx |
517 |
lenovo x230 boot stuck with connected external monitor |
509 |
SD Card hotplug not working on Apollo Lake |
507 |
Windows GPU driver fails on Google guybrush & skyrim boards |
506 |
APL/GML don’t boot OS when CPU microcode included “from tree” |
505 |
Harcuvar CRB - 15 of 16 cores present in the operating system |
499 |
T440p - EDK2 fails with RESOURCE_ALLOCATION_TOP_DOWN enabled |
495 |
Stoney Chromebooks not booting PSPSecureOS |
478 |
X200 booting Linux takes a long time with TSC |
474 |
X200s crashes after graphic init with 8GB RAM |
457 |
Haswell (t440p): CAR mem region conflicts with CBFS_SIZE > 8mb |
453 |
Intel HDMI / DP Audio not present in Windows after libgfxinit |
449 |
ThinkPad T440p fail to start, continuous beeping & LED blinking |
448 |
Thinkpad T440P ACPI Battery Value Issues |
446 |
Optiplex 9010 No Post |
439 |
Lenovo X201 Turbo Boost not working (stuck on 2,4GHz) |
427 |
x200: Two battery charging issues |
412 |
x230 reboots on suspend |
393 |
T500 restarts rather than waking up from suspend |
350 |
I225 PCIe device not detected on Harcuvar |
coreboot Links and Contact Information
Main Website: https://www.coreboot.org
Downloads: https://coreboot.org/downloads.html
Source control: https://review.coreboot.org
Documentation: https://doc.coreboot.org
Issue tracker: https://ticket.coreboot.org/projects/coreboot
Donations: https://coreboot.org/donate.html