libreboot / lbwww (public) (License: Unspecified) (since 2023-04-11) (hash sha1)
libreboot website (markdown files). https://libreboot.org/
List of commits:
Subject Hash Author Date (UTC)
ThinkPad T480 information 1894f05981cde840f47cbf4f3d17961409181a85 Leah Rowe 2024-12-05 17:30:33
link correction e6e5b19fde6f17ce48070c21da47e6e1ad61d7be Leah Rowe 2024-11-29 08:07:11
examples dffa2df965688d05b38bf69d1ec9ac0fbe4a22d5 Leah Rowe 2024-11-29 08:00:13
remove mentions of thinkpad w530/w520 5896b5c167325f75cb15977bf949790dfd4a451f Leah Rowe 2024-11-27 20:58:51
Tweak docs to not assert that W520/T520 are the same 21e897ed5d8fff380cec7911b3c7c7a85c8fac54 Leah Rowe 2024-11-27 14:59:57
fix typo in hp 820 elitebook flashing info 3616f9ca86117291510c379904cbccc9805534bf Leah Rowe 2024-11-17 23:35:58
Dell OptiPlex 780 documentation f4c3c6a25cac105bf06a770bbdef8e9ce113331a Leah Rowe 2024-11-02 06:37:04
tasks page: add note about 3050micro hang workaround 640e8981e85335274778cc2f3ada7eb74fa869b0 Leah Rowe 2024-10-27 18:42:17
fix dell3050 compatibility notes d362563e615872e38ae63718f1c8f399e39d604c Leah Rowe 2024-10-25 04:49:15
dell3050: fix note about flash chip size (16MB) de314093929f8f0ecf710579504f17a22406645a Leah Rowe 2024-10-14 15:12:52
notes about dell precision t1700 92057903870ebcf0da67422635c72938c1889a44 Leah Rowe 2024-10-11 22:33:01
update notes about dell 3050 micro d4203520d0b5eb6fecaee38d4f64373d3c7cd148 Leah Rowe 2024-10-11 16:21:59
grammar 163876482fbe2d2a69b5945e666f502e332b598a Leah Rowe 2024-10-08 22:59:07
typo: notifications, not notificatios 9e233dbc4a61970eeaf3b7601a00bdaf1f406cd1 Leah Rowe 2024-10-08 22:50:31
make the 7010 announcement a link 3be1e15f4a3f36e1c05b230678ecce2c73384711 Leah Rowe 2024-10-08 22:49:55
update download page references ede57eb22a427284710031ae59c23826fe89860b Leah Rowe 2024-10-08 22:39:03
Libreboot 20241008 release cef9c80c01dbcbe62b0cd63e5ebf03133f16ac1b Leah Rowe 2024-10-08 18:28:10
more corrections on the 3050 page b9194e996657c50b85e8a826677c88f1acf6d6a9 Leah Rowe 2024-10-07 14:33:08
typo (10ohms. not 100) 3f8b62dc03693a7084458a46df1bf6d64902cb39 Leah Rowe 2024-10-07 12:46:51
3050micro: fix notes about mac address c23a71c9fb0907b7dbebff1d72d3d681f029a15d Leah Rowe 2024-10-07 10:03:03
Commit 1894f05981cde840f47cbf4f3d17961409181a85 - ThinkPad T480 information
Signed-off-by: Leah Rowe <info@minifree.org>
Author: Leah Rowe
Author date (UTC): 2024-12-05 17:30
Committer name: Leah Rowe
Committer date (UTC): 2024-12-05 17:30
Parent(s): e6e5b19fde6f17ce48070c21da47e6e1ad61d7be
Signer:
Signing key:
Signing status: N
Tree: fb7ee46aebe7b78336b99c80969ed94a168d0c1d
File Lines added Lines deleted
site/docs/install/index.md 8 0
site/docs/install/t480.md 290 0
File site/docs/install/index.md changed (mode: 100644) (index 95784cb..6c141c3)
... ... Desktops (AMD, Intel, x86)
97 97 Laptops (Intel, x86) Laptops (Intel, x86)
98 98 -------------------- --------------------
99 99
100 - [Lenovo ThinkPad T480 and ThinkPad T480s](t480.md)
100 101 - **Lenovo ThinkPad T440p - Also [available - **Lenovo ThinkPad T440p - Also [available
101 102 to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)**
102 103 - **Lenovo ThinkPad W541 - Also [available to - **Lenovo ThinkPad W541 - Also [available to
 
... ... bootblock, set bucts back to zero:
565 566 The second flash can be done by simply following the general internal flashing The second flash can be done by simply following the general internal flashing
566 567 guide further down on this page. guide further down on this page.
567 568
569 ThinkPad T480/T480S (vendor BIOS)
570 ----------------------
571
572 See:
573
574 * [ThinkPad T480/T480S](t480.md)
575
568 576 Thinkpad T440p/W541 (vendor BIOS) Thinkpad T440p/W541 (vendor BIOS)
569 577 --------------------- ---------------------
570 578
File site/docs/install/t480.md added (mode: 100644) (index 0000000..da33e57)
1 ---
2 title: Lenovo ThinkPad T480/T480S information
3 x-toc-enable: true
4 ...
5
6 Libreboot supports both the T480 and T480S variants. It is available in
7 the [Libreboot 20241205](../../news/libreboot20240512.md) release or later.
8
9 **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
10 OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
11
12 <div class="specs">
13 <center>
14 <img tabindex=1 alt="ThinkPad T480" class="p" src="https://av.libreboot.org/t480/t480.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480.jpg" /></span>
15 </center>
16
17 | ***Specifications*** | |
18 |----------------------------|------------------------------------------------|
19 | **Manufacturer** | Lenovo |
20 | **Name** | ThinkPad T480 |
21 | **Variants** | ThinkPad T480, ThinkPad T480S |
22 | **Released** | 2018 |
23 | **Chipset** | Intel Kaby Lake Refresh |
24 | **CPU** | Intel Kaby Lake Refresh |
25 | **Graphics** | Intel or Intel+Nvidia |
26 | **Memory** | DDR4 DIMMs; max 40GB (T480S), 64GB(T480) |
27 | **Architecture** | x86\_64 |
28 | **Original boot firmware** | Lenovo UEFI firmware |
29 | **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. |
30 | **Intel Boot Guard** | Pwned. Disabled using the deguard utility. |
31 | **Flash chip** | SOIC-8 16MB/128Mbit system firmware |
32
33
34 ```
35 W+: Works without blobs;
36 N: Doesn't work;
37 W*: Works with blobs;
38 U: Untested;
39 P+: Partially works;
40 P*: Partially works with blobs
41 ?: UNKNOWN AT THIS TIME
42 ```
43
44 | ***Features*** | |
45 |---------------------------------------------------|----|
46 | **Internal flashing with original boot firmware** | N |
47 | **Display (if Intel GPU)** | W+ |
48 | **Display (discrete CPU, SeaBIOS payload only)** | N |
49 | **Audio** | W+ |
50 | **RAM Init** | W* |
51
52 | ***Payloads supported*** | |
53 |----------------------------|-----------|
54 | **GRUB (libgfxinit only)** | Works |
55 | **SeaBIOS** | Works |
56 | **SeaBIOS with GRUB** | Works |
57 </div>
58
59 Regarding memory: T480S (S model) has 8GB onboard RAM, and an available DIMM
60 slot on which an additional 32GB SODIMM can be installed. The regular T480
61 has two DIMM slots, allowing 2x32GB DDR4 SODIMMs.
62
63 Introduction
64 ============
65
66 **Unavailable in Libreboot 20241008 or earlier. You must [compile from
67 source](../build/), or alternatively an image from Libreboot 20241205 or higher.
68
69 Official information about the T480 can be found here:\
70 <https://psref.lenovo.com/syspool/Sys/PDF/ThinkPad/ThinkPad_T480/ThinkPad_T480_Spec.PDF>
71
72 ...and information about the T480S can be found here:\
73 <https://psref.lenovo.com/syspool/Sys/PDF/ThinkPad/ThinkPad_T480s/ThinkPad_T480s_Spec.pdf>
74
75 Build ROM image from source
76 ---------------------------
77
78 The build target, when building from source, is thus:
79
80 ./mk -b coreboot t480_fsp_16mb
81 ./mk -b coreboot t480s_fsp_16mb
82
83 **NOTE: The T480 and T480 may be similar, but they do have several critical
84 differences in their wiring, so you MUST flash the correct image. Please
85 choose one of the above build targets accordingly.**
86
87 Installation
88 ============
89
90 Insert binary files
91 -------------------
92
93 If you're using a release ROM, please ensure that you've inserted extra firmware
94 required refer to the [guide](../install/ivy_has_common.md) for that. **(failure
95 to adhere to this advice will result in a BRICKED machine)**
96
97 Libreboot's build system automatically downloads and processes these files if
98 you build Libreboot from source, but the same logic that it uses must be re-run
99 if you're using a release image. This is to bypass certain restrictions on
100 direct distribution, for files such as the Intel Management Engine firmware.
101
102 Absolutely unsigned Intel ME!
103 -----------------------------
104
105 Libreboot already disables the Intel ME by default, using `me_cleaner`, but
106 the T480/T480 specifically has an additional quirk:
107
108 One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets
109 the ME in such a state where you can run unsigned code in there. This is how
110 the Intel Boot Guard was disabled, because it is the ME that enforces such
111 restrictions; more information about deguard is available on a dedicated page.
112
113 The deguard utility could also be used to enable the red-unlock hack, which
114 would permit unsigned execution of new CPU microcode, though much more
115 research is needed. Because of these two facts, this makes the T480/T480S the
116 most freedom-feasible of all relatively modern x86 laptops.
117
118 With deguard, you have complete control of the flash. This is unprecedented on
119 recent Intel systems in Libreboot, so it's certainly a very interesting port!
120
121 Set MAC address
122 ---------------
123
124 This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM
125 region. As such, release/build ROMs will contain the same MAC address. To
126 change the MAC address, please read [nvmutil documentation](../install/nvmutil.md).
127
128 **NOTE: If changing the MAC address, please give `ifdtool` the following
129 argument when using it: `--platform sklkbl`** - otherwise, ifdtool will
130 handle the IFD incorrectly!
131
132 WARNING about GPU compatibility
133 -------------------------------
134
135 The Nvidia GPUs were tested, on models that have them. It is completely
136 dysfunctional and currently disabled in Libreboot. On models that have Nvidia,
137 the Intel graphics is still available so Libreboot uses Intel graphics
138 exclusively.
139
140 The Intel GPU is fully supported with native source code (libgfxinit) in
141 coreboot, which Libreboot uses for initialisation.
142
143 Use of Intel graphics is recommended, because it has much better (and libre)
144 driver support in Linux, and free initialisation code in coreboot, whereas
145 Nvidia is mostly all binary blobs (unless perhaps you use the nouveau driver in
146 Linux).
147
148 Thunderbolt issue (READ THIS BEFORE FLASHING)
149 ------------------
150
151 The thunderbolt firmware on launch units had a bug where certain debug
152 info is written on certain events, such as plugging in a charger to the USB-C
153 connector. This logging is stored in the Thunderbolt firmware's own SPI flash,
154 which is separate from the main SPI flash containing the system firmware
155 e.g. coreboot.
156
157 If that flash gets full, thunderbolt (on factory firmware) stops working and
158 fast charging stops working. It can be prevented by updating the Thunderbolt
159 firmware. You can do this from Lenovo's firmware, using these instructions:
160
161 <https://pcsupport.lenovo.com/gb/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t480s-type-20l7-20l8/solutions/ht508988-critical-intel-thunderbolt-software-and-firmware-updates-thinkpad>
162
163 If you're already affected by the bug, you can restore it to a working state
164 by flashing the Thunderbolt firmware externally. For example this is where its
165 NOR flash is on a T480:
166
167 <img tabindex=1 alt="ThinkPad T480 NOR flash (thunderbolt firmware)" class="p" src="https://av.libreboot.org/t480/t480tbspi.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480tbspi.jpg" /></span>
168
169 This page shows how to do that:
170
171 <https://gitlab.com/MobileAZN/lenovo-t480-thunderbolt-firmware-fixes>
172
173 You unbrick the Thunderbolt controller by pulling the firmware from Lenovo's
174 update, from Lenovo's update utility. Once extracted, you then pad it properly
175 so that it can be flashed manually, using a normal SPI flasher (the same one
176 that you would use to flash Libreboot).
177
178 Use the [25XX NOR flashing guide](spi.md) if you need to flash this chip. It's
179 the same guide that you will use for the main system flash, which is a separate
180 flash IC.
181
182 AGAIN: This is not the Libreboot flash IC. This is separate to the system flash.
183 Read on to know how to reprogram the main system flash!
184
185 Flash a ROM image (software)
186 -----------------
187
188 **MAKE SURE** to update the Lenovo UEFI firmware before installing Libreboot.
189 You must also make a dump of the NOR flash, before updating Lenovo's firmware,
190 and once again before flashing Libreboot, being sure you have good dumps.
191
192 If you're already running Libreboot, and you don't have flash protection
193 turned on, [internal flashing](../install/) is possible.
194
195 Find videos online of how to disassemble this, and/or find Lenovo's own
196 service manual online. Otherwise, observe:
197
198 <img tabindex=1 alt="ThinkPad T480 underside chassis" class="p" src="https://av.libreboot.org/t480/t480bottom.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480bottom.jpg" /></span>
199
200 Remove all screws, and you can gently pry off the lower chassis and remove,
201 which then allows you to see the inner mainboard:
202
203 <img tabindex=1 alt="ThinkPad T480 PCB" class="p" src="https://av.libreboot.org/t480/t480pcb.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480pcb.jpg" /></span>
204
205 **WARNING: PLEASE MAKE SURE to remove the battery before flashing. The T480
206 and T480S can both contain INTERNAL batteries, and the T480 has an additional
207 external battery. Remove the internal battery via the connector, like so (T480):**
208
209 <img tabindex=1 alt="ThinkPad T480 internal battery" class="p" src="https://av.libreboot.org/t480/t480battery.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480battery.jpg" /></span>
210
211 On the T480S (S model) the internal battery is much larger, and the connector
212 on it is built into the battery, so it is necessary to carefully remove the
213 entire battery; on regular T480 (non-S model) the internal battery can be
214 isolated via the connector as depicted above.
215
216 This photo shows the flash:
217
218 <img tabindex=1 alt="ThinkPad T480 NOR flash (system firmware)" class="p" src="https://av.libreboot.org/t480/t480spi.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480spi.jpg" /></span>
219
220 There is another flash, for the Thunderbolt firmware, which you are to briefly
221 ignore; we'll cover it later:
222
223 <img tabindex=1 alt="ThinkPad T480 NOR flash (thunderbolt firmware)" class="p" src="https://av.libreboot.org/t480/t480tbspi.jpg" /><span class="f"><img src="https://av.libreboot.org/t480/t480tbspi.jpg" /></span>
224
225 To be clear: the system flash (16MB) is what you put Libreboot on. The
226 Thunderbolt firmware flash is much smaller, so you'll know because flashprog
227 will complain about wrong flash size if you're trying to flash the wrong one.
228
229 On the T480S (S model), the flashes are in slightly different places but in
230 both machines, the system flash (for Libreboot) is toward the centre, near
231 the memory.
232
233 Backlight controls
234 -------------------
235
236 The `xbacklight` (or equivalent in Wayland) can be used to manually control
237 the backlight; the buttons on the keyboard do not currently work, at least as
238 of 5 December 2024.
239
240 You could map the appropriate xbacklight command in Linux to a hotkey combo,
241 depending on your window manager or desktop environment.
242
243 UART
244 ----
245
246 A serial console is possible via the line-out (headphone jack). Not yet tested
247 on the T480S (S model), nor implemented, but it is working on the regular
248 T480 (non-S model).
249
250 **TODO: show photo and wiring diagram here.**
251
252 Use baud rate 115200 in your favourite serial terminal client, e.g. GNU Screen.
253
254 Next to the headphone jack on the T480, you will find pads for two 0ohm jumpers,
255 normally unpopulated, but you can bridge each jumper yourself using a 0ohm 0201
256 jumper; alternatively, simply strip a bit a wire (30awg solid core) and carefully
257 solder the wire across each of the pad jumpers, then carefully using a pair
258 of side cutters to cut off the excess wire, being careful not to rip the pads!
259
260 If you do this, please make sure to have the latest EC firmware as of 5
261 December 2024 (do not use older than what was latest on this day, and don't
262 use newer versions), because the code for this in coreboot targets a specific
263 area of code within the EC firmware.
264
265 You can then wire a 3.5mm stereo plug. On the other end you will wire your
266 TX/RX lines as you wish, to a suitable UART adapter; any 3.3v-rated TTL
267 adapter should work. The Raspberry Pi Pico can be used for this, which is handy
268 because that can also be used as a serprog-based NOR flasher!
269
270 The T480S (S model) schematics is a bit different and the signals are
271 properly muxed. Note that this is not to be confused with `spkmodem`, which
272 has not been tested on these boards (but could theoretically be possible too).
273
274 Idea for 2nd NVMe mod
275 ----------------------
276
277 Interestingly, on boards without the Nvidia graphics, the solder pads for all
278 the componentry (including the GPU) is still present, so you could theoretically
279 design a QSB that solders to the right pads, and use it to wire a 2nd NVMe SSD;
280 the port is still enabled in Libreboot even if nothing is plugged into it, so it
281 should just work. (this doesn't actually exist yet, but it is electrically
282 possible, quite feasible to design/manufacture and already supported in the
283 Libreboot firmware in principle, since than PCI-E lane is enabled in the devicetree)
284
285 Mate Kukri came up with this idea. It's a great idea, so it's written here.
286 This mod is possible on both the T480 and T480S, though on T480S there would
287 be less clearance; using a smaller internal battery and having a makeshift
288 NVMe caddy in the remaining space would be how to go about it there. On the
289 regular T480, the existing caddy area could easily fit two NVMe drives.
290
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/libreboot/lbwww

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/libreboot/lbwww

Clone this repository using git:
git clone git://git.rocketgit.com/user/libreboot/lbwww

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main