summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/coreboot/next/patches/0011-lenovo-Add-Kconfig-option-CONFIG_LENOVO_TBFW_BIN.patch78
-rw-r--r--config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb1
-rw-r--r--config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode1
-rw-r--r--config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb1
-rw-r--r--config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode1
-rw-r--r--config/vendor/t480/pkg.cfg9
-rw-r--r--config/vendor/t480s/pkg.cfg8
7 files changed, 99 insertions, 0 deletions
diff --git a/config/coreboot/next/patches/0011-lenovo-Add-Kconfig-option-CONFIG_LENOVO_TBFW_BIN.patch b/config/coreboot/next/patches/0011-lenovo-Add-Kconfig-option-CONFIG_LENOVO_TBFW_BIN.patch
new file mode 100644
index 00000000..542b6608
--- /dev/null
+++ b/config/coreboot/next/patches/0011-lenovo-Add-Kconfig-option-CONFIG_LENOVO_TBFW_BIN.patch
@@ -0,0 +1,78 @@
+From 91c7d772f4803a94950b3224ccd11ffd162b4e36 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 18 Dec 2024 02:06:18 +0000
+Subject: [PATCH 1/1] lenovo: Add Kconfig option CONFIG_LENOVO_TBFW_BIN
+
+This is used by lbmk to know where a tb.bin file goes,
+when extracting and padding TBT.bin from Lenovo ThunderBolt
+firmware updates on T480/T480s and other machines, grabbing
+Lenovo update files.
+
+Not used in any builds, so it's not relevant for ./mk inject
+
+However, the ThunderBolt firmware is now auto-downloaded on
+T480/T480s. This is not inserted, because it doesn't go in
+the main flash, but the resulting ROM image can be flashed
+on the TB controller's separate flash chip.
+
+Locations are as follows:
+
+vendorfiles/t480s/tb.bin
+vendorfiles/t480/tb.bin
+
+This can be used for other affected ThinkPads when they're
+added to Libreboot, but note that Lenovo provides different
+TB firmware files for each machine.
+
+Since I assume it's the same TB controller on all of those
+machines, I have to wonder: what difference is there between
+the various TBT.bin files provided by Lenovo, and how do they
+differ in terms of actual flashed configuration?
+
+We simply flash the padded TBT.bin when updating the firmware,
+flashing externally. That's what this patch is for, so that
+lbmk can auto-download them.
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ src/mainboard/lenovo/Kconfig | 26 ++++++++++++++++++++++++++
+ 1 file changed, 26 insertions(+)
+
+diff --git a/src/mainboard/lenovo/Kconfig b/src/mainboard/lenovo/Kconfig
+index 2ffbaab85f..512b326381 100644
+--- a/src/mainboard/lenovo/Kconfig
++++ b/src/mainboard/lenovo/Kconfig
+@@ -18,4 +18,30 @@ config MAINBOARD_FAMILY
+ string
+ default MAINBOARD_PART_NUMBER
+
++config LENOVO_TBFW_BIN
++ string "Lenovo ThunderBolt firmware bin file"
++ default ""
++ help
++ ThunderBolt firmware for certain ThinkPad models e.g. T480.
++ Not used in the actual build. Libreboot's build system uses this
++ along with config/vendor/*/pkg.cfg entries defining a URL to the
++ Lenovo download link and hash. The resulting file when processed by
++ lbmk can be flashed to the ThunderBolt firmware's 25XX NOR device.
++ Earlier versions of this firmware had debug commands enabled that
++ sent logs to said flash IC, and it would quickly fill up, bricking
++ the ThunderBolt controller. With these updates, flashed externally,
++ you can fix the issue if present or otherwise prevent it. The benefit
++ here is that you then don't need to use Windows or a boot disk. You
++ can flash the TB firmware while flashing Libreboot firmware. Easy!
++ Look for these variables in lbmk:
++ TBFW_url TBFW_url_bkup TBFW_hash and look at how it handles that and
++ CONFIG_LENOVO_TBFW_BIN, in lbmk's include/vendor.sh file.
++ The path set by CONFIG_LENOVO_TBFW_BIN is used by lbmk when extracting
++ the firmware, putting it at that desired location. In this way, lbmk
++ can auto-download such firmware. E.g. ./mk -d coreboot t480_fsp_16mb
++ and it appears at vendorfiles/t480/tb.bin fully padded and everything!
++
++ Just leave this blank if you don't care about this option. It's not
++ useful for every ThinkPad, only certain models.
++
+ endif # VENDOR_LENOVO
+--
+2.39.5
+
diff --git a/config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb b/config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb
index 769d53eb..c4550f1d 100644
--- a/config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb
+++ b/config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb
@@ -218,6 +218,7 @@ CONFIG_PS2M_EISAID="PNP0F13"
CONFIG_THINKPADEC_HKEY_EISAID="IBM0068"
CONFIG_GFX_GMA_PANEL_1_PORT="eDP"
CONFIG_BOARD_LENOVO_SKLKBL_THINKPAD_COMMON=y
+CONFIG_LENOVO_TBFW_BIN="../../../vendorfiles/t480/tb.bin"
# CONFIG_SOC_INTEL_CSE_SEND_EOP_EARLY is not set
CONFIG_TTYS0_BAUD=115200
CONFIG_POWER_STATE_DEFAULT_ON_AFTER_FAILURE=y
diff --git a/config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode b/config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode
index e21749fe..83a8ecd6 100644
--- a/config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode
+++ b/config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode
@@ -216,6 +216,7 @@ CONFIG_PS2M_EISAID="PNP0F13"
CONFIG_THINKPADEC_HKEY_EISAID="IBM0068"
CONFIG_GFX_GMA_PANEL_1_PORT="eDP"
CONFIG_BOARD_LENOVO_SKLKBL_THINKPAD_COMMON=y
+CONFIG_LENOVO_TBFW_BIN="../../../vendorfiles/t480/tb.bin"
# CONFIG_SOC_INTEL_CSE_SEND_EOP_EARLY is not set
CONFIG_TTYS0_BAUD=115200
CONFIG_POWER_STATE_DEFAULT_ON_AFTER_FAILURE=y
diff --git a/config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb b/config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb
index 9eb3bf31..2e29a0a7 100644
--- a/config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb
+++ b/config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb
@@ -218,6 +218,7 @@ CONFIG_PS2M_EISAID="PNP0F13"
CONFIG_THINKPADEC_HKEY_EISAID="IBM0068"
CONFIG_GFX_GMA_PANEL_1_PORT="eDP"
CONFIG_BOARD_LENOVO_SKLKBL_THINKPAD_COMMON=y
+CONFIG_LENOVO_TBFW_BIN="../../../vendorfiles/t480s/tb.bin"
# CONFIG_SOC_INTEL_CSE_SEND_EOP_EARLY is not set
CONFIG_TTYS0_BAUD=115200
CONFIG_POWER_STATE_DEFAULT_ON_AFTER_FAILURE=y
diff --git a/config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode b/config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode
index 9bd3bcdd..84ac6177 100644
--- a/config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode
+++ b/config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode
@@ -216,6 +216,7 @@ CONFIG_PS2M_EISAID="PNP0F13"
CONFIG_THINKPADEC_HKEY_EISAID="IBM0068"
CONFIG_GFX_GMA_PANEL_1_PORT="eDP"
CONFIG_BOARD_LENOVO_SKLKBL_THINKPAD_COMMON=y
+CONFIG_LENOVO_TBFW_BIN="../../../vendorfiles/t480s/tb.bin"
# CONFIG_SOC_INTEL_CSE_SEND_EOP_EARLY is not set
CONFIG_TTYS0_BAUD=115200
CONFIG_POWER_STATE_DEFAULT_ON_AFTER_FAILURE=y
diff --git a/config/vendor/t480/pkg.cfg b/config/vendor/t480/pkg.cfg
index 0088b2b5..59280a8a 100644
--- a/config/vendor/t480/pkg.cfg
+++ b/config/vendor/t480/pkg.cfg
@@ -1,3 +1,4 @@
+# ME firmware (deguard will be used)
DL_hash="df735a24242792bf4150f30bf0bd4fdbdc0fb6bf0f897ea533df32567be8e084006d692fb6351677f8cc976878c5018667901dbd407b0a77805754f7c101497c"
DL_url="https://dl.dell.com/FOLDER04573471M/1/Inspiron_5468_1.3.0.exe"
DL_url_bkup="https://web.archive.org/web/20241110222323/https://dl.dell.com/FOLDER04573471M/1/Inspiron_5468_1.3.0.exe"
@@ -8,3 +9,11 @@ ME11delta="thinkpad_t480" # subdirectory under deguard's data/delta/
ME11version="11.6.0.1126"
ME11sku="2M"
ME11pch="LP"
+
+# ThunderBolt firmware
+# (flashed on the 1MB chip, not main 16MB; not used by coreboot)
+# (padded firmware will appear at vendorfiles/t480/tb.bin)
+#
+TBFW_url="https://download.lenovo.com/pccbbs/mobiles/n24th13w.exe"
+TBFW_url_bkup="https://web.archive.org/web/20241004165955/https://download.lenovo.com/pccbbs/mobiles/n24th13w.exe"
+TBFW_hash="906d916e8ae77e6d146c67c3113cd904e735a7f28cb2fc37e2284758ead5cda8dd4025c1c741fac9162b1eb01cff08fc39a0d4e79c5cec0515f1d3e6447d1323"
diff --git a/config/vendor/t480s/pkg.cfg b/config/vendor/t480s/pkg.cfg
index 67f000da..bbe2c5e9 100644
--- a/config/vendor/t480s/pkg.cfg
+++ b/config/vendor/t480s/pkg.cfg
@@ -8,3 +8,11 @@ ME11delta="thinkpad_t480s" # subdirectory under deguard's data/delta/
ME11version="11.6.0.1126"
ME11sku="2M"
ME11pch="LP"
+
+# ThunderBolt firmware
+# (flashed on the 1MB chip, not main 16MB; not used by coreboot)
+# (padded firmware will appear at vendorfiles/t480s/tb.bin)
+#
+TBFW_url="https://download.lenovo.com/pccbbs/mobiles/n22th11w.exe"
+TBFW_url_bkup="https://web.archive.org/web/20230319003752/https://download.lenovo.com/pccbbs/mobiles/n22th11w.exe"
+TBFW_hash="ef8ec0a41d7faaa0ce514cfb6f8e7e10669c878eff69fbe1b821443b6218f5b31e1b910c8abceecf38d4b11a6e552d90f277c96c7a9c512d605c8b8aea9c1c0c"