System76 embedded controller firmware
Find a file
Tim Crawford 57c7276337
Some checks failed
CI / lint (push) Has been cancelled
CI / mega2560 (push) Has been cancelled
CI / tool (--no-default-features --features="redox_hwio") (push) Has been cancelled
CI / tool (<nil>) (push) Has been cancelled
CI / ec (push) Has been cancelled
ec/ite: Move e-flash signature to 0x80
According to the datasheet, the e-flash signature can be at any 16-byte
aligned address in 0x40-0xF0. Because of an address conflict with SDCC
4.5.0, move the signature to 0x80. This matches the address for Zephyr
RISC-V SoCs, like 82302.

Ref: https://github.com/zephyrproject-rtos/zephyr/pull/36379
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2026-04-15 13:04:28 -06:00
.github/workflows Add REUSE compliance 2026-01-16 11:55:42 -07:00
docs Move security support from main app to drivers 2026-01-30 09:18:12 -07:00
LICENSES Add REUSE compliance 2026-01-16 11:55:42 -07:00
scripts scripts: Fix ectool commands in power script 2026-02-18 14:20:39 -07:00
src ec/ite: Move e-flash signature to 0x80 2026-04-15 13:04:28 -06:00
tools Add case revision command, add thelio-io ID to tool, and normalize commands with QMK 2026-03-06 11:56:13 -07:00
.editorconfig Add REUSE compliance 2026-01-16 11:55:42 -07:00
.gitignore Add REUSE compliance 2026-01-16 11:55:42 -07:00
.gitmodules Add REUSE compliance 2026-01-16 11:55:42 -07:00
.mailmap Add REUSE compliance 2026-01-16 11:55:42 -07:00
.uncrustify.cfg Replace clang-format with uncrustify 2024-07-03 15:58:28 -06:00
Makefile Move dGPU support from main app to drivers 2026-01-30 09:18:12 -07:00
POWER.txt Add description of power init 2019-11-05 20:38:27 -07:00
README.md readme: Fix IT81202 link, IT8587E name 2025-01-07 13:40:59 -07:00
REUSE.toml Add REUSE compliance 2026-01-16 11:55:42 -07:00
rust-toolchain.toml Add REUSE compliance 2026-01-16 11:55:42 -07:00

System76 EC

System76 EC is a GPLv3 licensed embedded controller firmware for System76 laptops.

Documentation

Quickstart

Install dependencies using the provided script.

./scripts/deps.sh

If rustup was installed as part of this, then the correct cargo will not be available in the running session. Start a new shell session or source the env file to update PATH.

source $HOME/.cargo/env

Then build the firmware for your laptop model.

make BOARD=system76/<model>

See Flashing for how to use the new firmware image.

Releases

The EC firmware itself does not have tagged releases. Any commit of this repo may be used as a part of a System76 Open Firmware release.

In official releases the EC shares the same version as the BIOS firmware. Run the follow command from firmware-open to determine the corresponding EC commit for a release.

git ls-tree <release_hash> ec

System76 EC is copyright System76 and contributors.

System76 EC firmware is made available under the terms of the GNU General Public License, version 3. See LICENSE for details.

  • firmware: GPL-3.0-only
  • ecflash: LGPL-2.1-or-later
  • ecsim: MIT
  • ectool: MIT

Datasheets for the ITE embedded controllers used in System76 laptops cannot be shared outside of company. (However, the IT81202 datasheet is publicly available. While it uses a different core, a significant portion of the register information is the same as IT8587/IT5570.)