1coreboot 24.02 release 2======================================================================== 3 4The coreboot project is happy to announce our release for February 52024. Over the past three months, our contributors have focused on 6refining the coreboot codebase, generally prioritizing cleanup and 7quality enhancements. We extend our gratitude to all the contributors 8who have dedicated their time and expertise. Thank you for your 9invaluable contributions to this vital phase of maintenance and 10optimization. 11 12The next release is scheduled for mid-May. 13 14 15## Release number format update 16 17The previous release was the last to use the incrementing 4.xx release 18name scheme. For this and future releases, coreboot has switched to a 19Year.Month.Sub-version naming scheme. As such, the next release, 20scheduled for May of 2024 will be numbered 24.05, with the sub-version 21of 00 implied. If we need to do a fix or incremental release, we'll 22append the values .01, .02 and so on to the initial release value. 23 24 25## The master branch is being deleted 26 27The coreboot project changed from master to main roughly 6 months ago, 28and has been keeping the two branches in sync since then to ease the 29transition. As of this release, we are getting rid of the master branch 30completely. Please make sure any scripts you're using that reference the 31'master' branch have been switched to 'main'. 32 33 34Release 24.02.1 35--------------- 36 37### lib/rtc: Fix off-by-one error in February day count in leap year 38 39The month argument passed to rtc\_month\_days is 0-based, not 1-based. 40This results in the RTC being reverted to the build date constantly 41on 29th February 2024. 42 43 44Significant or interesting changes 45---------------------------------- 46 47### acpi: Add Arm IO Remapping Table structures 48 49Input Output Remapping Table (IORT) represents the IO topology of an Arm 50based system. 51 52Document number: ARM DEN 0049E.e, Sep 2022 53 54 55### acpi: Add PPTT support 56 57This patch adds code to generate Processor Properties Topology Tables 58(PPTT) compliant to the ACPI 6.4 specification. 59 60 - The 'acpi_get_pptt_topology' hook is mandatory once ACPI_PPTT is 61 selected. Its purpose is to return a pointer to a topology tree, 62 which describes the relationship between CPUs and caches. The hook 63 can be provided by, for example, mainboard code. 64 65Background: We are currently working on mainboard code for qemu-sbsa and 66Neoverse N2. Both require a valid PPTT table. Patch was tested against 67the qemu-sbsa board. 68 69 70### acpi: Add support for WDAT table 71 72This commit lays the groundwork for implementing the ACPI WDAT (Watchdog 73Action Table) table specification. The WDAT is a special ACPI table 74introduced by Microsoft that describes the watchdog for the OS. 75 76Platforms that need to implement the WDAT table must describe the 77hardware watchdog management operations as described in the 78specification. See “Links to ACPI-Related Documents” 79(http://uefi.org/acpi) under the heading “Watchdog Action Table”. 80 81 82### lib/jpeg: Replace decoder with Wuffs' implementation 83 84To quote its repo[0]: Wuffs is a memory-safe programming language (and a 85standard library written in that language) for Wrangling Untrusted File 86Formats Safely. Wrangling includes parsing, decoding and encoding. 87 88It compiles its library, written in its own language, to a C/C++ source 89file that can then be used independently without needing support for the 90language. That library is now imported to src/vendorcode/wuffs/. 91 92This change modifies our linters to ignore that directory because it's 93supposed to contain the wuffs compiler's result verbatim. 94 95Nigel Tao provided an initial wrapper around wuffs' jpeg decoder that 96implements our JPEG API. I further changed it a bit regarding data 97placement, dropped stuff from our API that wasn't ever used, or isn't 98used anymore, and generally made it fit coreboot a bit better. Features 99are Nigel's, bugs are mine. 100 101This commit also adapts our jpeg fuzz test to work with the modified 102API. After limiting it to deal only with approximately screen sized 103inputs, it fuzzed for 25 hours CPU time without a single hang or crash. 104This is a notable improvement over running the test with our old decoder 105which crashes within a minute. 106 107Finally, I tried the new parser with a pretty-much-random JPEG file I 108got from the internet, and it just showed it (once the resolution 109matched), which is also a notable improvement over the old decoder which 110is very particular about the subset of JPEG it supports. 111 112In terms of code size, a QEmu build's ramstage increases 113from 128060 bytes decompressed (64121 bytes after LZMA) 114 to 172304 bytes decompressed (82734 bytes after LZMA). 115 116[0] https://github.com/google/wuffs 117 118 119 120Additional coreboot changes 121--------------------------- 122 123* Rename Makefiles from .inc to .mk to better identify them 124* SPI: Add GD25LQ255E and IS25WP256D chip support 125* device: Add support for multiple PCI segment groups 126* device: Drop unused multiple downstream link support 127* device: Rename bus and link_list to upstream and downstream 128* Updated devicetree files for modern Intel platforms to use chipset.cb 129* Updated xeon-sp to use the coreboot allocator 130 131 132 133Changes to external resources 134----------------------------- 135 136### Toolchain updates 137* Add buildgcc support for Apple M1/M2 devices 138* Upgrade GCC from 11.4.0 to 13.2.0 139* Update CMake from 3.26.4 to 3.27.7 140* Uprev to Kconfig from Linux 6.7 141 142 143### Git submodule pointers 144 145* /3rdparty/amd_blobs: Update from commit id e4519efca7 to 64cdd7c8ef 146 (5 commits) 147* /3rdparty/arm-trusted-firmware: Update from commit id 88b2d81345 to 148 17bef2248d (701 commits) 149* /3rdparty/fsp: Update from commit id 481ea7cf0b to 507ef01cce (16 commits) 150* /3rdparty/intel-microcode: Update from commit id 6788bb07eb to 151 ece0d294a2 (1 commit) 152* /3rdparty/vboot: Update from commit id 24cb127a5e to 3d37d2aafe 153 (121 commits) 154 155 156### External payloads 157* payload/grub2: Update from 2.06 to 2.12 158* payload/seabios: Update from 1.16.2 to 1.16.3 159 160 161 162Platform Updates 163---------------- 164 165### Added mainboards: 166* Google: Dita 167* Google: Xol 168* Lenovo: ThinkPad X230 eDP Mod (2K/FHD) 169 170 171### Removed Mainboards 172* Google -> Primus4ES 173 174 175 176Statistics from the 4.22 to the 24.02 release 177-------------------------------------------- 178 179* Total Commits: 815 180* Average Commits per day: 8.63 181* Total lines added: 105433 182* Average lines added per commit: 129.37 183* Number of patches adding more than 100 lines: 47 184* Average lines added per small commit: 41.34 185* Total lines removed: 16534 186* Average lines removed per commit: 20.29 187* Total difference between added and removed: 88899 188* Total authors: 111 189* New authors: 19 190 191 192 193Significant Known and Open Issues 194--------------------------------- 195 196* AMD chromebooks will not work with the signed PSP_verstage images and 197 the version of verstage used in coreboot 24.02. 198 199 200Issues from the coreboot bugtracker: https://ticket.coreboot.org/ 201 202### coreboot-wide or architecture-wide issues 203 204```{eval-rst} 205+-----+-----------------------------------------------------------------+ 206| # | Subject | 207+=====+=================================================================+ 208| 522 | 'region_overlap()' issues due to an integer overflow. | 209+-----+-----------------------------------------------------------------+ 210| 519 | make gconfig - could not find glade file | 211+-----+-----------------------------------------------------------------+ 212| 518 | make xconfig - g++: fatal error: no input files | 213+-----+-----------------------------------------------------------------+ 214``` 215 216 217### Payload-specific issues 218 219```{eval-rst} 220+-----+-----------------------------------------------------------------+ 221| # | Subject | 222+=====+=================================================================+ 223| 499 | edk2 boot fails with RESOURCE_ALLOCATION_TOP_DOWN enabled | 224+-----+-----------------------------------------------------------------+ 225| 496 | Missing malloc check in libpayload | 226+-----+-----------------------------------------------------------------+ 227| 484 | No USB keyboard support with secondary payloads | 228+-----+-----------------------------------------------------------------+ 229| 414 | X9SAE-V: No USB keyboard init on SeaBIOS using Radeon RX 6800XT | 230+-----+-----------------------------------------------------------------+ 231``` 232 233 234### Platform-specific issues 235 236```{eval-rst} 237+-----+-----------------------------------------------------------------+ 238| # | Subject | 239+=====+=================================================================+ 240| 517 | lenovo x230 boot stuck with connected external monitor | 241+-----+-----------------------------------------------------------------+ 242| 509 | SD Card hotplug not working on Apollo Lake | 243+-----+-----------------------------------------------------------------+ 244| 507 | Windows GPU driver fails on Google guybrush & skyrim boards | 245+-----+-----------------------------------------------------------------+ 246| 506 | APL/GML don't boot OS when CPU microcode included "from tree" | 247+-----+-----------------------------------------------------------------+ 248| 505 | Harcuvar CRB - 15 of 16 cores present in the operating system | 249+-----+-----------------------------------------------------------------+ 250| 499 | T440p - EDK2 fails with RESOURCE_ALLOCATION_TOP_DOWN enabled | 251+-----+-----------------------------------------------------------------+ 252| 495 | Stoney Chromebooks not booting PSPSecureOS | 253+-----+-----------------------------------------------------------------+ 254| 478 | X200 booting Linux takes a long time with TSC | 255+-----+-----------------------------------------------------------------+ 256| 474 | X200s crashes after graphic init with 8GB RAM | 257+-----+-----------------------------------------------------------------+ 258| 457 | Haswell (t440p): CAR mem region conflicts with CBFS_SIZE > 8mb | 259+-----+-----------------------------------------------------------------+ 260| 453 | Intel HDMI / DP Audio not present in Windows after libgfxinit | 261+-----+-----------------------------------------------------------------+ 262| 449 | ThinkPad T440p fail to start, continuous beeping & LED blinking | 263+-----+-----------------------------------------------------------------+ 264| 448 | Thinkpad T440P ACPI Battery Value Issues | 265+-----+-----------------------------------------------------------------+ 266| 446 | Optiplex 9010 No Post | 267+-----+-----------------------------------------------------------------+ 268| 439 | Lenovo X201 Turbo Boost not working (stuck on 2,4GHz) | 269+-----+-----------------------------------------------------------------+ 270| 427 | x200: Two battery charging issues | 271+-----+-----------------------------------------------------------------+ 272| 412 | x230 reboots on suspend | 273+-----+-----------------------------------------------------------------+ 274| 393 | T500 restarts rather than waking up from suspend | 275+-----+-----------------------------------------------------------------+ 276| 350 | I225 PCIe device not detected on Harcuvar | 277+-----+-----------------------------------------------------------------+ 278``` 279 280 281 282coreboot Links and Contact Information 283-------------------------------------- 284 285* Main Web site: https://www.coreboot.org 286* Downloads: https://coreboot.org/downloads.html 287* Source control: https://review.coreboot.org 288* Documentation: https://doc.coreboot.org 289* Issue tracker: https://ticket.coreboot.org/projects/coreboot 290* Donations: https://coreboot.org/donate.html 291