soc/intel/xeon_sp/util: Enhance lock_pam0123
[coreboot2.git] / Documentation / mainboard / purism / librem_14.md
blob777e90906db6b403eefa8adf2cdb1b17eb9f221b
1 # Purism Librem 14
3 This page describes how to run coreboot on the [Purism Librem 14].
5 ```eval_rst
6 +------------------+------------------------------------------------------+
7 | CPU              | Intel Core i7-10710U                                 |
8 +------------------+------------------------------------------------------+
9 | PCH              | Comet Lake LP Premium (Comet Lake-U)                 |
10 +------------------+------------------------------------------------------+
11 | EC               | ITE IT8528E                                          |
12 +------------------+------------------------------------------------------+
13 | Coprocessor      | Intel Management Engine (CSME 14.x)                  |
14 +------------------+------------------------------------------------------+
15 ```
17 ![](librem_14.webp)
18 ![](librem_14_flash.jpg)
19 ![](librem_14_ec_flash.jpg)
21 ## Required proprietary blobs
23 To build a minimal working coreboot image some blobs are required (assuming
24 only the BIOS region is being modified).
26 ```eval_rst
27 +-----------------+---------------------------------+---------------------+
28 | Binary file     | Apply                           | Required / Optional |
29 +=================+=================================+=====================+
30 | FSP-M, FSP-S    | Intel Firmware Support Package  | Required            |
31 +-----------------+---------------------------------+---------------------+
32 | microcode       | CPU microcode                   | Required            |
33 +-----------------+---------------------------------+---------------------+
34 ```
36 FSP-M and FSP-S are obtained after splitting the CometLake1 FSP binary
37 (done automatically by the coreboot build system and included into the
38 image) from the `3rdparty/fsp` submodule.
40 Microcode updates are automatically included into the coreboot image by the
41 build system from the `3rdparty/intel-microcode` submodule. Official Purism
42 release images may include newer microcode, which is instead pulled from
43 Purism's [purism-blobs] repository.
45 A VGA Option ROM is not required to boot, as the Librem 14 uses libgfxinit.
47 ## Intel Management Engine
49 The Librem 14 uses version 14.x of the Intel Management Engine (ME) /
50 Converged Security Engine (CSE). The ME/CSE is disabled using the High
51 Assurance Platform (HAP) bit, which puts the ME into a disabled state after
52 platform bring-up (BUP) and disables all PCI/HECI interfaces.
53 This can be verified checking the coreboot console log, using coreboot’s
54 cbmem utility:
56     `sudo ./cbmem -1 | grep 'ME:'`
58 provided coreboot has been patched to output the ME status even when the
59 PCI device is not visible/active (as it is in Purism's release builds).
61 ## Flashing coreboot
63 ### Internal programming
65 The main SPI flash can be accessed using [flashrom]. No official flashrom
66 release supports the CometLake-U SoC yet, so it must be built from source.
67 Version v1.2-107-gb1f858f or later is needed. Firmware an be easily
68 flashed with internal programmer (either BIOS region or full image).
70 ### External programming
72 The system has an internal flash chip which is a 16 MiB soldered SOIC-8
73 chip, and has a diode attached to the VCC line for in-system programming.
74 This chip is located on the bottom side of the board, in between the CPU
75 heatsink and the left cooling fan, just above the left SO-DIMM slot.
77 One has to remove all 9 screws from the bottom cover, then disconnect the
78 battery from the mainboard (bottom left of mainboard). Use a SOIC-8 chip
79 clip to program the chip (a Gigadevice GD25Q127C (3.3V) - [datasheet][GD25Q127C]).
81 The EC firmware is stored on a separate SOIC-8 chip (a Gigadevices GD25Q80C),
82 located underneath the Wi-Fi module, below the left cooling fan.
84 ## Known issues
86  * Automatic detection of external audio input/output via the 3.5mm jack
87    does not currently work.
88  * PL1/PL2 limited to 15W/20W by charger and battery discharge capability,
89    not SoC or thermal design.
91 ## Working
93  * Internal display with libgfxinit, VGA option ROM, or FSP/GOP init
94  * External displays via HDMI, USB-C Alt-Mode
95  * SeaBIOS (1.14), edk2 (CorebootPayloadPkg), and Heads payloads
96  * Ethernet, m.2 2230 Wi-Fi
97  * System firmware updates via flashrom
98  * M.2 storage (NVMe, SATA III)
99  * Built-in audio (speakers, microphone)
100  * SMBus (reading SPD from DIMMs)
101  * Initialization with FSP 2.0 (CometLake1)
102  * S3 Suspend/Resume
103  * Booting PureOS 10.x, Debian 11.x, Qubes 4.0.4, Windows 10 20H2
105 ## Not working / untested
107  * N/A
110 [Purism Librem 14]: https://puri.sm/products/librem-14/
111 [purism-blobs]: https://source.puri.sm/coreboot/purism-blobs
112 [GD25Q127C]: https://www.gigadevice.com/datasheet/gd25q127c/
113 [flashrom]: https://flashrom.org/Flashrom