2021-12-19 21:01:29 +00:00
# Configuration for a W530 running Qubes and other Linux Based OSes (through kexec)
#
# Includes
# - Deactivated+neutered ME and expanded consequent IFD BIOS regions
# - Forged 00:DE:AD:C0:FF:EE MAC address (if not extracting gbe.bin from backup with blobs/xx30/extract.sh)
# - Note that this MAC address can be modified under build/coreboot-VER/util/bincfg/gbe-82579LM.set
#
# - Includes Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code)
# This board is designed for a w530 with the K2000M Nvidia Quadro dGPU. Initialization of the dGPU is necessary in order to use an external monitor whether through the in-build VGA or mini-DisplayPort or via the dock. In order to build this the relevant script in the blobs directory must be run (or self-pulled roms placed in that directory) and after building the rom, the nvramtool must be run on the 12MB rom to change the default graphics mode away from integrated-only graphics (see README_vbios in the blobs directory).
export CONFIG_COREBOOT = y
2023-02-15 16:47:30 +00:00
export CONFIG_COREBOOT_VERSION = 4.19
2021-12-19 21:01:29 +00:00
export CONFIG_LINUX_VERSION = 4.14.62
2023-01-31 15:49:16 +00:00
CONFIG_COREBOOT_CONFIG = config/coreboot-w530-dgpu-K2000m-maximized.config
2022-06-10 13:52:07 +00:00
CONFIG_LINUX_CONFIG = config/linux-x230-maximized.config
2021-12-19 21:01:29 +00:00
#Additional hardware support
CONFIG_LINUX_USB = y
CONFIG_LINUX_E1000E = y
2022-09-16 16:51:38 +00:00
CONFIG_CRYPTSETUP2 = y
2021-12-19 21:01:29 +00:00
CONFIG_FLASHROM = y
CONFIG_FLASHTOOLS = y
CONFIG_GPG2 = y
CONFIG_KEXEC = y
CONFIG_UTIL_LINUX = y
CONFIG_LVM2 = y
CONFIG_MBEDTLS = y
CONFIG_PCIUTILS = y
2023-04-12 19:08:49 +00:00
#platform locking finalization (PR0)
CONFIG_IO386 = y
export CONFIG_FINALIZE_PLATFORM_LOCKING_PRESKYLAKE = y
2021-12-19 21:01:29 +00:00
#Remote attestation support
#TPM based requirements
export CONFIG_TPM = y
CONFIG_POPT = y
CONFIG_QRENCODE = y
CONFIG_TPMTOTP = y
#HOTP based remote attestation for supported USB Security dongle
#With/Without TPM support
CONFIG_HOTPKEY = y
#Nitrokey Storage admin tool
CONFIG_NKSTORECLI = n
#GUI Support
#Console based Whiptail support(Console based, no FB):
#CONFIG_SLANG=y
#CONFIG_NEWT=y
#FBWhiptail based (Graphical):
CONFIG_CAIRO = y
CONFIG_FBWHIPTAIL = y
#Additional tools:
#SSH server (requires ethernet drivers, eg: CONFIG_LINUX_E1000E)
CONFIG_DROPBEAR = y
export CONFIG_BOOTSCRIPT = /bin/gui-init
export CONFIG_BOOT_REQ_HASH = n
export CONFIG_BOOT_REQ_ROLLBACK = n
export CONFIG_BOOT_KERNEL_ADD = "intel_iommu=on intel_iommu=igfx_off"
export CONFIG_BOOT_KERNEL_REMOVE = "quiet"
export CONFIG_BOOT_DEV = "/dev/sda1"
export CONFIG_BOARD_NAME = "Thinkpad W530-dgpu-K2000m-hotp-maximized"
export CONFIG_FLASHROM_OPTIONS = "--force --noverify-all -p internal"
# xx30-*-maximized boards require of you initially call one of the
# following to have gbe.bin ifd.bin and me.bin
# - blobs/xx30/download_clean_me.sh
# To download Lenovo original ME binary, neuter+deactivate ME, produce
# reduced IFD ME region and expanded BIOS IFD region.
# - blobs/xx30/extract.sh
# To extract from backuped 8M (bottom SPI) ME binary, GBE and IFD blobs.
#
# This board has two SPI flash chips, an 8 MB that holds the IFD,
# the ME image and part of the coreboot image, and a 4 MB one that
# has the rest of the coreboot and the reset vector.
#
# As a consequence, this replaces the need of having to flash t530-flash
# and expands available CBFS region (11.5Mb available CBFS space)
#
# When flashing via an external programmer it is easiest to have
# two separate files for these pieces.
2021-07-22 22:24:55 +00:00
all : $( board_build ) /$( CB_OUTPUT_FILE )
2022-06-23 15:05:53 +00:00
@sha256sum $@ | tee -a " $( HASHES) "
2021-07-22 22:24:55 +00:00
all : $( board_build ) /heads -$( BOARD ) -$( HEADS_GIT_VERSION ) -bottom .rom
$(board_build)/heads-$(BOARD)-$(HEADS_GIT_VERSION)-bottom.rom : $( board_build ) /$( CB_OUTPUT_FILE )
2021-12-19 21:01:29 +00:00
$( call do ,DD 8MB,$@ ,dd of = $@ if = $< bs = 65536 count = 128 skip = 0 status = none)
2022-06-23 15:05:53 +00:00
@sha256sum $@ | tee -a " $( HASHES) "
2021-12-19 21:01:29 +00:00
2021-07-22 22:24:55 +00:00
all : $( board_build ) /heads -$( BOARD ) -$( HEADS_GIT_VERSION ) -top .rom
$(board_build)/heads-$(BOARD)-$(HEADS_GIT_VERSION)-top.rom : $( board_build ) /$( CB_OUTPUT_FILE )
2021-12-19 21:01:29 +00:00
$( call do ,DD 4MB,$@ ,dd of = $@ if = $< bs = 65536 count = 64 skip = 128 status = none)
2022-06-23 15:05:53 +00:00
@sha256sum $@ | tee -a " $( HASHES) "