Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7bd2777
Add support for MrChromeBox coreboot fork.
mdrobnak May 27, 2024
b1d60c7
Add Support for Linux 6.6.30 (same patches a 4.9.80).
mdrobnak May 27, 2024
8ff1794
add kano boards.config
cwiggs Jun 24, 2026
b653d7a
kano: put board in debug mode, remove CR50 notes
tlaurion Jun 24, 2026
27df3e8
kano: config/*kano* use mdrobnak:google_omnigul as base, then coreboo…
tlaurion Jun 24, 2026
5a5534a
patches/coreboot-mrchromebox/0001-util-cbmem-Add-endian.h-include-for…
tlaurion Jun 24, 2026
e2299dc
kano: ./docker_repro.sh make BOARD=kano coreboot.modify_defconfig_in_…
tlaurion Jun 24, 2026
dfb11ba
kano: config/coreboot-kano.config; remove irrelevant omnigul things
tlaurion Jun 24, 2026
bd559fb
kano: ./docker_repro.sh make BOARD=kano coreboot.modify_and_save_oldc…
tlaurion Jun 24, 2026
2147f7b
config/coreboot-kano.config: fix blob paths for MrChromebox repo layout
tlaurion Jun 25, 2026
c01d81f
modules/coreboot: init 3rdparty/blobs submodule for mrchromebox fork
tlaurion Jun 25, 2026
8b2bb4e
kano: add CI seed for MrChromebox fork
tlaurion Jun 25, 2026
3633e37
kano: add PR0 lockdown support via SMM SPI/LPC lockdown
tlaurion Jun 25, 2026
933a2ef
doc/variation-to-defconfig.md: cross-board analysis from 38 defconfigs
tlaurion Jun 25, 2026
8f26296
config/coreboot-kano.config: expand blob paths to real paths
tlaurion Jun 25, 2026
5eebf77
kano: fix CBFS size and IFD validation
tlaurion Jun 25, 2026
b08091d
boards/kano/kano.config: note ME disable options unavailable in mrchr…
tlaurion Jun 25, 2026
7dcf7e7
patches/coreboot-mrchromebox/0001-util-cbmem-Add-endian.h-include-for…
tlaurion Jun 26, 2026
5baf496
README: document full clone history needed for version identifiers
tlaurion Jun 26, 2026
4d2c1e5
update kano.config
cwiggs Jun 25, 2026
03a4074
CONFIG_BOOTSCRIPT should be /bin/gui-init.sh (missing .sh)
cwiggs Jul 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ jobs:
# See doc/circleci.md for full documentation.
# Workspace chain: create_hashes -> x86_blobs -> x86_musl_cross_make -> x86_coreboot
# Seeds (one per unique toolchain): coreboot-4.11, coreboot-25.09,
# coreboot-dasharo_nv4x, coreboot-purism
# coreboot-dasharo_nv4x, coreboot-mrchromebox, coreboot-purism
# Dasharo v56/msi_z690/msi_z790 are build jobs, not x86_coreboot.
x86_coreboot:
executor: heads-docker
Expand Down Expand Up @@ -527,6 +527,16 @@ workflows:
requires:
- x86-musl-cross-make [cross compiler]

# mrchromebox fork (coreboot 26.03 based) -- builds coreboot-mrchromebox toolchain
# Downstream boards: kano
- x86_coreboot:
name: kano [seed:coreboot-mrchromebox]
target: kano
subcommand: ""
coreboot_dir: coreboot-mrchromebox
requires:
- x86-musl-cross-make [cross compiler]

# ── coreboot 25.09 boards (alphabetical) ───────────────────────────────
- build:
name: EOL_m900_tower-hotp-maximized
Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,24 @@ We welcome contributions to the Heads project! Before contributing, please read
Heads builds inside a versioned Docker image. The supported and tested workflow uses the
provided Docker wrappers — no host-side QEMU or swtpm installation is needed.

### Clone the Repository

Clone with full history to ensure version tags are available for
`git describe --tags` (used at build time for artifact filenames):

```bash
git clone https://github.com/linuxboot/heads.git
cd heads
```

To repair an existing shallow clone (`--depth 1` was used) or if
artifact filenames show a trailing `_-` (missing git abbreviation):

```bash
git fetch --unshallow origin
git fetch --tags origin
```

**Quick start** (requires [Docker CE](https://docs.docker.com/engine/install/)):

```bash
Expand Down
3 changes: 2 additions & 1 deletion bin/validate_cbfs_ifd_fit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,8 @@ if [ -z "$IFD_VALIDATION_SKIPPED" ] && [ -f "$IFD_PATH" ] && [ -n "$IFDTOOL" ];
MAX_CBFS_SIZE=0x1000000 # 16 MiB - Intel SPI decode window limit

# Calculate safe expansion target: min(IFD BIOS size, 16 MiB limit)
if [ $BIOS_SIZE -gt $MAX_CBFS_SIZE ]; then
MAX_CBFS_SIZE_DEC=$((MAX_CBFS_SIZE))
if [ $BIOS_SIZE -gt $MAX_CBFS_SIZE_DEC ]; then
TARGET_SIZE=$MAX_CBFS_SIZE
TARGET_SIZE_KB=$((TARGET_SIZE / 1024))
BIOS_SIZE_MB=$((BIOS_SIZE / 1024 / 1024))
Expand Down
84 changes: 84 additions & 0 deletions boards/kano/kano.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Configuration for a Acer Chromebook Spin 714 (CP714-1WN/2WN/KANO)
# Intel iGPU "UHD Graphics", 12th Gen Intel Core i5-1235U, 8GB RAM
# 256GB NVMe Storage, Intel AX211 Wi-FI 6E,

# TODO: Remove this line or confirm it's the same with Kano
# 32MB Winbond Chip W25Q256JVEM - WSON8 8x6 probe needed.

export CONFIG_COREBOOT=y
export CONFIG_COREBOOT_VERSION=mrchromebox
# Intel ME: MrChromebox fork does not provide INTEL_ME_DISABLED_HAP or
# IFDTOOL_DISABLE_ME Kconfig options (Dasharo/upstream additions).
# The me.bin from MrChromebox blobs repo is already in a ChromeOS-minimized
# state and provided as-is at CONFIG_ME_BIN_PATH in the coreboot config.
export CONFIG_LINUX_VERSION=6.6.30

CONFIG_COREBOOT_CONFIG=config/coreboot-kano.config
CONFIG_LINUX_CONFIG=config/linux-kano.config

#Enable DEBUG output
export CONFIG_DEBUG_OUTPUT=y
export CONFIG_ENABLE_FUNCTION_TRACING_OUTPUT=y
#Enable TPM2 pcap output under /tmp
export CONFIG_TPM2_CAPTURE_PCAP=y

#On-demand hardware support (modules.cpio)
CONFIG_LINUX_USB=y
CONFIG_LINUX_E1000=n
CONFIG_MOBILE_TETHERING=y

#Modules packed into tools.cpio
CONFIG_IO386=y
CONFIG_CRYPTSETUP2=y
CONFIG_FLASHPROG=y
CONFIG_FLASHTOOLS=y
CONFIG_GPG2=y
CONFIG_KEXEC=y
CONFIG_UTIL_LINUX=y
CONFIG_LVM2=y
CONFIG_MBEDTLS=y
CONFIG_PCIUTILS=y
#Runtime tools to write to EC/MSR
CONFIG_IOTOOLS=n
CONFIG_MSRTOOLS=n
#Remote attestation support
# TPM2 requirements
CONFIG_TPM2_TSS=y
CONFIG_OPENSSL=y
#Remote Attestation common tools
CONFIG_POPT=y
CONFIG_QRENCODE=y
CONFIG_TPMTOTP=y
#HOTP based remote attestation for supported USB Security dongle
#With/Without TPM support
CONFIG_HOTPKEY=n
#Nitrokey Storage admin tool (deprecated)
#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 (tools.cpio):
#SSH server (requires ethernet drivers, eg: CONFIG_LINUX_E1000E)
CONFIG_DROPBEAR=y

#Runtime configuration
#Automatically boot if HOTP is valid
export CONFIG_AUTO_BOOT_TIMEOUT=5
export CONFIG_FINALIZE_PLATFORM_LOCKING=y
#TPM2 requirements
export CONFIG_TPM2_TOOLS=y
export CONFIG_PRIMARY_KEY_TYPE=ecc
#TPM1 requirements
#export CONFIG_TPM=y
export CONFIG_BOOTSCRIPT=/bin/gui-init.sh
export CONFIG_BOOT_REQ_HASH=n
export CONFIG_BOOT_REQ_ROLLBACK=n
export CONFIG_BOOT_KERNEL_ADD=""
export CONFIG_BOOT_KERNEL_REMOVE=""
export CONFIG_BOOT_DEV="/dev/nvme0n1"
export CONFIG_BOARD_NAME="Google Kano"
export CONFIG_FLASH_OPTIONS="flashprog --progress --programmer internal --ifd -i bios -i fd"
Loading