heads/modules
persmule 3f1c76ce11
Introduce io386 to heads and use it to finalize chipset at runtime
On some newer platforms of intel (confirmed on nehalem, sandy/ivy
bridge), coreboot after commit [2ac149d294af795710eb4bb20f093e9920604abd](https://review.coreboot.org/cgit/coreboot.git/commit/?id=2ac149d294af795710eb4bb20f093e9920604abd)
registers an SMI to lockdown some registers on the chipset, as well
as access to the SPI flash, optionally. The SMI will always be triggered
by coreboot during S3 resume, but can be triggered by either coreboot
or the payload during normal boot path.

Enabling lockdown access to SPI flash will effectly write-protect it,
but there is no runtime option for coreboot to control it, so letting
coreboot to trigger such SMI will leave the owner of the machine lost
any possibility to program the SPI flash with its own OS, and becomes
a nightmare if the machine is uneasy to disassemble, so a scheme could
be implement, in which the SMI to lockdown chipset and SPI flash is left
for a payload to trigger, and temporarily disabling such triggering in
order to program the SPI flash needs authentication.

I have implemented a passcode-protected runtime-disableable lockdown
with grub, described [here](https://github.com/hardenedlinux/Debian-GNU-Linux-Profiles/blob/master/docs/hardened_boot/grub-for-coreboot.md#update-for-coreboot-after-commit-2ac149d294af795710eb4bb20f093e9920604abd). In order to implement a similar scheme for
Heads, I wrote [io386](https://github.com/hardenedlinux/io386).

With this commit, io386 will be called before entering boot routine
to trigger the SMI to finalize the chipset and write protect the SPI
flash at the same time. Entering recovery shell will leave the flash
writable.

(The authentication routine implemented in previous revisions has been
split as an independent commit.)

Originally proposed under PR#326
2023-06-12 13:05:49 -04:00
..
bash modules/bash: Remove debug info from binary 2023-04-20 10:44:34 -06:00
busybox modules/busybox: update 1.32.0 -> 1.33.2 (stable) 2023-02-21 14:34:27 -06:00
cairo Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
coreboot Patch coreboot to use /usr/bin/env in skiboot for Talos-II board 2023-06-09 21:25:49 +03:00
coreboot-blobs reconfigure submodules if their config files ever change (issue #172) 2017-04-07 10:34:57 -04:00
cryptsetup Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
cryptsetup2 Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
dropbear Support targeting PowerPC 64 2022-08-25 20:55:39 +03:00
fbwhiptail modules/fbwhiptail: Update for reproducibility 2023-05-04 13:14:26 -06:00
flashrom Add flashrom to Talos II boards 2022-11-11 00:59:12 +02:00
flashtools modules/flashtools : version bump back to osresearch/flashtools 2023-03-10 09:31:22 -05:00
frotz adventure module 2018-02-05 11:30:39 -05:00
gpg Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
gpg2 Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
hidapi Rename libremkey-hotp-verification module 2020-06-11 15:54:10 +02:00
hotp-verification modules/hotp-verification: source libusb headers from Makefile DESTDIR 2023-01-18 12:41:54 -05:00
io386 Introduce io386 to heads and use it to finalize chipset at runtime 2023-06-12 13:05:49 -04:00
json-c modules/json-c: set cmake build type as minsizerel 2023-04-06 12:13:26 -06:00
kexec kexec: Update to 2.0.26, add framebuffer tracing 2023-04-19 14:16:38 -04:00
libassuan Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
libgcrypt Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
libgpg-error Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
libhidapi-libusb Support targeting PowerPC 64 2022-08-25 20:55:39 +03:00
libksba Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
libnitrokey add x230-nkstorecli board config (#817) 2020-10-19 10:47:22 -04:00
libpng Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
libusb Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
libusb-compat Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
linux coreboot+linux modules: add modules target helpers to edit configs (oldconfig/defconfig) 2023-04-20 14:07:20 -04:00
linuxboot modules/linuxboot: $$CPUS --> $(CPUS) 2020-12-26 12:19:10 -08:00
lvm2 Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
mbedtls Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
msrtools modules: update to use full commit id 2020-01-16 09:30:48 -08:00
musl-cross modules/musl-cross: use echo from the PATH to support NixOS 2023-01-18 12:42:41 -05:00
newt Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
nkstorecli add x230-nkstorecli board config (#817) 2020-10-19 10:47:22 -04:00
npth Support targeting PowerPC 64 2022-08-25 20:55:39 +03:00
openssl openssl: Trim optional algorithms 2023-03-10 17:07:00 -05:00
pciutils Support targeting PowerPC 64 2022-08-25 20:55:39 +03:00
pinentry Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
pixman Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
popt Support targeting PowerPC 64 2022-08-25 20:55:39 +03:00
powerpc-utils modules/powerpc-utils: add 2023-06-07 01:10:13 +03:00
purism-blobs modules/purism-blobs: update to current HEAD 2021-12-20 22:13:36 -05:00
qrencode Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
slang Support targeting PowerPC 64 2022-08-25 20:55:39 +03:00
tpm2-tools tpm2-tools: Change sense of CONFIG_TPM to mean any TPM, not just TPM1. 2023-03-08 12:45:46 -05:00
tpm2-tss tpmr: Capture TPM2 pcaps in qemu TPM2 boards 2023-03-08 16:34:45 -05:00
tpmtotp Merge pull request #1319 from danielp96/master 2023-04-12 12:36:46 -04:00
u-root parallel make fixes and hacks, which seem to work and reduce excessive remaking (issue #394) 2018-05-02 11:38:39 -04:00
util-linux Pass -O3 and -O2 (optimize for speed) to -Os (Optimize for space) 2023-03-07 18:05:39 -05:00
zlib Fix current builds 2022-04-01 09:47:39 -04:00