Files
system76-firmware-open/README.md
2023-10-03 14:04:54 -06:00

62 lines
2.0 KiB
Markdown

# System76 Open Firmware
An open source distribution of firmware utilizing coreboot, EDK2, and System76
firmware applications.
## Supported models and features
To view models that are supported and will receive updates through the firmware
manager, as well as available features for those models, please see the
[feature matrix](./FEATURES.md).
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
System76 customers may request board schematics for their system by sending an
email to firmware@system76.com with the subject line "Schematics for _model_",
where _model_ is one of the supported models listed above. Please include the
serial number of your system for verification.
You may not share these without explicit permission from System76.
## Changelog
For a list of important changes please see the [changelog](./CHANGELOG.md).
## Building
Dependencies can be installed with the provided script.
```sh
./scripts/install-deps.sh
```
If rustup was installed for the first time, it will be required to source the
environment file it installed to use the correct Rust toolchain.
```
source ~/.cargo/env
```
A script is provided to build the firmware. The available targets for building
are the model folders in `models/`. For example, to build for QEMU:
```
./scripts/build.sh qemu
```
Once built, the firmware must be flashed to use. Several scripts are available
to flash the new firmware, depending on how it is going to be written.
- `scripts/qemu.sh`: [Run the firmware in QEMU](./docs/debugging.md#using-qemu) (specific to the QEMU model)
- `scripts/flash.sh`: Flash using the internal flasher
- `scripts/ch341a-flash.sh`: Flash using a CH341A programmer
- `scripts/spipi-flash.sh`: Flash using a Raspberry Pi
See [Flashing firmware](./docs/flashing.md) for more details.