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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions