diff options
-rw-r--r-- | Documentation/releases/coreboot-24.08-relnotes.md | 408 |
1 files changed, 361 insertions, 47 deletions
diff --git a/Documentation/releases/coreboot-24.08-relnotes.md b/Documentation/releases/coreboot-24.08-relnotes.md index b509b2a743..046b77b321 100644 --- a/Documentation/releases/coreboot-24.08-relnotes.md +++ b/Documentation/releases/coreboot-24.08-relnotes.md @@ -1,37 +1,223 @@ Upcoming release - coreboot 24.08 ======================================================================== -The 24.08 release is scheduled for Mid Aug, 2024 +We are pleased to announce the release of coreboot 24.08, another significant +milestone in our ongoing commitment to delivering open-source firmware +solutions. This release includes over 900 commits, contributed by more than 130 +dedicated individuals from our global community. The updates in 24.08 bring +various enhancements, optimizations, and new features that further improve the +reliability and performance of coreboot across supported platforms. - -Update this document with changes that should be in the release notes. - -* Please use Markdown. -* See the past few release notes for the general format. -* The chip and board additions and removals will be updated right - before the release, so those do not need to be added. -* Note that all changes before the release are done are marked upcoming. - A final version of the notes are done after the release. +We extend our sincere thanks to the patch authors, reviewers, and everyone +involved in the coreboot community for their hard work and dedication. Your +contributions continue to advance and refine coreboot with each release. As +always, thank you for your support and collaboration in driving the future of +open-source firmware. The next coreboot release, 24.11 is planned for mid +November. Significant or interesting changes ---------------------------------- -* Add changes that need a full description here +### Introduce region_create() functions + +We introduce two new functions to create region objects. They allow us to check +for integer overflows (`region_create_untrusted()`) or assert their absence +(`region_create()`). + +This fixes potential overflows in `region_overlap()` checks in SMI handlers, where +we would wrongfully report MMIO as *not* overlapping SMRAM. + +Also, two cases of `strtol()` in `parse_region()` (cbfstool), where the results were +implicitly converted to `size_t`, are replaced with the unsigned `strtoul()`. + +FIT payload support is left out, as it doesn't use the region API (only the +struct). + +Ticket: <https://ticket.coreboot.org/issues/522> \ +Review: <https://review.coreboot.org/79905> + + +### lib/device_tree: Add some FDT helper functions + +This adds some helper functions for FDT (Flattened Device Tree) , since more and +more mainboards seem to need FDT nowadays. For example our QEMU boards need it +in order to know how much RAM is available. Also all RISC-V boards in our tree +need FDT. + +This also adds some tests in order to test said functions. + +Review: <https://review.coreboot.org/c/coreboot/+/81081> + + +### device_tree: Add function to get top of memory from a FDT blob + +coreboot needs to figure out top of memory to place CBMEM data. On some non-x86 +QEMU virtual machines, this is achieved by probing the RAM space to find where +the VM starts discarding data since it's not backed by actual RAM. This behavior +seems to have changed on the QEMU side since then, VMs using the "virt" model +have started raising exceptions/errors instead of silently discarding data +(likely [1] for example) which has previously broken coreboot on these emulation +boards. + +The qemu-aarch64 and qemu-riscv mainboards are intended for the "virt" models +and had this issue, which was mostly fixed by using exception handlers in the +RAM detection process [2][3]. But on 32-bit RISC-V we fail to initialize CBMEM +if we have 2048 MiB or more of RAM, and on 64-bit RISC-V we had to limit probing +to 16383 MiB because it can run into MMIO regions otherwise. + +The qemu-armv7 mainboard code is intended for the "vexpress-a9" model VM which +doesn't appear to suffer from this issue. Still, the issue can be observed on +the ARMv7 "virt" model via a port based on qemu-aarch64. + +QEMU docs for ARM and RISC-V "virt" models [4][5] recommend reading the device +tree blob it provides for device information (incl. RAM size). Implement +functions that parse the device tree blob to find described memory regions and +calculate the top of memory in order to use it in mainboard code as an +alternative to probing RAM space. ARM64 code initializes CBMEM in romstage where +malloc isn't available, so take care to do parsing without unflattening the blob +and make the code available in romstage as well. + +[1] <https://lore.kernel.org/qemu-devel/1504626814-23124-1-git-send-email-peter.maydell@linaro.org/T/#u> \ +[2] <https://review.coreboot.org/c/coreboot/+/34774> \ +[3] <https://review.coreboot.org/c/coreboot/+/36486> \ +[4] <https://qemu-project.gitlab.io/qemu/system/arm/virt.html> \ +[5] <https://qemu-project.gitlab.io/qemu/system/riscv/virt.html> + +Review: <https://review.coreboot.org/c/coreboot/+/80322> + + +### drivers/wifi: Support Bluetooth Regulator Domain Settings + +The 'Bluetooth Increased Power Mode - SAR Limitation' feature provides ability +to utilize increased device Transmit power capability for Bluetooth applications +in coordination with Wi-Fi adhering to product SAR (Specific Absorption Rate) +limit when Bluetooth and Wi-Fi run together. + +This commit introduces a `bluetooth_companion' field to the generic Wi-Fi +drivers chip data. This field can be set in the board design device tree to +supply the bluetooth device for which the BRDS function must be created. + +The implementation follows document 559910 Intel Connectivity Platforms BIOS +Guideline revision 8.3 specification. + +Review: <https://review.coreboot.org/c/coreboot/+/83200> + + +### acpigen_ps2_keybd: Support Do Not Disturb & Accessibility Keys + +These commits add support for a Do Not Disturb key and an Accessibility key. + +HUTRR94 added support for a new usage titled "System Do Not Disturb" which +toggles a system-wide Do Not Disturb setting. + +HUTRR116 added support for a new usage titled "System Accessibility Binding" +which toggles a system-wide bound accessibility UI or command. + +HUTRR94: <https://www.usb.org/sites/default/files/hutrr94_-_system_do_not_disturb.pdf> \ +HUTRR116: <https://www.usb.org/sites/default/files/hutrr116-systemaccessbilitybinding_2.pdf> -* This section should have full descriptions and can or should have - a link to the referenced commits. +Review: <https://review.coreboot.org/c/coreboot/+/82997> \ +Review: <https://review.coreboot.org/c/coreboot/+/82996> + + +### superio/ite/common: Add common driver for GPIO and LED configuration + +Add a generic driver to configure GPIOs and LEDs on common ITE SuperIOs. The +driver supports most ITE SuperIOs, except Embedded Controllers. The driver +allows configuring every GPIO property with pin granularity. + +Verified against datasheets of all ITE SIOs currently supported by coreboot, +except IT8721F (assumed to be the same as IT8720F), IT8623E and IT8629E. + +Review: <https://review.coreboot.org/c/coreboot/+/83355> + + +### util/cbfstool: Fix linux_trampoline.c generation + +linux_trampoline.c generation is broken with latest crossgcc-i386 toolchain. Fix +the issue to enable the building. + +``` +../cbfstool/linux_trampoline.S: Assembler messages: +../cbfstool/linux_trampoline.S:100: Error: no instruction mnemonic + suffix given and no register operands; can't size instruction +<builtin>: recipe for target '../cbfstool/linux_trampoline.o' failed +``` + +Review: <https://review.coreboot.org/c/coreboot/+/82704> + + +### Add LeanEFI payload + +This adds another external payload to coreboot. The payload has been heavily +based on u-boots UEFI implementation. + +The LeanEFI payload is basically a translator from coreboot to UEFI. It takes +the coreboot tables and transforms them into UEFI interfaces. Although it can +potentially load any efi application that can handle the minimized interface +that LeanEFI provides, it has only been tested with LinuxBoot (v6.3.5) as a +payload. It has been optimized to support only those interfaces that Linux +requires to start. + +Among other LeanEFI does not support: +- efi capsule update (also efi system resource table) +- efi variables +- efi text input protocol (it can only output) +- most boot services. mostly memory services are left (e.g. alloc/free) +- all runtime services (although there is still a very small runtime + footprint that is planned to be removed in the near future) +- TCG2/TPM (although that is mostly because of laziness) +The README.md currently provides more details on why. + +The payload currently only supports arm64 and has only been tested on +emulation/simulator targets. The original motivation was to get ACPI on arm64 +published to the OS without using EDK2. It is however also possible to supply +the LeanEFI with a FDT that is published to the OS. At that point one would +however probably use coreboot only instead of this shim layer on top. It would +be way nicer to have Linux support something other than UEFI to propagate the +ACPI tables, but it requires getting the Linux maintainer/community on board. So +for now this shim layer circumvents that. + +LBBR Test: +1. dump FDT from QEMU like mentioned in aarch64 coreboot doc +2. compile u-root however you like (aarch64) +3. compile Linux (embed u-root initramfs via Kconfig) +4. copy Linux kernel to payloads/leanefi/Image +5. copy following coreboot defconfig to configs/defconfig: +``` +CONFIG_BOARD_EMULATION_QEMU_AARCH64=y +CONFIG_PAYLOAD_NONE=n +CONFIG_PAYLOAD_LEANEFI=y +CONFIG_LEANEFI_PAYLOAD=y +CONFIG_LEANEFI_PAYLOAD_PATH="[path-to-linux]/arch/arm64/boot/Image" +CONFIG_LEANEFI_FDT=y +CONFIG_LEANEFI_FDT_PATH="[path-to-dumped-DTB]" +``` +6. compile coreboot \ +`make defconfig` \ +`make -j$(nproc)` +7. run qemu like mentioned in coreboot doc (no FIT) +8. say hello to u-root and optionally kexec into the next kernel + +Review: <https://review.coreboot.org/c/coreboot/+/78913> Additional coreboot changes --------------------------- -The following are changes across a number of patches, or changes worth -noting, but not needing a full description. - -* Changes that only need a line or two of description go here. +* Dropped ChromeEC as a submodule. +* Numerous updates to autoport tool, including Haswell support. +* Upgrade to Wuffs 0.4.0-alpha.8 +* Add x86_64 (64-bit) support to LibPayload +* Add hda-decoder utility that dumps decoded HDA default configuration registers +* Add SBMIOS tables for arm64 platforms +* cpu/x86/lapic: Always have LAPIC enabled +* arch/arm64: Support calling a trusted monitor +* drivers/wifi: Support Wi-Fi 7 11be Enablement +* drivers/wifi: Support Radio Frequency Interference Mitigation @@ -45,55 +231,183 @@ Changes to external resources * Upgrade LLVM from 17.0.6 to 18.1.6 * Upgrade GCC from 13.2 to 14.1.0 -### Git submodule pointers - -### External payloads +### Git submodule pointers +* /3rdparty/amd_blobs: Update from commit ae5fc7d277 to 26c572974b (2 commits) +* /3rdparty/arm-trusted-firmware: Update from commit 48f1bc9f52 to c5b8de86c8 (430 commits) +* /3rdparty/fsp: Update from commit cc6399e8c7 to 800c85770b (23 commits) +* /3rdparty/intel-microcode: Update from commit 41af345005 to 5278dfcf98 (2 commits) +* /3rdparty/libgfxinit: Update from commit a4be8a21b0 to 17cfc92f40 (5 commits) +* /3rdparty/vboot: Update from commit 09fcd2184f to f1f70f46dc (69 commits) Platform Updates ---------------- -### Added mainboards: -* To be filled in immediately before the release by the release team - - -### Removed Mainboards -* To be filled in immediately before the release by the release team - - -### Updated SoCs -* To be filled in immediately before the release by the release team - - - -Plans to move platform support to a branch ------------------------------------------- -* To be filled in immediately before the release by the release team +### New mainboards: + +* Acer Q45T-AM +* AOOSTAR WTR R1 +* ASROCK Fatal1ty Z87 Professional +* ASROCK Z87E-ITX +* ASROCK Z87M OC Formula +* ASROCK Z97E-ITX/ac +* CWWK CW-ADL-4L-V1.0 +* Dell Inc. Latitude E6430 +* Dell Inc. Latitude E7240 +* Dell Inc. XPS 8300 +* Emulation QEMU sbsa +* GIGABYTE GA-H61M-S2P-R3 +* Google Awasuki +* Google Brox TI PDC +* Google Domika +* Google Fatcat +* Google Jubilant +* Google Orisa +* Google Rauru +* Google Rex 64 +* Google Teliks +* Google Tereid +* HP EliteBook 8560w +* Intel Avenue City CRB +* Intel Beechnut City CRB +* Protectli VP6630/VP6650/VP6670 +* Star Labs Star Labs Lite Mk V (N200) +* System76 addw4 +* System76 darp10 +* System76 darp10-b +* System76 oryp12 + + +### Updated SoCs & socket definitions + +* Added src/cpu/intel/socket_LGA1700 +* Added src/cpu/intel/socket_LGA3647_1 +* Added src/cpu/intel/socket_LGA4189 +* Added src/cpu/intel/socket_LGA4677 +* Added src/soc/intel/pantherlake +* Added src/soc/mediatek/mt8196 Statistics from the 24.05 to the 24.08 release --------------------------------------------- -* To be filled in immediately before the release by the release team +---------------------------------------------- + +* Total Commits: 883 +* Average Commits per day: 8.78 +* Total lines added: 105457 +* Average lines added per commit: 119.43 +* Number of patches adding more than 100 lines: 98 +* Average lines added per small commit: 37.67 +* Total lines removed: 18689 +* Average lines removed per commit: 21.17 +* Total difference between added and removed: 86768 +* Total authors: 136 +* New authors: 33 Significant Known and Open Issues --------------------------------- -Issues from the coreboot bugtracker: https://ticket.coreboot.org/ -* To be filled in immediately before the release by the release team - +### coreboot-wide or architecture-wide issues + +```{eval-rst} ++-----+-----------------------------------------------------------------+ +| # | Subject | ++=====+=================================================================+ +| 519 | make gconfig - could not find glade file | ++-----+-----------------------------------------------------------------+ +| 518 | make xconfig - g++: fatal error: no input files | ++-----+-----------------------------------------------------------------+ +``` + + +### Payload-specific issues + +```{eval-rst} ++-----+-----------------------------------------------------------------+ +| # | Subject | ++=====+=================================================================+ +| 552 | X201 not booting with edk2 payload | ++-----+-----------------------------------------------------------------+ +| 549 | SeaBIOS Windows 10/11 BSOD "ACPI BIOS ERROR" (Thinkpad W530) | ++-----+-----------------------------------------------------------------+ +| 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 + +```{eval-rst} ++-----+-----------------------------------------------------------------+ +| # | Subject | ++=====+=================================================================+ +| 548 | Lenovo X201 Fails To Recognize Upgraded WiFi Card | ++-----+-----------------------------------------------------------------+ +| 538 | x230: Dock Causes Internal Display to "Permanently" Malfunction | ++-----+-----------------------------------------------------------------+ +| 535 | T420: Power light stays off after reboot | ++-----+-----------------------------------------------------------------+ +| 528 | Building qemu-i440fx with CONFIG_CBFS_VERIFICATION fails | ++-----+-----------------------------------------------------------------+ +| 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 Web site: 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 +* Main Web site: <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> |