Files
system76-firmware-open/README.md.in
2020-08-31 11:19:27 -06:00

62 lines
1.7 KiB
Markdown

# System76 Open Firmware
An open source distribution of firmware utilizing coreboot, EDK2, and System76
firmware applications.
## Supported models
These models are supported and will receive updates through the firmware
manager:
- bonw14
- darp6
- galp4
- lemp9
- oryp6
Other models may be in development or available without support, and can be
seen in the `models/` directory.
If the device becomes bricked it will require restoring the current firmware
using an external programmer. See [flashing](./docs/flashing.md) for details.
### Schematics
Board schematics can be provided on request by sending an email to
firmware@system76.com with the subject line "Schematics for _model_", where
_model_ is the name of a directory in the `models/` directory, such as darp6.
You may not share these without explicit permission from System76.
## Dependencies
### Install toolchain
```
./scripts/deps.sh
```
### Load Rust environment (or optionally reboot)
```
source ~/.cargo/env
```
### Build firmware, replace qemu with your model (look in the models directory for examples)
```
./scripts/build.sh qemu
```
### Emulate firmware, only available after building the qemu model
```
./scripts/qemu.sh
```
## Intel Management Engine
The IME is present, but disabled. This is accomplished by [sending a HECI
command on boot][heci_disable], before RAM is initalized. This puts the IME in
a state similar to setting the HAP bit on earlier platforms. [me_cleaner] is
not used as it does not support IME version 14.0.
[heci_disable]: https://github.com/system76/coreboot/blob/f3ba5937e778105cb7e75de9a1d4adf54ea825e5/src/soc/intel/cannonlake/me.c#L186
[me_cleaner]:https://github.com/corna/me_cleaner