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> |
||
|---|---|---|
| .github/workflows | ||
| docs | ||
| LICENSES | ||
| scripts | ||
| src | ||
| tools | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmodules | ||
| .mailmap | ||
| .uncrustify.cfg | ||
| Makefile | ||
| POWER.txt | ||
| README.md | ||
| REUSE.toml | ||
| rust-toolchain.toml | ||
System76 EC
System76 EC is a GPLv3 licensed embedded controller firmware for System76 laptops.
Documentation
- Supported embedded controllers
- Flashing firmware
- Debugging
- Creating a custom keyboard layout
- Development environment
- Adding a new board
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
Legal
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.)