11 releases

new 0.3.2 Feb 26, 2021
0.3.1 Feb 23, 2021
0.2.3 Jan 5, 2021
0.2.2 Oct 6, 2020
0.1.1 Feb 27, 2020
Download history 57/week @ 2020-11-07 39/week @ 2020-11-14 168/week @ 2020-11-21 110/week @ 2020-11-28 80/week @ 2020-12-05 82/week @ 2020-12-12 112/week @ 2020-12-19 63/week @ 2020-12-26 83/week @ 2021-01-02 107/week @ 2021-01-09 158/week @ 2021-01-16 82/week @ 2021-01-23 183/week @ 2021-01-30 213/week @ 2021-02-06 109/week @ 2021-02-13 287/week @ 2021-02-20

549 downloads per month

MIT license

61KB
1.5K SLoC

System76 EC

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

Documentation

Dependencies

The complete set of dependencies can be installed using the deps.sh script from the Open Firmware repo.

Dependencies specific to EC development can be installed with:

sudo apt install \
  avr-libc \
  avrdude \
  gcc-avr \
  sdcc

lib.rs:

Library for accessing System76 ECs First, construct an access method, using an object implementing the Access trait. Next, an Ec object can be contructed, which exposes the command interface.

There are some differences between targets and features that are listed below:

  • AccessHid requires the hidapi feature. Only functional on USB ECs.
  • AccessLpcDirect requires the redox_hwio feature and a nightly compiler. This method is only recommended for use in firmware with LPC ECs, as mutual exclusion is not guaranteed.
  • AccessLpcLinux requires the std feature and linux target_os. Recommended for LPC ECs, as this method can utilize mutual exclusion.
  • EcLegacy, Pmc, and SuperIo all require the redox_hwio feature and a nightly compiler. It is only recommended to use these in firmware, as mutual exclusion is not guaranteed.

Dependencies

~0.9–1.2MB
~21K SLoC