Skip to content

t420 owners (and t430 users) : Why CONFIG_USE_OPTION_TABLE, CONFIG_STATIC_OPTION_TABLE and CONFIG_GENERIC_LINEAR_FRAMEBUFFER are defined under coreboot configs? #1293

@tlaurion

Description

@tlaurion

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 #692:
t420 (xx20): @alexmaloteaux @natterangell (iGPU) @akfhasodh @doob85
t430 (xx30): @Thrilleratplay @alexmaloteaux @lsafd @bwachter(iGPU) @shamen123 @eganonoa(iGPU) @nitrosimon @jans23 @icequbes1 (iGPU) @weyounsix (t430-dgpu)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions