mb/purism/librem_cnl: Add new variant 'Librem Mini v2'

Add Kconfig entries, and update existing documentation to
accomodate both v1/v2 versions of the board.

Change-Id: I856bb914941211cfbec4fed871ba2a5a038e23c3
Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46984
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Matt DeVillier 2020-11-02 17:19:53 -06:00 committed by Patrick Georgi
parent 22f028a3c7
commit 12d515dcc5
3 changed files with 33 additions and 19 deletions

View File

@ -1,16 +1,19 @@
# Purism Librem Mini # Purism Librem Mini (v1, v2)
This page describes how to run coreboot on the [Purism Librem Mini]. This page describes how to run coreboot on the [Purism Librem Mini].
```eval_rst ```eval_rst
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| CPU | Intel Core i7-8565U/8665U | | CPU | Intel Core i7-8565U/8665U (v1) |
| | Intel Core i7-10510U (v2) |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| PCH | Whiskey Lake / Cannon Point LP | | PCH | Whiskey Lake / Cannon Point LP (v1) |
| | Comet Lake LP Premium (Comet Lake-U) (v2) |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Super I/O, EC | ITE IT8528E | | Super I/O, EC | ITE IT8528E |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
| Coprocessor | Intel Management Engine (CSME 12.x) | | Coprocessor | Intel Management Engine (CSME 12.x) (v1) |
| | Intel Management Engine (CSME 14.x) (v2) |
+------------------+--------------------------------------------------+ +------------------+--------------------------------------------------+
``` ```
@ -34,9 +37,9 @@ only the BIOS region is being modified).
+-----------------+---------------------------------+---------------------+ +-----------------+---------------------------------+---------------------+
``` ```
FSP-M and FSP-S are obtained after splitting the Coffee Lake FSP binary (done FSP-M and FSP-S are obtained after splitting the FSP binary (done automatically
automatically by the coreboot build system and included into the image) from by the coreboot build system and included into the image; Coffee Lake for v1,
the `3rdparty/fsp` submodule. Comet Lake for v2) from the `3rdparty/fsp` submodule.
Microcode updates are automatically included into the coreboot image by the build Microcode updates are automatically included into the coreboot image by the build
system from the `3rdparty/intel-microcode` submodule. Official Purism release system from the `3rdparty/intel-microcode` submodule. Official Purism release
@ -50,12 +53,14 @@ the [purism-blobs] repository.
## Intel Management Engine ## Intel Management Engine
The Librem Mini uses version 12.x of the Intel Management Engine (ME) / The Librem Mini uses version 12.x (v1) or 14.x (v2) of the Intel Management
Converged Security Engine (CSE). The ME/CSE is disabled using the High Engine (ME) / Converged Security Engine (CSE). The ME/CSE is disabled using
Assurance Platform (HAP) bit, which puts the ME into a disabled state the High Assurance Platform (HAP) bit, which puts the ME into a disabled state
after platform bring-up (BUP) and disables all PCI/HECI interfaces. after platform bring-up (BUP) and disables all PCI/HECI interfaces.
This can be verified via the coreboot cbmem utility: This can be verified via the coreboot cbmem utility:
`sudo ./cbmem -1 | grep 'ME:'`
`sudo ./cbmem -1 | grep 'ME:'`
provided coreboot has been modified to output the ME status even when provided coreboot has been modified to output the ME status even when
the PCI device is not visible/active (as it is in Purism's release builds). the PCI device is not visible/active (as it is in Purism's release builds).
@ -64,8 +69,9 @@ the PCI device is not visible/active (as it is in Purism's release builds).
### Internal programming ### Internal programming
The main SPI flash can be accessed using [flashrom]. The first version The main SPI flash can be accessed using [flashrom]. The first version
supporting the chipset is flashrom v1.2. Firmware an be easily flashed supporting the chipset is flashrom v1.2 (v1.2-107-gb1f858f or later needed
with internal programmer (either BIOS region or full image). for the Mini v2). Firmware an be easily flashed with internal programmer
(either BIOS region or full image).
### External programming ### External programming
@ -100,17 +106,17 @@ desoldering it from the mainboard.
## Working ## Working
* External displays via HDMI/DisplayPort with VGA option ROM or FSP/GOP init * External displays via HDMI/DisplayPort with VGA option ROM or FSP/GOP init
(no libgfxinit support yet) (no libgfxinit support yet)
* SeaBIOS (1.13.x), Tianocore (CorebootPayloadpkg), Heads (Purism downstream) payloads * SeaBIOS (1.14), Tianocore (CorebootPayloadPkg), Heads (Purism downstream) payloads
* Ethernet, m.2 2230 Wi-Fi * Ethernet, m.2 2230 Wi-Fi
* System firmware updates via flashrom * System firmware updates via flashrom
* PCIe NVMe * PCIe NVMe
* m.2 and SATA III * m.2 and SATA III
* Audio via front 3.5mm jack, HDMI, and DisplayPort * Audio via front 3.5mm jack, HDMI, and DisplayPort
* SMBus (reading SPD from DIMMs) * SMBus (reading SPD from DIMMs)
* Initialization with CFL FSP 2.0 * Initialization with FSP 2.0 (CFL for v1, CML for v2)
* S3 Suspend/Resume * S3 Suspend/Resume
* Booting PureOS 9.x, Debian 10.x, Qubes 4.0.3, Linux Mint 19.3, Windows 10 2004 * Booting PureOS 10.x, Debian 11.x, Qubes 4.1.0-alpha1, Linux Mint 20, Windows 10 2004
## Not working / untested ## Not working / untested

View File

@ -20,15 +20,16 @@ config MAINBOARD_DIR
config MAINBOARD_FAMILY config MAINBOARD_FAMILY
string string
default "Librem Mini" if BOARD_PURISM_LIBREM_MINI default "Librem Mini" if BOARD_PURISM_LIBREM_MINI || BOARD_PURISM_LIBREM_MINI_V2
config MAINBOARD_PART_NUMBER config MAINBOARD_PART_NUMBER
string string
default "Librem Mini" if BOARD_PURISM_LIBREM_MINI default "Librem Mini" if BOARD_PURISM_LIBREM_MINI
default "Librem Mini v2" if BOARD_PURISM_LIBREM_MINI_V2
config VARIANT_DIR config VARIANT_DIR
string string
default "librem_mini" if BOARD_PURISM_LIBREM_MINI default "librem_mini" if BOARD_PURISM_LIBREM_MINI || BOARD_PURISM_LIBREM_MINI_V2
config DEVICETREE config DEVICETREE
string string
@ -37,6 +38,7 @@ config DEVICETREE
config CBFS_SIZE config CBFS_SIZE
hex hex
default 0x800000 if BOARD_PURISM_LIBREM_MINI default 0x800000 if BOARD_PURISM_LIBREM_MINI
default 0xA00000 if BOARD_PURISM_LIBREM_MINI_V2
config MAX_CPUS config MAX_CPUS
int int
@ -53,6 +55,7 @@ config DIMM_SPD_SIZE
config VGA_BIOS_ID config VGA_BIOS_ID
string string
default "8086,3ea0" if BOARD_PURISM_LIBREM_MINI default "8086,3ea0" if BOARD_PURISM_LIBREM_MINI
default "8086,9b41" if BOARD_PURISM_LIBREM_MINI_V2
config PXE_ROM_ID config PXE_ROM_ID
string string

View File

@ -2,3 +2,8 @@ config BOARD_PURISM_LIBREM_MINI
bool "Librem Mini" bool "Librem Mini"
select BOARD_PURISM_BASEBOARD_LIBREM_CNL select BOARD_PURISM_BASEBOARD_LIBREM_CNL
select SOC_INTEL_WHISKEYLAKE select SOC_INTEL_WHISKEYLAKE
config BOARD_PURISM_LIBREM_MINI_V2
bool "Librem Mini v2"
select BOARD_PURISM_BASEBOARD_LIBREM_CNL
select SOC_INTEL_COMETLAKE_1