Skip to content

Commit 420d71e

Browse files
authored
Merge pull request #2148 from tlaurion/save_t420-hotp-maximized_once_more
config/coreboot-t420-maximized: align defconfig with cleaned defconfig pattern
2 parents 693ae77 + e3db198 commit 420d71e

3 files changed

Lines changed: 132 additions & 13 deletions

File tree

config/coreboot-t420-maximized.config

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@ CONFIG_COMPILER_GCC=y
1616
# CONFIG_IWYU is not set
1717
# CONFIG_FMD_GENPARSER is not set
1818
# CONFIG_UTIL_GENPARSER is not set
19-
# CONFIG_OPTION_BACKEND_NONE is not set
20-
CONFIG_USE_OPTION_TABLE=y
19+
CONFIG_OPTION_BACKEND_NONE=y
20+
# CONFIG_USE_OPTION_TABLE is not set
2121
# CONFIG_USE_CBFS_FILE_OPTION_BACKEND is not set
22-
CONFIG_STATIC_OPTION_TABLE=y
2322
CONFIG_COMPRESS_RAMSTAGE_LZMA=y
2423
# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set
2524
CONFIG_SEPARATE_ROMSTAGE=y
@@ -348,7 +347,7 @@ CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y
348347
# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS is not set
349348
# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_REQUESTED_VOLTAGE is not set
350349
# CONFIG_RAMINIT_ALWAYS_ALLOW_DLL_OFF is not set
351-
CONFIG_RAMINIT_ENABLE_ECC=y
350+
# CONFIG_RAMINIT_ENABLE_ECC is not set
352351
CONFIG_IGD_DEFAULT_UMA_SIZE_32MB=y
353352
# CONFIG_IGD_DEFAULT_UMA_SIZE_64MB is not set
354353
# CONFIG_IGD_DEFAULT_UMA_SIZE_96MB is not set

config/coreboot-t420-maximized.config_defconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
CONFIG_USE_OPTION_TABLE=y
2-
CONFIG_STATIC_OPTION_TABLE=y
31
CONFIG_BOOTSPLASH_IMAGE=y
42
CONFIG_BOOTSPLASH_FILE="@BRAND_DIR@/bootsplash.jpg"
53
CONFIG_BOOTSPLASH_CONVERT=y
@@ -15,12 +13,14 @@ CONFIG_HAVE_IFD_BIN=y
1513
CONFIG_BOARD_LENOVO_T420=y
1614
CONFIG_TPM_MEASURED_BOOT=y
1715
CONFIG_LINUX_COMMAND_LINE="quiet loglevel=2"
16+
# CONFIG_RAMINIT_ENABLE_ECC is not set
1817
# CONFIG_INTEL_CHIPSET_LOCKDOWN is not set
1918
CONFIG_HAVE_ME_BIN=y
2019
CONFIG_HAVE_GBE_BIN=y
2120
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
2221
CONFIG_BOOTSPLASH=y
2322
CONFIG_DRIVERS_PS2_KEYBOARD=y
23+
# CONFIG_USE_PC_CMOS_ALTCENTURY is not set
2424
# CONFIG_DRIVERS_MTK_WIFI is not set
2525
CONFIG_BOOTMEDIA_LOCK_CONTROLLER=y
2626
CONFIG_PAYLOAD_LINUX=y

doc/variation-to-defconfig.md

Lines changed: 127 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,134 @@
11
# Variation to defconfig (cleaned)
22

3-
This file lists configuration items found to be inconsistent and/or removed when generating defconfig with `make BOARD=XYZ coreboot.save_in_defconfig_format_in_place` helper for different boards.
3+
This file lists coreboot Kconfig options found to be inconsistent across
4+
boards after regenerating defconfigs with `make BOARD=XYZ
5+
coreboot.save_in_defconfig_format_in_place`. The goal is to document
6+
which values are "intentional" per-board differences vs. stale defaults
7+
that should be uniform.
48

9+
## CMOS option backend: OPTION_BACKEND_NONE vs USE_OPTION_TABLE
10+
11+
Coreboot can read configuration values (boot order, debug level, power-on
12+
behavior, etc.) from either compiled-in defaults or from CMOS NVRAM.
13+
14+
```
15+
OPTION_BACKEND_NONE (default in Heads)
16+
USE_OPTION_TABLE (explicit CMOS option table)
17+
```
18+
19+
`OPTION_BACKEND_NONE` means every value comes from the `.config` --
20+
Heads manages all runtime config through its initrd scripts and TPM
21+
measured boot, so the coreboot option table is redundant.
22+
23+
`USE_OPTION_TABLE` means coreboot reads those values from CMOS and the
24+
cmos.layout / cmos.default files are used at runtime. It also affects
25+
defaults of related options:
26+
27+
| Option | Default when OPTION_BACKEND_NONE | Default when USE_OPTION_TABLE=y |
28+
|---|---|---|
29+
| `USE_PC_CMOS_ALTCENTURY` | `y` | `n` |
30+
| `STATIC_OPTION_TABLE` | absent | depends on board |
31+
32+
**Heads impact:** Neither breaks anything. `OPTION_BACKEND_NONE` is
33+
preferred since Heads does not rely on coreboot's CMOS option table.
34+
35+
## Current state audit
36+
37+
Options are listed with their current count across all
38+
`config/coreboot-*.config` files and the per-board breakdown.
39+
40+
### CONFIG_USE_OPTION_TABLE
41+
42+
Total: **12 `=y`**, **35 `not set`**
43+
44+
`=y` boards (use CMOS option table):
45+
`kgpe-d16_server`, `kgpe-d16_server-whiptail`, `kgpe-d16_workstation`,
46+
`kgpe-d16_workstation-usb_keyboard`, `librem_mini`, `librem_mini_v2`,
47+
`t430-legacy`, `t430-maximized`, `t530-dgpu-maximized`,
48+
`w530-dgpu-K1000m-maximized`, `w530-dgpu-K2000m-maximized`,
49+
`w530-maximized`
50+
51+
Notable: among Ivy Bridge ThinkPads, T430/T530/W530 use option table but
52+
x230 does not -- this appears to be a historical artifact, not a
53+
technical requirement.
54+
55+
### CONFIG_STATIC_OPTION_TABLE
56+
57+
Total: **6 `=y`**, **6 `not set`**, rest absent (irrelevant when `USE_OPTION_TABLE=n`)
58+
59+
Only meaningful when `USE_OPTION_TABLE=y`. `=y` resets CMOS to defaults
60+
every boot. Present on: `t430-legacy`, `t430-maximized`,
61+
`t530-dgpu-maximized`, `w530-dgpu-K1000m-maximized`,
62+
`w530-dgpu-K2000m-maximized`, `w530-maximized`.
63+
64+
### CONFIG_USE_PC_CMOS_ALTCENTURY
65+
66+
Writes century byte to CMOS register `0x32` (`RTC_CLK_ALTCENTURY`) and
67+
reports it in ACPI FADT. Coreboot default is `y` when
68+
`!USE_OPTION_TABLE`. Help: "May be useful for legacy OSes that assume
69+
its presence." Heads boots Linux directly which handles century
70+
internally -- no functional impact either way.
71+
72+
Total: **29 `=y`**, **18 `not set`**
73+
74+
`=y` boards (using coreboot default, never explicitly disabled):
75+
`librem_11`, `librem_13v2`, `librem_13v4`, `librem_14`,
76+
`librem_15v3`, `librem_15v4`, `librem_l1um_v2`, `m900-maximized`,
77+
`msi_z690a_ddr4`, `msi_z690a_ddr5`, `msi_z790p_ddr4`,
78+
`msi_z790p_ddr5`, `optiplex-7019_9010-maximized`,
79+
`optiplex-7019_9010_TXT-maximized`, `p8z77-m_pro-tpm1`,
80+
`qemu-tpm1`, `qemu-tpm1-prod`, `qemu-tpm2`, `qemu-tpm2-prod`,
81+
`t420`, `t440p`, `t480-maximized`, `t480s-maximized`,
82+
`t520-maximized`, `w541`, `x220`, `x220-maximized`,
83+
`x230-maximized-fhd_edp`, `z220-cmt`
84+
85+
`not set` boards (explicitly cleaned):
86+
`librem_mini`, `librem_mini_v2`, `nitropad-ns50`,
87+
`novacustom-nv4x_adl`, `novacustom-v540tu`, `novacustom-v560tu`,
88+
`t420-maximized` *(cleaned 2026-07-01)*, `t430-legacy`,
89+
`t430-legacy-flash`, `t430-maximized`, `t530-dgpu-maximized`,
90+
`t530-maximized`, `w530-dgpu-K1000m-maximized`,
91+
`w530-dgpu-K2000m-maximized`, `w530-maximized`, `x230-legacy`,
92+
`x230-legacy-flash`, `x230-maximized`
93+
94+
Note: T430/T530/W530 are `not set` because their `USE_OPTION_TABLE=y`
95+
flips the default to `n` -- they were never explicitly set.
96+
97+
### CONFIG_RAMINIT_ENABLE_ECC
98+
99+
Only relevant on Sandy/Ivy Bridge boards using native raminit. Enables
100+
ECC memory initialization. Most laptop DIMMs are non-ECC, so this is
101+
typically harmless but useless.
102+
103+
Total: **14 `=y`**, **7 `not set`**, **34 absent** (non-native-raminit boards)
104+
105+
`=y` boards:
106+
`optiplex-7019_9010-maximized`, `optiplex-7019_9010_TXT-maximized`,
107+
`p8z77-m_pro-tpm1`, `t420`, `t430-maximized`, `t520-maximized`,
108+
`t530-dgpu-maximized`, `w530-dgpu-K1000m-maximized`,
109+
`w530-dgpu-K2000m-maximized`, `w530-maximized`, `x220`,
110+
`x220-maximized`, `x230-maximized-fhd_edp`, `z220-cmt`
111+
112+
`not set` boards:
113+
`t420-maximized` *(cleaned 2026-07-01)*, `t430-legacy`,
114+
`t430-legacy-flash`, `t530-maximized`, `x230-legacy`,
115+
`x230-legacy-flash`, `x230-maximized`
116+
117+
### CONFIG_PCI_ALLOW_BUS_MASTER
118+
119+
Total: nearly all `=y`. Only exception was `x230-maximized` which had
120+
`not set` -- listed below as a previously removed undesirable.
5121

6122
## Questionable configs
7123

8-
These options are inconsistent across boards and should be reviewed.
124+
Options that appeared in the `make BOARD=XYZ
125+
coreboot.save_in_defconfig_format_in_place` output and were found to be
126+
inconsistent across boards.
9127

10128
### Global
11129

12-
```text
13-
CONFIG_USE_OPTION_TABLE=y
130+
```
131+
CONFIG_USE_OPTION_TABLE=y # see CMOS option backend section above
14132
CONFIG_STATIC_OPTION_TABLE=y
15133
# CONFIG_USE_PC_CMOS_ALTCENTURY is not set
16134
# CONFIG_DRIVERS_MTK_WIFI is not set
@@ -24,15 +142,17 @@ CONFIG_PCI_ALLOW_BUS_MASTER=y
24142

25143
#### T480
26144

27-
```text
145+
```
28146
CONFIG_USE_LEGACY_8254_TIMER=y
29147
```
30148

31149
## Removed undesirables
32150

33-
The following lines were removed from specific board defconfig variations. Filenames (when present) are listed above their removed fragments.
151+
The following lines were removed from specific board defconfig
152+
variations. Filenames (when present) are listed above their removed
153+
fragments.
34154

35-
```text
155+
```
36156
config/coreboot-optiplex-7019_9010-maximized.config
37157
CONFIG_TIMESTAMPS_ON_CONSOLE=y
38158
config/coreboot-optiplex-7019_9010_TXT-maximized.config

0 commit comments

Comments
 (0)