System76 EC is a GPLv3 licensed embedded controller firmware for System76 laptops.
- Supported embedded controllers
- Flashing firmware
- Debugging
- Creating a custom keyboard layout
- Development environment
- Adding a new board
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.
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 IT81202E datasheet is publicly available. While it uses a different core, a significant portion of the register information is the same as IT85878E/IT5570E.)