ec/google/chromeec: Define ACPI_NOTIFY_CROS_EC_MKBP constant
[coreboot.git] / Documentation / releases / coreboot-4.11-relnotes.md
blob789c19d507c8c47872e78a77bc0d4fcec1cfb887
1 coreboot 4.11
2 =============
4 coreboot 4.11 was released on November 19th.
6 This release cycle was a bit shorter to get closer to our regular
7 schedule of releasing in spring and autumn.
9 Since 4.10 there were 1630 new commits by over 130 developers.
10 Of these, about 30 contributed to coreboot for the first time.
12 Thank you to all contributors who made 4.11 what it is and welcome
13 to the project to all new contributors!
15 Clean Up
16 --------
18 The past few months saw lots of cleanup across the source tree:
20 The included headers in source files were stripped down to avoid reading
21 unused headers, and unused code fragments, duplicate preprocessor symbols
22 and configuration options were eliminated. Even ACPI got its share
23 of attention, making our tables and bytecode more standards compliant
24 than ever.
26 The code across Intel's chipsets was unified some more into drivers for
27 common function blocks, an effort we're more confident will succeed now
28 that Intel itself is driving it.
30 Chipset work
31 ------------
33 Most activity in the last couple months was on Intel support,
34 specifically the Kaby Lake and Cannon Lake drivers were extended
35 for the generations following them.
37 On ARM, the Mediatek 8173 chipset support saw significant work while
38 the AMD side worked on getting Picasso support in.
40 But everything else also saw some action, the relatively old
41 (e.g. Intel GM45, Via VX900), the tiny (RISC-V) and the obscure
42 (Quark).
44 Verified Boot
45 -------------
47 The vboot feature that Chromebooks brought into coreboot was extended
48 to work on devices that weren't specially adapted for it: In addition
49 to its original device family it's now supported on various Lenovo
50 laptops, Open Compute Project systems and Siemens industrial machines.
52 Eltan's support for measured boot continues to be integrated with
53 vboot, sharing data structures and generally working together where
54 possible.
56 New devices
57 -----------
59 With 4.11 there's the beginning of support for Intel Tiger Lake and
60 Qualcomm's SC7180 SoCs, while we removed the unmaintained support
61 for Allwinner's A10 SoC.
63 There are also 25 new mainboards in our tree:
65 * AMD PADMELON
66 * ASUS P5QL-EM
67 * EMULATION QEMU-AARCH64
68 * GOOGLE AKEMI
69 * GOOGLE ARCADA CML
70 * GOOGLE DAMU
71 * GOOGLE DOOD
72 * GOOGLE DRALLION
73 * GOOGLE DRATINI
74 * GOOGLE JACUZZI
75 * GOOGLE JUNIPER
76 * GOOGLE KAKADU
77 * GOOGLE KAPPA
78 * GOOGLE PUFF
79 * GOOGLE SARIEN CML
80 * GOOGLE TREEYA
81 * GOOGLE TROGDOR
82 * LENOVO R60
83 * LENOVO T410
84 * LENOVO THINKPAD T440P
85 * LENOVO X301
86 * RAZER BLADE-STEALTH KBL
87 * SIEMENS MC-APL6
88 * SUPERMICRO X11SSH-TF
89 * SUPERMICRO X11SSM-F
91 In addition to the Cubieboard (which uses the A10 SoC), we also
92 removed Google Hatch WHL.
94 Deprecations
95 ------------
97 Because there was only a single developer board (AMD Torpedo)
98 using AGESA family 12h, and because there were multiple,
99 unique Coverity issues with it, the associated vendorcode will
100 be removed shortly after this release.
102 Support for the MIPS architecture will also be removed shortly after
103 this release as the only board in the tree was a discontinued development
104 board and no other work has picked up MIPS support, so it's very likely
105 broken already.
107 After more than a year of planning and following the announcement in
108 coreboot 4.10, platforms not using relocatable ramstage, a C bootblock
109 and, on systems using Cache as RAM, a postcar stage, won't be supported
110 going forward.
112 Significant changes
113 -------------------
115 ### `__PRE_RAM__` is deprecated
117 Preprocessor use of `defined(__PRE_RAM__)` have been mostly replaced with
118 `if (ENV_ROMSTAGE_OR_BEFORE)` or the inverse `if (ENV_RAMSTAGE)`.
120 The remaining cases and `-D__PRE_RAM__` are to be removed soon after release.
122 ### `__BOOTBLOCK__` et.al. are converted
124 This applies to all `ENV_xxx` definitions found in `<rules.h>`.
126 Write code without preprocessor directives whenever possible, replacing
127 `#ifdef __BOOTBLOCK__` with  `if (ENV_BOOTBLOCK)`
129 In cases where preprocessor is needed use `#if ENV_BOOTBLOCK` instead.
131 ### `CAR_GLOBAL` is removed where possible
133 For all platform code with `NO_CAR_GLOBAL_MIGRATION=y`, any `CAR_GLOBAL`
134 attributes have been removed. Remaining cases from common code are to be
135 removed soon after release.
137 ### `TSEG` and  `cbmem_top()` mapping
139 Significant refactoring has been done to achieve some consistency across platforms
140 and to reduce code duplication.
142 ### Build system amenities ###
144 The build system now has an `all` class of source files to remove the need to
145 list source files for each and every source class (romstage, ramstage, ...)
147 The site-local/ mechanism became more robust.
149 ### Stricter coding standards to improve security ###
151 The build now fails on variable length arrays (that make it way too easy to
152 smash a stack) and case statements falling through without a note that it is
153 intentional.
155 ### Shorter file headers ###
157 This project is still under way, but we started moving author information
158 from individual files into the global AUTHORS file (and there's the git
159 history for more details).
161 In the future, we also want to replace the license headers (lots of lines)
162 in each file with spdx identifiers (one line) and so we added a LICENSES/
163 directory that contains the full text of all the licenses that are used
164 throughout our tree.
166 ### Variant creation scripts ###
168 To ease the creation of variant boards, `util/mainboard/` now contains
169 scripts to generate a new variant to a given board. These are still
170 specific to google/hatch at this time, but they're written with the idea
171 of becoming more generally useful.
173 ### Payloads ###
175 Payload integration has been updated, coreinfo learned to cope with
176 UPPER CASE commands and libpayload knows how to deal with USB3 hubs.
178 ### Added vboot support to the following platforms:
180 * intel/gm45
181 * intel/nehalem
183 ### Moved the following platforms to C_ENVIRONMENT_BOOTBLOCK:
185 * intel/i945
186 * intel/x4x
187 * intel/gm45
188 * intel/nehalem
189 * intel/sandybridge
190 * intel/braswell
192 ### libgfxinit ###
194 Most notable, dynamic CDClk configuration was added to libgfxinit,
195 to support higher resolution displays without changes in the static
196 configuration. It also received some fixes for better DP and eDP
197 compatibility, better error recovery for Intel's fickle GMBus and
198 updated platform support:
199 * Correct HDMI clock limit for G45.
200 * DP support for Ibex Peak (Ironlake graphics).
201 * Fixed scaling on eDP for Broadwell.
202 * Support for ULX variants of Haswell and later.
203 * Support for Kaby, Amber, Coffee and Whiskey Lake.
205 ### Other
206 * Did cleanups around TSC timer
207 * Improved automatic VR configuration on SKL/KBL
208 * Filled additional fields in SMBIOS type 4
209 * Removed magic value replay from Intel Nehalem/ibexpeak code base
210 * Added OpenSBI on RISCV platforms
211 * Did more preparations for Intel TXT support
212 * Did more preparations for x86_64 stage support
213 * Added SSDT generator for arbitrary SuperIO chips based on devicetree.cb