1 Upcoming release - coreboot 24.08
2 ========================================================================
4 We are pleased to announce the release of coreboot 24.08, another significant
5 milestone in our ongoing commitment to delivering open-source firmware
6 solutions. This release includes over 900 commits, contributed by more than 130
7 dedicated individuals from our global community. The updates in 24.08 bring
8 various enhancements, optimizations, and new features that further improve the
9 reliability and performance of coreboot across supported platforms.
11 We extend our sincere thanks to the patch authors, reviewers, and everyone
12 involved in the coreboot community for their hard work and dedication. Your
13 contributions continue to advance and refine coreboot with each release. As
14 always, thank you for your support and collaboration in driving the future of
15 open-source firmware. The next coreboot release, 24.11 is planned for mid
20 Significant or interesting changes
21 ----------------------------------
23 ### Introduce region_create() functions
25 We introduce two new functions to create region objects. They allow us to check
26 for integer overflows (`region_create_untrusted()`) or assert their absence
29 This fixes potential overflows in `region_overlap()` checks in SMI handlers, where
30 we would wrongfully report MMIO as *not* overlapping SMRAM.
32 Also, two cases of `strtol()` in `parse_region()` (cbfstool), where the results were
33 implicitly converted to `size_t`, are replaced with the unsigned `strtoul()`.
35 FIT payload support is left out, as it doesn't use the region API (only the
38 Ticket: <https://ticket.coreboot.org/issues/522> \
39 Review: <https://review.coreboot.org/79905>
42 ### lib/device_tree: Add some FDT helper functions
44 This adds some helper functions for FDT (Flattened Device Tree) , since more and
45 more mainboards seem to need FDT nowadays. For example our QEMU boards need it
46 in order to know how much RAM is available. Also all RISC-V boards in our tree
49 This also adds some tests in order to test said functions.
51 Review: <https://review.coreboot.org/c/coreboot/+/81081>
54 ### device_tree: Add function to get top of memory from a FDT blob
56 coreboot needs to figure out top of memory to place CBMEM data. On some non-x86
57 QEMU virtual machines, this is achieved by probing the RAM space to find where
58 the VM starts discarding data since it's not backed by actual RAM. This behavior
59 seems to have changed on the QEMU side since then, VMs using the "virt" model
60 have started raising exceptions/errors instead of silently discarding data
61 (likely [1] for example) which has previously broken coreboot on these emulation
64 The qemu-aarch64 and qemu-riscv mainboards are intended for the "virt" models
65 and had this issue, which was mostly fixed by using exception handlers in the
66 RAM detection process [2][3]. But on 32-bit RISC-V we fail to initialize CBMEM
67 if we have 2048 MiB or more of RAM, and on 64-bit RISC-V we had to limit probing
68 to 16383 MiB because it can run into MMIO regions otherwise.
70 The qemu-armv7 mainboard code is intended for the "vexpress-a9" model VM which
71 doesn't appear to suffer from this issue. Still, the issue can be observed on
72 the ARMv7 "virt" model via a port based on qemu-aarch64.
74 QEMU docs for ARM and RISC-V "virt" models [4][5] recommend reading the device
75 tree blob it provides for device information (incl. RAM size). Implement
76 functions that parse the device tree blob to find described memory regions and
77 calculate the top of memory in order to use it in mainboard code as an
78 alternative to probing RAM space. ARM64 code initializes CBMEM in romstage where
79 malloc isn't available, so take care to do parsing without unflattening the blob
80 and make the code available in romstage as well.
82 [1] <https://lore.kernel.org/qemu-devel/1504626814-23124-1-git-send-email-peter.maydell@linaro.org/T/#u> \
83 [2] <https://review.coreboot.org/c/coreboot/+/34774> \
84 [3] <https://review.coreboot.org/c/coreboot/+/36486> \
85 [4] <https://qemu-project.gitlab.io/qemu/system/arm/virt.html> \
86 [5] <https://qemu-project.gitlab.io/qemu/system/riscv/virt.html>
88 Review: <https://review.coreboot.org/c/coreboot/+/80322>
91 ### drivers/wifi: Support Bluetooth Regulator Domain Settings
93 The 'Bluetooth Increased Power Mode - SAR Limitation' feature provides ability
94 to utilize increased device Transmit power capability for Bluetooth applications
95 in coordination with Wi-Fi adhering to product SAR (Specific Absorption Rate)
96 limit when Bluetooth and Wi-Fi run together.
98 This commit introduces a `bluetooth_companion' field to the generic Wi-Fi
99 drivers chip data. This field can be set in the board design device tree to
100 supply the bluetooth device for which the BRDS function must be created.
102 The implementation follows document 559910 Intel Connectivity Platforms BIOS
103 Guideline revision 8.3 specification.
105 Review: <https://review.coreboot.org/c/coreboot/+/83200>
108 ### acpigen_ps2_keybd: Support Do Not Disturb & Accessibility Keys
110 These commits add support for a Do Not Disturb key and an Accessibility key.
112 HUTRR94 added support for a new usage titled "System Do Not Disturb" which
113 toggles a system-wide Do Not Disturb setting.
115 HUTRR116 added support for a new usage titled "System Accessibility Binding"
116 which toggles a system-wide bound accessibility UI or command.
118 HUTRR94: <https://www.usb.org/sites/default/files/hutrr94_-_system_do_not_disturb.pdf> \
119 HUTRR116: <https://www.usb.org/sites/default/files/hutrr116-systemaccessbilitybinding_2.pdf>
121 Review: <https://review.coreboot.org/c/coreboot/+/82997> \
122 Review: <https://review.coreboot.org/c/coreboot/+/82996>
125 ### superio/ite/common: Add common driver for GPIO and LED configuration
127 Add a generic driver to configure GPIOs and LEDs on common ITE SuperIOs. The
128 driver supports most ITE SuperIOs, except Embedded Controllers. The driver
129 allows configuring every GPIO property with pin granularity.
131 Verified against datasheets of all ITE SIOs currently supported by coreboot,
132 except IT8721F (assumed to be the same as IT8720F), IT8623E and IT8629E.
134 Review: <https://review.coreboot.org/c/coreboot/+/83355>
137 ### util/cbfstool: Fix linux_trampoline.c generation
139 linux_trampoline.c generation is broken with latest crossgcc-i386 toolchain. Fix
140 the issue to enable the building.
143 ../cbfstool/linux_trampoline.S: Assembler messages:
144 ../cbfstool/linux_trampoline.S:100: Error: no instruction mnemonic
145 suffix given and no register operands; can't size instruction
146 <builtin>: recipe for target '../cbfstool/linux_trampoline.o' failed
149 Review: <https://review.coreboot.org/c/coreboot/+/82704>
152 ### Add LeanEFI payload
154 This adds another external payload to coreboot. The payload has been heavily
155 based on u-boots UEFI implementation.
157 The LeanEFI payload is basically a translator from coreboot to UEFI. It takes
158 the coreboot tables and transforms them into UEFI interfaces. Although it can
159 potentially load any efi application that can handle the minimized interface
160 that LeanEFI provides, it has only been tested with LinuxBoot (v6.3.5) as a
161 payload. It has been optimized to support only those interfaces that Linux
164 Among other LeanEFI does not support:
165 - efi capsule update (also efi system resource table)
167 - efi text input protocol (it can only output)
168 - most boot services. mostly memory services are left (e.g. alloc/free)
169 - all runtime services (although there is still a very small runtime
170 footprint that is planned to be removed in the near future)
171 - TCG2/TPM (although that is mostly because of laziness)
172 The README.md currently provides more details on why.
174 The payload currently only supports arm64 and has only been tested on
175 emulation/simulator targets. The original motivation was to get ACPI on arm64
176 published to the OS without using EDK2. It is however also possible to supply
177 the LeanEFI with a FDT that is published to the OS. At that point one would
178 however probably use coreboot only instead of this shim layer on top. It would
179 be way nicer to have Linux support something other than UEFI to propagate the
180 ACPI tables, but it requires getting the Linux maintainer/community on board. So
181 for now this shim layer circumvents that.
184 1. dump FDT from QEMU like mentioned in aarch64 coreboot doc
185 2. compile u-root however you like (aarch64)
186 3. compile Linux (embed u-root initramfs via Kconfig)
187 4. copy Linux kernel to payloads/leanefi/Image
188 5. copy following coreboot defconfig to configs/defconfig:
190 CONFIG_BOARD_EMULATION_QEMU_AARCH64=y
191 CONFIG_PAYLOAD_NONE=n
192 CONFIG_PAYLOAD_LEANEFI=y
193 CONFIG_LEANEFI_PAYLOAD=y
194 CONFIG_LEANEFI_PAYLOAD_PATH="[path-to-linux]/arch/arm64/boot/Image"
196 CONFIG_LEANEFI_FDT_PATH="[path-to-dumped-DTB]"
198 6. compile coreboot \
201 7. run qemu like mentioned in coreboot doc (no FIT)
202 8. say hello to u-root and optionally kexec into the next kernel
204 Review: <https://review.coreboot.org/c/coreboot/+/78913>
208 Additional coreboot changes
209 ---------------------------
211 * Dropped ChromeEC as a submodule.
212 * Numerous updates to autoport tool, including Haswell support.
213 * Upgrade to Wuffs 0.4.0-alpha.8
214 * Add x86_64 (64-bit) support to LibPayload
215 * Add hda-decoder utility that dumps decoded HDA default configuration registers
216 * Add SBMIOS tables for arm64 platforms
217 * cpu/x86/lapic: Always have LAPIC enabled
218 * arch/arm64: Support calling a trusted monitor
219 * drivers/wifi: Support Wi-Fi 7 11be Enablement
220 * drivers/wifi: Support Radio Frequency Interference Mitigation
224 Changes to external resources
225 -----------------------------
227 ### Toolchain updates
229 * Upgrade CMake from 3.28.3 to 3.29.3
230 * Upgrade nasm from 2.16.01 to 2.16.03
231 * Upgrade LLVM from 17.0.6 to 18.1.6
232 * Upgrade GCC from 13.2 to 14.1.0
235 ### Git submodule pointers
237 * /3rdparty/amd_blobs: Update from commit ae5fc7d277 to 26c572974b (2 commits)
238 * /3rdparty/arm-trusted-firmware: Update from commit 48f1bc9f52 to c5b8de86c8 (430 commits)
239 * /3rdparty/fsp: Update from commit cc6399e8c7 to 800c85770b (23 commits)
240 * /3rdparty/intel-microcode: Update from commit 41af345005 to 5278dfcf98 (2 commits)
241 * /3rdparty/libgfxinit: Update from commit a4be8a21b0 to 17cfc92f40 (5 commits)
242 * /3rdparty/vboot: Update from commit 09fcd2184f to f1f70f46dc (69 commits)
252 * ASROCK Fatal1ty Z87 Professional
254 * ASROCK Z87M OC Formula
256 * CWWK CW-ADL-4L-V1.0
257 * Dell Inc. Latitude E6430
258 * Dell Inc. Latitude E7240
260 * Emulation QEMU sbsa
261 * GIGABYTE GA-H61M-S2P-R3
273 * Intel Avenue City CRB
274 * Intel Beechnut City CRB
275 * Protectli VP6630/VP6650/VP6670
276 * Star Labs Star Labs Lite Mk V (N200)
283 ### Updated SoCs & socket definitions
285 * Added src/cpu/intel/socket_LGA1700
286 * Added src/cpu/intel/socket_LGA3647_1
287 * Added src/cpu/intel/socket_LGA4189
288 * Added src/cpu/intel/socket_LGA4677
289 * Added src/soc/intel/pantherlake
290 * Added src/soc/mediatek/mt8196
294 Statistics from the 24.05 to the 24.08 release
295 ----------------------------------------------
298 * Average Commits per day: 8.78
299 * Total lines added: 105457
300 * Average lines added per commit: 119.43
301 * Number of patches adding more than 100 lines: 98
302 * Average lines added per small commit: 37.67
303 * Total lines removed: 18689
304 * Average lines removed per commit: 21.17
305 * Total difference between added and removed: 86768
311 Significant Known and Open Issues
312 ---------------------------------
314 ### coreboot-wide or architecture-wide issues
317 +-----+-----------------------------------------------------------------+
319 +=====+=================================================================+
320 | 519 | make gconfig - could not find glade file |
321 +-----+-----------------------------------------------------------------+
322 | 518 | make xconfig - g++: fatal error: no input files |
323 +-----+-----------------------------------------------------------------+
327 ### Payload-specific issues
330 +-----+-----------------------------------------------------------------+
332 +=====+=================================================================+
333 | 552 | X201 not booting with edk2 payload |
334 +-----+-----------------------------------------------------------------+
335 | 549 | SeaBIOS Windows 10/11 BSOD "ACPI BIOS ERROR" (Thinkpad W530) |
336 +-----+-----------------------------------------------------------------+
337 | 499 | edk2 boot fails with RESOURCE_ALLOCATION_TOP_DOWN enabled |
338 +-----+-----------------------------------------------------------------+
339 | 496 | Missing malloc check in libpayload |
340 +-----+-----------------------------------------------------------------+
341 | 484 | No USB keyboard support with secondary payloads |
342 +-----+-----------------------------------------------------------------+
343 | 414 | X9SAE-V: No USB keyboard init on SeaBIOS using Radeon RX 6800XT |
344 +-----+-----------------------------------------------------------------+
348 ### Platform-specific issues
351 +-----+-----------------------------------------------------------------+
353 +=====+=================================================================+
354 | 548 | Lenovo X201 Fails To Recognize Upgraded WiFi Card |
355 +-----+-----------------------------------------------------------------+
356 | 538 | x230: Dock Causes Internal Display to "Permanently" Malfunction |
357 +-----+-----------------------------------------------------------------+
358 | 535 | T420: Power light stays off after reboot |
359 +-----+-----------------------------------------------------------------+
360 | 528 | Building qemu-i440fx with CONFIG_CBFS_VERIFICATION fails |
361 +-----+-----------------------------------------------------------------+
362 | 524 | X2APIC Options cause Linux to crash on emulation/qemu-i440fx |
363 +-----+-----------------------------------------------------------------+
364 | 517 | lenovo x230 boot stuck with connected external monitor |
365 +-----+-----------------------------------------------------------------+
366 | 509 | SD Card hotplug not working on Apollo Lake |
367 +-----+-----------------------------------------------------------------+
368 | 507 | Windows GPU driver fails on Google guybrush & skyrim boards |
369 +-----+-----------------------------------------------------------------+
370 | 506 | APL/GML don't boot OS when CPU microcode included "from tree" |
371 +-----+-----------------------------------------------------------------+
372 | 505 | Harcuvar CRB - 15 of 16 cores present in the operating system |
373 +-----+-----------------------------------------------------------------+
374 | 499 | T440p - EDK2 fails with RESOURCE_ALLOCATION_TOP_DOWN enabled |
375 +-----+-----------------------------------------------------------------+
376 | 495 | Stoney Chromebooks not booting PSPSecureOS |
377 +-----+-----------------------------------------------------------------+
378 | 478 | X200 booting Linux takes a long time with TSC |
379 +-----+-----------------------------------------------------------------+
380 | 474 | X200s crashes after graphic init with 8GB RAM |
381 +-----+-----------------------------------------------------------------+
382 | 457 | Haswell (t440p): CAR mem region conflicts with CBFS_SIZE > 8mb |
383 +-----+-----------------------------------------------------------------+
384 | 453 | Intel HDMI / DP Audio not present in Windows after libgfxinit |
385 +-----+-----------------------------------------------------------------+
386 | 449 | ThinkPad T440p fail to start, continuous beeping & LED blinking |
387 +-----+-----------------------------------------------------------------+
388 | 448 | Thinkpad T440P ACPI Battery Value Issues |
389 +-----+-----------------------------------------------------------------+
390 | 446 | Optiplex 9010 No Post |
391 +-----+-----------------------------------------------------------------+
392 | 439 | Lenovo X201 Turbo Boost not working (stuck on 2,4GHz) |
393 +-----+-----------------------------------------------------------------+
394 | 427 | x200: Two battery charging issues |
395 +-----+-----------------------------------------------------------------+
396 | 412 | x230 reboots on suspend |
397 +-----+-----------------------------------------------------------------+
398 | 393 | T500 restarts rather than waking up from suspend |
399 +-----+-----------------------------------------------------------------+
400 | 350 | I225 PCIe device not detected on Harcuvar |
401 +-----+-----------------------------------------------------------------+
405 coreboot Links and Contact Information
406 --------------------------------------
408 * Main Web site: <https://www.coreboot.org>
409 * Downloads: <https://coreboot.org/downloads.html>
410 * Source control: <https://review.coreboot.org>
411 * Documentation: <https://doc.coreboot.org>
412 * Issue tracker: <https://ticket.coreboot.org/projects/coreboot>
413 * Donations: <https://coreboot.org/donate.html>