File site/docs/install/t480-thunderbolt-20241206-unstable.patch added (mode: 100644) (index 0000000..d69c343) |
|
1 |
|
From 67b0219a665462ae71f6ba5104edc55ad6245ca7 Mon Sep 17 00:00:00 2001
|
|
2 |
|
From: Mate Kukri <km@mkukri.xyz>
|
|
3 |
|
Date: Thu, 5 Dec 2024 20:42:40 +0000
|
|
4 |
|
Subject: [PATCH] thunderbolt fix-ish
|
|
5 |
|
|
|
6 |
|
it shows up, but resume is no dice.
|
|
7 |
|
|
|
8 |
|
Change-Id: I2d91a1d290b35e7ea3a1193b4be7b4ba936e4a15
|
|
9 |
|
---
|
|
10 |
|
src/mainboard/lenovo/sklkbl_thinkpad/Kconfig | 1 +
|
|
11 |
|
src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl | 13 +++++++++++++
|
|
12 |
|
.../lenovo/sklkbl_thinkpad/variants/t480/gpio.c | 8 ++++----
|
|
13 |
|
.../sklkbl_thinkpad/variants/t480/overridetree.cb | 4 ++++
|
|
14 |
|
.../lenovo/sklkbl_thinkpad/variants/t480s/gpio.c | 8 ++++----
|
|
15 |
|
.../sklkbl_thinkpad/variants/t480s/overridetree.cb | 4 ++++
|
|
16 |
|
6 files changed, 30 insertions(+), 8 deletions(-)
|
|
17 |
|
|
|
18 |
|
diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/Kconfig b/src/mainboard/lenovo/sklkbl_thinkpad/Kconfig
|
|
19 |
|
index 21076315ab..0766c03716 100644
|
|
20 |
|
--- a/src/mainboard/lenovo/sklkbl_thinkpad/Kconfig
|
|
21 |
|
+++ b/src/mainboard/lenovo/sklkbl_thinkpad/Kconfig
|
|
22 |
|
@@ -19,6 +19,7 @@ config BOARD_LENOVO_SKLKBL_THINKPAD_COMMON
|
|
23 |
|
select SOC_INTEL_COMMON_BLOCK_HDA_VERB
|
|
24 |
|
select SPD_READ_BY_WORD
|
|
25 |
|
select SYSTEM_TYPE_LAPTOP
|
|
26 |
|
+ select DRIVERS_INTEL_DTBT
|
|
27 |
|
|
|
28 |
|
config BOARD_LENOVO_E460
|
|
29 |
|
bool
|
|
30 |
|
diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl b/src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl
|
|
31 |
|
index 237500775f..849540d32d 100644
|
|
32 |
|
--- a/src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl
|
|
33 |
|
+++ b/src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl
|
|
34 |
|
@@ -35,4 +35,17 @@ DefinitionBlock(
|
|
35 |
|
}
|
|
36 |
|
|
|
37 |
|
#include <southbridge/intel/common/acpi/sleepstates.asl>
|
|
38 |
|
+
|
|
39 |
|
+ Scope (\_SB)
|
|
40 |
|
+ {
|
|
41 |
|
+ External (\TBTS, MethodObj)
|
|
42 |
|
+
|
|
43 |
|
+ Method (MPTS, 1, Serialized)
|
|
44 |
|
+ {
|
|
45 |
|
+ If (CondRefOf (\TBTS))
|
|
46 |
|
+ {
|
|
47 |
|
+ \TBTS()
|
|
48 |
|
+ }
|
|
49 |
|
+ }
|
|
50 |
|
+ }
|
|
51 |
|
}
|
|
52 |
|
diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/gpio.c b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/gpio.c
|
|
53 |
|
index f7c29e1f39..edfa09fbb7 100644
|
|
54 |
|
--- a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/gpio.c
|
|
55 |
|
+++ b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/gpio.c
|
|
56 |
|
@@ -86,7 +86,7 @@ static const struct pad_config gpio_table[] = {
|
|
57 |
|
PAD_NC(GPP_C18, NONE),
|
|
58 |
|
PAD_NC(GPP_C19, NONE),
|
|
59 |
|
PAD_CFG_GPO(GPP_C20, 0, DEEP), /* EPRIVACY_ON */
|
|
60 |
|
- PAD_CFG_GPO(GPP_C21, 0, DEEP), /* TBT_FORCE_PWR */
|
|
61 |
|
+ PAD_CFG_GPO(GPP_C21, 1, DEEP), /* TBT_FORCE_PWR */
|
|
62 |
|
PAD_CFG_GPI_SCI(GPP_C22, NONE, DEEP, EDGE_SINGLE, INVERT), /* -EC_SCI */
|
|
63 |
|
PAD_CFG_GPI_SCI(GPP_C23, NONE, DEEP, EDGE_SINGLE, INVERT), /* -EC_WAKE */
|
|
64 |
|
|
|
65 |
|
@@ -191,9 +191,9 @@ static const struct pad_config gpio_table[] = {
|
|
66 |
|
PAD_NC(GPP_G1, NONE),
|
|
67 |
|
PAD_NC(GPP_G2, NONE),
|
|
68 |
|
PAD_NC(GPP_G3, NONE),
|
|
69 |
|
- PAD_CFG_GPO(GPP_G4, 0, DEEP), /* TBT_RTD3_PWR_EN */
|
|
70 |
|
- PAD_CFG_GPO(GPP_G5, 0, DEEP), /* TBT_FORCE_USB_PWR */
|
|
71 |
|
- PAD_CFG_GPO(GPP_G6, 0, DEEP), /* -TBT_PERST */
|
|
72 |
|
+ PAD_CFG_GPO(GPP_G4, 1, DEEP), /* TBT_RTD3_PWR_EN */
|
|
73 |
|
+ PAD_CFG_GPO(GPP_G5, 1, DEEP), /* TBT_FORCE_USB_PWR (TBT_RTD3_USB_PWR_EN) */
|
|
74 |
|
+ PAD_CFG_GPO(GPP_G6, 1, DEEP), /* -TBT_PERST */
|
|
75 |
|
PAD_CFG_GPI_SCI(GPP_G7, NONE, DEEP, LEVEL, INVERT), /* -TBT_PCIE_WAKE */
|
|
76 |
|
};
|
|
77 |
|
|
|
78 |
|
diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/overridetree.cb b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/overridetree.cb
|
|
79 |
|
index 2f0b20d91a..6d8725ad5a 100644
|
|
80 |
|
--- a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/overridetree.cb
|
|
81 |
|
+++ b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/overridetree.cb
|
|
82 |
|
@@ -106,6 +106,10 @@ chip soc/intel/skylake
|
|
83 |
|
register "PcieRpAdvancedErrorReporting[8]" = "1"
|
|
84 |
|
register "PcieRpLtrEnable[8]" = "1"
|
|
85 |
|
register "PcieRpHotPlug[8]" = "1"
|
|
86 |
|
+
|
|
87 |
|
+ chip drivers/intel/dtbt
|
|
88 |
|
+ device pci 0.0 on end
|
|
89 |
|
+ end
|
|
90 |
|
end
|
|
91 |
|
|
|
92 |
|
# M.2 2280 caddy - x2
|
|
93 |
|
diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/gpio.c b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/gpio.c
|
|
94 |
|
index a98dd2bc4e..732917ebfa 100644
|
|
95 |
|
--- a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/gpio.c
|
|
96 |
|
+++ b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/gpio.c
|
|
97 |
|
@@ -82,7 +82,7 @@ static const struct pad_config gpio_table[] = {
|
|
98 |
|
PAD_NC(GPP_C18, NONE),
|
|
99 |
|
PAD_NC(GPP_C19, NONE),
|
|
100 |
|
PAD_CFG_GPO(GPP_C20, 0, DEEP), /* EPRIVACY_ON */
|
|
101 |
|
- PAD_CFG_GPO(GPP_C21, 0, DEEP), /* TBT_FORCE_PWR */
|
|
102 |
|
+ PAD_CFG_GPO(GPP_C21, 1, DEEP), /* TBT_FORCE_PWR */
|
|
103 |
|
PAD_CFG_GPI_SCI(GPP_C22, NONE, DEEP, EDGE_SINGLE, INVERT), /* -EC_SCI */
|
|
104 |
|
PAD_CFG_GPI_SCI(GPP_C23, NONE, DEEP, EDGE_SINGLE, INVERT), /* -EC_WAKE */
|
|
105 |
|
|
|
106 |
|
@@ -187,9 +187,9 @@ static const struct pad_config gpio_table[] = {
|
|
107 |
|
PAD_NC(GPP_G1, NONE),
|
|
108 |
|
PAD_NC(GPP_G2, NONE),
|
|
109 |
|
PAD_NC(GPP_G3, NONE),
|
|
110 |
|
- PAD_CFG_GPO(GPP_G4, 0, DEEP), /* TBT_RTD3_PWR_EN */
|
|
111 |
|
- PAD_CFG_GPO(GPP_G5, 0, DEEP), /* TBT_FORCE_USB_PWR */
|
|
112 |
|
- PAD_CFG_GPO(GPP_G6, 0, DEEP), /* -TBT_PERST */
|
|
113 |
|
+ PAD_CFG_GPO(GPP_G4, 1, DEEP), /* TBT_RTD3_PWR_EN */
|
|
114 |
|
+ PAD_CFG_GPO(GPP_G5, 1, DEEP), /* TBT_FORCE_USB_PWR (TBT_RTD3_USB_PWR_EN) */
|
|
115 |
|
+ PAD_CFG_GPO(GPP_G6, 1, DEEP), /* -TBT_PERST */
|
|
116 |
|
PAD_CFG_GPI_SCI(GPP_G7, NONE, DEEP, LEVEL, INVERT), /* -TBT_PCIE_WAKE */
|
|
117 |
|
};
|
|
118 |
|
|
|
119 |
|
diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/overridetree.cb b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/overridetree.cb
|
|
120 |
|
index cea5e485d2..9b952215c5 100644
|
|
121 |
|
--- a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/overridetree.cb
|
|
122 |
|
+++ b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/overridetree.cb
|
|
123 |
|
@@ -106,6 +106,10 @@ chip soc/intel/skylake
|
|
124 |
|
register "PcieRpAdvancedErrorReporting[4]" = "1"
|
|
125 |
|
register "PcieRpLtrEnable[4]" = "1"
|
|
126 |
|
register "PcieRpHotPlug[4]" = "1"
|
|
127 |
|
+
|
|
128 |
|
+ chip drivers/intel/dtbt
|
|
129 |
|
+ device pci 0.0 on end
|
|
130 |
|
+ end
|
|
131 |
|
end
|
|
132 |
|
|
|
133 |
|
# M.2 2280 SSD - x2
|
|
134 |
|
--
|
|
135 |
|
2.39.5
|
|
136 |
|
|
File site/docs/install/t480.md changed (mode: 100644) (index fc6fa2f..e76ecc6) |
... |
... |
This port is implemented in Libreboot by merging Mate Kukri's T480/T480s |
81 |
81 |
patchset. See: <https://review.coreboot.org/c/coreboot/+/83274> - as of 5 |
patchset. See: <https://review.coreboot.org/c/coreboot/+/83274> - as of 5 |
82 |
82 |
December 2024, Libreboot's code matches that of patchset 22. |
December 2024, Libreboot's code matches that of patchset 22. |
83 |
83 |
|
|
|
84 |
|
Absolutely unsigned Intel ME! |
|
85 |
|
----------------------------- |
|
86 |
|
|
|
87 |
|
Libreboot already disables the Intel ME by default, using `me_cleaner`, but |
|
88 |
|
the T480/T480s specifically have an additional quirk: |
|
89 |
|
|
|
90 |
|
One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets |
|
91 |
|
the ME in such a state where you can run unsigned code in there. This is how |
|
92 |
|
the Intel Boot Guard was disabled, because it is the ME that enforces such |
|
93 |
|
restrictions; more information about deguard is available on a dedicated page. |
|
94 |
|
|
|
95 |
|
The deguard utility could also be used to enable the red-unlock hack, which |
|
96 |
|
would permit unsigned execution of new CPU microcode, though much more |
|
97 |
|
research is needed. Because of these two facts, this makes the T480/T480s the |
|
98 |
|
most freedom-feasible of all relatively modern x86 laptops. |
|
99 |
|
|
|
100 |
|
With deguard, you have complete control of the flash. This is unprecedented on |
|
101 |
|
recent Intel systems in Libreboot, so it's certainly a very interesting port! |
|
102 |
|
|
|
103 |
|
Libreboot uses both `me_cleaner` *and* `deguard` on the T480/T480s. |
|
104 |
|
|
84 |
105 |
What works in this port: |
What works in this port: |
85 |
106 |
----------------------- |
----------------------- |
86 |
107 |
|
|
|
... |
... |
External video outputs and webcam also work. Microphone works, line-out works... |
90 |
111 |
everything works. UART also available via line-out jack (jumpers required on |
everything works. UART also available via line-out jack (jumpers required on |
91 |
112 |
the mainboard). |
the mainboard). |
92 |
113 |
|
|
93 |
|
The thunderbolt controller is currently unconfigured, so you can't use |
|
94 |
|
Thunderbolt, but the thunderbolt and regular USB-C connector can both be |
|
95 |
|
used for charging, and both can be used for video output (it shows up in xrandr |
|
96 |
|
as a DisplayPort). NOTE: |
|
97 |
|
<https://review.coreboot.org/c/coreboot/+/83274> is the patchset enabling |
|
98 |
|
Thunderbolt, but it currently breaks on S3 resume from sleep, so it's not |
|
99 |
|
included yet. This will be added to the Libreboot 20241206 release as a hotpatch |
|
100 |
|
when it's ready, and in the next testing release after Libreboot 20241206. This |
|
101 |
|
is true as of 6 December 2024. |
|
|
114 |
|
There *are* a few minor exceptions as to what works; this will be covered in |
|
115 |
|
other sections of this page. This port is *almost* perfect, but with some caveats. |
102 |
116 |
|
|
103 |
|
Backlight controls work, via software control (e.g. `xbacklight` utility), but |
|
104 |
|
the Fn keys for it don't currently work, as of 6 December 2024. |
|
|
117 |
|
Build images from source |
|
118 |
|
======================== |
105 |
119 |
|
|
106 |
|
Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics |
|
107 |
|
are still available even on Nvidia models, so Intel graphics are used. |
|
108 |
|
|
|
109 |
|
WWAN slot untested. |
|
110 |
|
|
|
111 |
|
Headphone jack |
|
112 |
|
-------------- |
|
113 |
|
|
|
114 |
|
Sometimes the headphone jack might not work automatically. Simply install |
|
115 |
|
the `pavucontrol` program. Under Output Devices, you can select the headphones |
|
116 |
|
you've inserted manually. |
|
117 |
|
|
|
118 |
|
If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This |
|
119 |
|
will be investigated and a hotfix patch made to the Libreboot 20241206 images. |
|
120 |
|
|
|
121 |
|
`thinkpad_acpi` issues {#thinkpad-acpi} |
|
122 |
|
--------------------------------------- |
|
123 |
|
|
|
124 |
|
It has been reported that `thinkpad_acpi` does not load correctly on the T480. |
|
125 |
|
This should also be the case for the T480s. |
|
126 |
|
|
|
127 |
|
If you encounter this issue, check\ |
|
128 |
|
[this page](../../faq.md#thinkpad-acpi) |
|
129 |
|
for details as to how to fix this. |
|
130 |
|
|
|
131 |
|
Build ROM image from source |
|
132 |
|
--------------------------- |
|
|
120 |
|
Please refer to the standard [build instructions](../build/) first. |
133 |
121 |
|
|
134 |
122 |
The build target, when building from source, is thus: |
The build target, when building from source, is thus: |
135 |
123 |
|
|
|
... |
... |
If you're [building from source](../build/) via Libreboot's build system, these |
167 |
155 |
files are inserted during build. You only need to manually insert them, using |
files are inserted during build. You only need to manually insert them, using |
168 |
156 |
the above linked guide, on the pre-compiled release images! |
the above linked guide, on the pre-compiled release images! |
169 |
157 |
|
|
170 |
|
Absolutely unsigned Intel ME! |
|
171 |
|
----------------------------- |
|
172 |
|
|
|
173 |
|
Libreboot already disables the Intel ME by default, using `me_cleaner`, but |
|
174 |
|
the T480/T480s specifically have an additional quirk: |
|
175 |
|
|
|
176 |
|
One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets |
|
177 |
|
the ME in such a state where you can run unsigned code in there. This is how |
|
178 |
|
the Intel Boot Guard was disabled, because it is the ME that enforces such |
|
179 |
|
restrictions; more information about deguard is available on a dedicated page. |
|
180 |
|
|
|
181 |
|
The deguard utility could also be used to enable the red-unlock hack, which |
|
182 |
|
would permit unsigned execution of new CPU microcode, though much more |
|
183 |
|
research is needed. Because of these two facts, this makes the T480/T480s the |
|
184 |
|
most freedom-feasible of all relatively modern x86 laptops. |
|
185 |
|
|
|
186 |
|
With deguard, you have complete control of the flash. This is unprecedented on |
|
187 |
|
recent Intel systems in Libreboot, so it's certainly a very interesting port! |
|
188 |
|
|
|
189 |
158 |
Set MAC address |
Set MAC address |
190 |
159 |
--------------- |
--------------- |
191 |
160 |
|
|
|
... |
... |
change the MAC address, please read [nvmutil documentation](../install/nvmutil.m |
197 |
166 |
argument when using it: `--platform sklkbl`** - otherwise, ifdtool will |
argument when using it: `--platform sklkbl`** - otherwise, ifdtool will |
198 |
167 |
handle the IFD incorrectly! |
handle the IFD incorrectly! |
199 |
168 |
|
|
200 |
|
WARNING about GPU compatibility |
|
201 |
|
------------------------------- |
|
202 |
|
|
|
203 |
|
The Nvidia GPUs were tested, on models that have them. It is completely |
|
204 |
|
dysfunctional and currently disabled in Libreboot. On models that have Nvidia, |
|
205 |
|
the Intel graphics is still available so Libreboot uses Intel graphics |
|
206 |
|
exclusively. |
|
207 |
|
|
|
208 |
|
The Intel GPU is fully supported with native source code (libgfxinit) in |
|
209 |
|
coreboot, which Libreboot uses for initialisation. |
|
210 |
|
|
|
211 |
|
Use of Intel graphics is recommended, because it has much better (and libre) |
|
212 |
|
driver support in Linux, and free initialisation code in coreboot, whereas |
|
213 |
|
Nvidia is mostly all binary blobs (unless perhaps you use the nouveau driver in |
|
214 |
|
Linux). |
|
215 |
|
|
|
216 |
169 |
Thunderbolt issue (READ THIS BEFORE FLASHING) |
Thunderbolt issue (READ THIS BEFORE FLASHING) |
217 |
170 |
------------------ |
------------------ |
218 |
171 |
|
|
|
... |
... |
On the T480s (S model), the flashes are in slightly different places but in |
316 |
269 |
both machines, the system flash (for Libreboot) is toward the centre, near |
both machines, the system flash (for Libreboot) is toward the centre, near |
317 |
270 |
the memory. |
the memory. |
318 |
271 |
|
|
319 |
|
Backlight controls |
|
320 |
|
------------------- |
|
|
272 |
|
Post-installation |
|
273 |
|
================= |
|
274 |
|
|
|
275 |
|
These next sections will tell you how to use certain hardware features, which |
|
276 |
|
work a little bit differently due to idiosyncrasies of coreboot. |
|
277 |
|
|
|
278 |
|
How to use the headphone jack |
|
279 |
|
-------------- |
|
280 |
|
|
|
281 |
|
Sometimes the headphone jack might not work automatically. Simply install |
|
282 |
|
the `pavucontrol` program. Under Output Devices, you can select the headphones |
|
283 |
|
you've inserted manually. |
|
284 |
|
|
|
285 |
|
If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This |
|
286 |
|
will be investigated and a hotfix patch made to the Libreboot 20241206 images. |
|
287 |
|
|
|
288 |
|
How to use HDMI audio |
|
289 |
|
------------------ |
|
290 |
|
|
|
291 |
|
You can get audio from Displayport/HDMI, but you must select it manually. |
|
292 |
|
For example, you can select it in `pavucontrol` if you're using PulseAudio or |
|
293 |
|
PipeWire. |
321 |
294 |
|
|
322 |
|
The `xbacklight` (or equivalent in Wayland) can be used to manually control |
|
323 |
|
the backlight; the buttons on the keyboard do not currently work, at least as |
|
324 |
|
of 6 December 2024. |
|
|
295 |
|
How to use backlight controls |
|
296 |
|
----------------------------- |
325 |
297 |
|
|
326 |
|
You could map the appropriate xbacklight command in Linux to a hotkey combo, |
|
327 |
|
depending on your window manager or desktop environment. |
|
|
298 |
|
Backlight controls work, via software control (e.g. `xbacklight` utility), but |
|
299 |
|
the Fn keys for it don't currently work, as of 6 December 2024. |
|
300 |
|
|
|
301 |
|
You can set the backlight manually, or use a hotkey, depending on your window |
|
302 |
|
manager or desktop environment. |
328 |
303 |
|
|
329 |
304 |
UART |
UART |
330 |
305 |
---- |
---- |
331 |
306 |
|
|
|
307 |
|
To our knowledge, this functionality is *only* available in coreboot-based |
|
308 |
|
firmware such as Libreboot. It is completely unsupported on the original |
|
309 |
|
firmware! |
|
310 |
|
|
332 |
311 |
A serial console is possible via the line-out (headphone jack). Not yet tested |
A serial console is possible via the line-out (headphone jack). Not yet tested |
333 |
312 |
on the T480s (S model), nor implemented, but it is working on the regular |
on the T480s (S model), nor implemented, but it is working on the regular |
334 |
313 |
T480 (non-S model). |
T480 (non-S model). |
|
... |
... |
regular T480, the existing caddy area could easily fit two NVMe drives. |
377 |
356 |
Errata |
Errata |
378 |
357 |
====== |
====== |
379 |
358 |
|
|
380 |
|
On ThinkPad T480/T480s, headphone output works; the internal speaker is disabled |
|
381 |
|
but audio is not automatically redirected to the headphone jack. This switching |
|
382 |
|
can be done manually, for example in the `pavucontrol` utility: |
|
|
359 |
|
Some features either don't work, or are untested, when running Libreboot on |
|
360 |
|
the ThinkPad T480 or T480s. |
|
361 |
|
|
|
362 |
|
NFC support in T480 |
|
363 |
|
------------------- |
|
364 |
|
|
|
365 |
|
Some T480 models might have NFC support but this is untested in Libreboot, and |
|
366 |
|
probably dosen't work in current Libreboot releases. |
|
367 |
|
|
|
368 |
|
The PCH's NFC device is unsupported in Linux anyway. |
|
369 |
|
|
|
370 |
|
Touchscreen on T480 |
|
371 |
|
------------------- |
|
372 |
|
|
|
373 |
|
Some T480 machines have touchscreens. These are untested; the touch functionality |
|
374 |
|
probably doesn't work yet, in Libreboot. |
|
375 |
|
|
|
376 |
|
The digitizer is simply a USB device, which *is* enabled, but it's just untested. |
|
377 |
|
|
|
378 |
|
Smartcard reader |
|
379 |
|
---------------- |
|
380 |
|
|
|
381 |
|
The smartcard reader is enabled but it is still untested. If you have one, |
|
382 |
|
please test it and report back to the Libreboot project. |
|
383 |
|
|
|
384 |
|
Thunderbolt not supported yet |
|
385 |
|
----------------------------- |
|
386 |
|
|
|
387 |
|
Thunderbolt is a way to get PCI-E on a USB port. With it, you can use |
|
388 |
|
high-bandwidth devices such as 10Gbps network interfaces. |
|
389 |
|
|
|
390 |
|
The thunderbolt controller is currently unconfigured, so you can't use |
|
391 |
|
Thunderbolt, but the thunderbolt and regular USB-C connector can both be |
|
392 |
|
used for charging, and both can be used for video output (it shows up in xrandr |
|
393 |
|
as a DisplayPort). |
|
394 |
|
|
|
395 |
|
[t480-thunderbolt-20241206-unstable.patch](This patch) can be added, enabling |
|
396 |
|
Thunderbolt, but be warned: it is completely untested, as of Libreboot 20241206. |
|
397 |
|
This patch is *NOT* included in the release, because it breaks on S3 resume, |
|
398 |
|
and may cause a kernel panic. Also: currently testing only reveals that the |
|
399 |
|
ThunderBolt controller shows up, and it was confirmed that USB devices do |
|
400 |
|
work on the port, but everything else is UNTESTED. |
|
401 |
|
|
|
402 |
|
You also need the [gerrit patch](https://review.coreboot.org/c/coreboot/+/75286) |
|
403 |
|
adding a Thunderbolt driver to coreboot. |
|
404 |
|
|
|
405 |
|
To apply these patches, do the following in a fresh clone of `lbmk.git`: |
|
406 |
|
|
|
407 |
|
``` |
|
408 |
|
git reset --hard b910424b5df8ed7c931a7b8f5cc8e34eacf0ca3e # 20241206rev2 |
|
409 |
|
./mk -f coreboot next |
|
410 |
|
cd src/coreboot/next |
|
411 |
|
wget https://libreboot.org/docs/install/t480-thunderbolt-20241206-unstable.patch |
|
412 |
|
git fetch https://review.coreboot.org/coreboot refs/changes/86/75286/12 && git cherry-pick FETCH_HEAD |
|
413 |
|
git am t480-thunderbolt-20241206-unstable.patch |
|
414 |
|
cd - |
|
415 |
|
./mk -u coreboot t480s_fsp_16mb |
|
416 |
|
./mk -u coreboot t480_fsp_16mb |
|
417 |
|
``` |
|
418 |
|
|
|
419 |
|
You can now follow standard [build instructions](../build/). |
|
420 |
|
|
|
421 |
|
NOTE: If you remove src/coreboot/next, you must apply the patches again. |
|
422 |
|
To make it easier, you can instead do this from a fresh `lbmk.git` (do this |
|
423 |
|
instead of running the commands above): |
|
424 |
|
|
|
425 |
|
``` |
|
426 |
|
git checkout 20241206-t480-thunderbolt-unstable |
|
427 |
|
``` |
|
428 |
|
|
|
429 |
|
The branch named `20241206-t480-thunderbolt-unstable` already has the above |
|
430 |
|
patches applied, including the configuration changes made by `./mk -u`, and |
|
431 |
|
you can follow the same build instructions. In this lbmk branch, that |
|
432 |
|
gerrit patch above (`refs/changes/86/75286/12`) is already included. |
383 |
433 |
|
|
384 |
|
Output Devices -> Select Headphones on the built-in audio. |
|
|
434 |
|
Whether you use the lbmk branch, or you add the patches manually as above, |
|
435 |
|
you can then flash the resulting image and boot it. |
|
436 |
|
|
|
437 |
|
**AGAIN: This will likely cause kernel panics, and it will break on resume |
|
438 |
|
from S3 (resume from sleep). If you do test this, please report whether |
|
439 |
|
the Thunderbolt devices actually work, but remember that you must NOT suspend |
|
440 |
|
or put your machine to sleep.** |
|
441 |
|
|
|
442 |
|
Nvidia dGPU not supported |
|
443 |
|
------------------------- |
|
444 |
|
|
|
445 |
|
Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics |
|
446 |
|
are still available even on Nvidia models, so Intel graphics are used. |
|
447 |
|
|
|
448 |
|
WWAN slot untested. |
|
449 |
|
|
|
450 |
|
`thinkpad_acpi` issues {#thinkpad-acpi} |
|
451 |
|
--------------------------------------- |
|
452 |
|
|
|
453 |
|
It has been reported that `thinkpad_acpi` does not load correctly on the T480. |
|
454 |
|
This should also be the case for the T480s. |
|
455 |
|
|
|
456 |
|
If you encounter this issue, check\ |
|
457 |
|
[this page](../../faq.md#thinkpad-acpi) |
|
458 |
|
for details as to how to fix this. |
385 |
459 |
|
|
386 |
|
Pavucontrol will specify that the headphones are not connected, but you can |
|
387 |
|
select it anyway and it will work. This will be fixed in a subsequent revision, |
|
388 |
|
and the corrected images re-uploaded to the existing Libreboot 20241206 release. |
|