t420 owners (and t430 users) : Why CONFIG_USE_OPTION_TABLE, CONFIG_STATIC_OPTION_TABLE and CONFIG_GENERIC_LINEAR_FRAMEBUFFER are defined under coreboot configs?
Nobody has claimed this yet.
- Dominant language
- Makefile
- Stars
- 1.6k
- Forks
- 211
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 6
Description
As part of #1251, it was observed that x220/t420 coreboot configurations are different, causing t420 boards to be even more limited in space then I first thought (and t420 being the only ones failing without #1184 or #1121 merged in).
Trace of the difference:
```
user@heads-tests:~/heads$ diff -u config/coreboot-x220-maximized.config config/coreboot-t420-maximized.config
--- config/coreboot-x220-maximized.config 2022-12-21 14:56:14.515000000 -0500
+++ config/coreboot-t420-maximized.config 2022-12-21 14:56:14.513000000 -0500
@@ -1,4 +1,6 @@
# CONFIG_USE_BLOBS is not set
+CONFIG_USE_OPTION_TABLE=y
+CONFIG_STATIC_OPTION_TABLE=y
CONFIG_VENDOR_LENOVO=y
CONFIG_NO_POST=y
CONFIG_CBFS_SIZE=0x750000
@@ -6,12 +8,12 @@
CONFIG_ME_BIN_PATH="@BLOB_DIR@/xx20/me.bin"
CONFIG_GBE_BIN_PATH="@BLOB_DIR@/xx20/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
-CONFIG_BOARD_LENOVO_X220=y
+CONFIG_BOARD_LENOVO_T420=y
CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
CONFIG_UART_PCI_ADDR=0
CONFIG_HAVE_ME_BIN=y
CONFIG_HAVE_GBE_BIN=y
-CONFIG_NO_GFX_INIT=y
+CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_DRIVERS_PS2_KEYBOARD=y
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000
```
For non-developers:
- '---' lines corresponds to lines removed from x220 when compared to t420
- '+++' lines corresponds to lines added to t420 when compared to x220
This means that (if we take x220 as reference, since really similar to x230)
- t420 includes cmos configuration put at build time (CONFIG_USE_OPTION_TABLE) and loads it unconditionally at each init (CONFIG_STATIC_OPTION_TABLE). Why? dGPU (nvidia graphics) variants used amongst end users?
- t420 includes libgfxinit (CONFIG_GENERIC_LINEAR_FRAMEBUFFER) graphic init, replacing x220's CONFIG_NO_GFX_INIT which uses exclusively the kernel's i915 kernel driver+drm driver to init display at kernel boot.
Same applies to t430 users:
```
user@heads-tests:~/heads$ diff -u config/coreboot-t430-maximized.config config/coreboot-t420-maximized.config
--- config/coreboot-t430-maximized.config 2022-12-21 14:56:14.513000000 -0500
+++ config/coreboot-t420-maximized.config 2022-12-21 14:56:14.513000000 -0500
@@ -3,12 +3,12 @@
CONFIG_STATIC_OPTION_TABLE=y
CONFIG_VENDOR_LENOVO=y
CONFIG_NO_POST=y
-CONFIG_CBFS_SIZE=0xB80000
-CONFIG_IFD_BIN_PATH="@BLOB_DIR@/xx30/ifd.bin"
-CONFIG_ME_BIN_PATH="@BLOB_DIR@/xx30/me.bin"
-CONFIG_GBE_BIN_PATH="@BLOB_DIR@/xx30/gbe.bin"
+CONFIG_CBFS_SIZE=0x750000
+CONFIG_IFD_BIN_PATH="@BLOB_DIR@/xx20/ifd.bin"
+CONFIG_ME_BIN_PATH="@BLOB_DIR@/xx20/me.bin"
+CONFIG_GBE_BIN_PATH="@BLOB_DIR@/xx20/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
-CONFIG_BOARD_LENOVO_THINKPAD_T430=y
+CONFIG_BOARD_LENOVO_T420=y
CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
CONFIG_UART_PCI_ADDR=0
CONFIG_HAVE_ME_BIN=y
```
Any historical reasons for that?
Tagging board owners per https://github.com/osresearch/heads/issues/692:
[t420](https://doc.coreboot.org/mainboard/lenovo/t420.html) (xx20): @alexmaloteaux @natterangell (iGPU) @akfhasodh @doob85
[t430](https://doc.coreboot.org/mainboard/lenovo/t430.html) (xx30): @Thrilleratplay @alexmaloteaux @lsafd @bwachter(iGPU) @shamen123 @eganonoa(iGPU) @nitrosimon @jans23 @icequbes1 (iGPU) @weyounsix (t430-dgpu)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing config/coreboot-x220-maximized.config, config/coreboot-t420-maximized.config, and config/coreboot-t430-maximized.config, then read the context in issues #1251, #1184, and #1121. Determine the historical reason for the differing option-table and framebuffer settings, and document or correct the configurations once their intended behavior is established.
Written by the indexing model from the issue text.
Assessment
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100