1 个不稳定版本

0.3.8 2023年11月20日

#1249硬件支持

MIT 许可证

69KB
2K SLoC

System76 EC

System76 EC 是为 System76 笔记本电脑提供的 GPLv3 许可的嵌入式控制器固件。

文档

快速入门

使用提供的脚本来安装依赖项。

./scripts/deps.sh

如果 rustup 作为此过程的一部分安装,则当前会话中将无法使用正确的 cargo。启动新的 shell 会话或源 env 文件以更新 PATH

source $HOME/.cargo/env

然后为您的笔记本电脑型号构建固件。

make BOARD=system76/<model>

有关如何使用新的固件映像的说明,请参阅烧写

版本

EC 固件本身没有标记的版本。此仓库的任何提交都可以用作 System76 Open Firmware 版本的一部分。

在官方版本中,EC 与 BIOS 固件共享相同的版本。从 firmware-open 运行以下命令以确定版本的相应 EC 提交。

git ls-tree <release_hash> ec

System76 EC 由 System76 和贡献者拥有版权。

System76 EC 固件在 GNU 通用公共许可证(版本 3)的条款下提供。有关详细信息,请参阅 LICENSE

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

System76 笔记本电脑中使用的 ITE 嵌入式控制器的数据表不能在公司外部共享。(但是,IT81202E 数据表是公开可用的。虽然它使用不同的核心,但大量寄存器信息与 IT85878E/IT5570E 相同。)


lib.rs:

访问System76 EC的库。首先,构建一个访问方法,使用实现Access特质的对象。接下来,可以构建一个Ec对象,该对象公开命令接口。

以下列出了目标和功能之间的一些差异

  • AccessHid需要hidapi功能。仅在USB EC上功能正常。
  • AccessLpcDirect需要redox_hwio功能和夜间编译器。此方法仅推荐用于具有LPC EC的固件,因为互斥性无法保证。
  • AccessLpcLinux需要std功能和linux target_os。推荐用于LPC EC,因为此方法可以利用互斥性。
  • EcLegacyPmcSuperIo都需要redox_hwio功能和夜间编译器。仅推荐在固件中使用这些功能,因为互斥性无法保证。

依赖项

~2.5MB
~38K SLoC