System76 Open Firmware
Find a file
Tim Crawford 616b2bfe7b scripts: Don't run git-lfs commands on CI
The `deps.sh` script needs to be run to set up a new Jenkins workspace.
The git-lfs commands fail with:

    mkdir /dev/null: not a directory
    To resolve this, either:
      1: run `git lfs update --manual` for instructions on how to merge hooks.
      2: run `git lfs update --force` to overwrite your hook.

Just don't run them, since Jenkins is configured to perform the LFS pull
when fetching the repo.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-08-15 07:09:09 -06:00
.github/ISSUE_TEMPLATE Ask for kernel version for bug reports 2022-11-17 11:51:35 -07:00
apps Remove firmware-smmstore 2023-08-03 12:04:47 -06:00
coreboot@f450af3321 coreboot: Fix Bluetooth performance on TGL 2023-08-09 09:23:16 -06:00
docs fix (docs): Update link to EC debugging 2023-08-10 09:34:33 -06:00
ec@01907011bb Update EC 2023-08-01 14:41:49 -06:00
edk2@27585e73da edk2: Update Secure Boot DBX to version 371 2023-06-27 09:24:21 -06:00
LICENSES Add info and text for firmware binaries licenses 2022-07-07 22:56:47 -06:00
models darp9: Update CSME 2023-06-07 17:31:14 -06:00
scripts scripts: Don't run git-lfs commands on CI 2023-08-15 07:09:09 -06:00
tools Update coreboot-collector 2023-04-03 13:23:12 -06:00
.gitattributes Make pdf files use git LFS 2019-10-04 17:28:41 -06:00
.gitignore Extract GOP driver when generating new model 2021-01-26 10:21:07 -07:00
.gitmodules Remove libs/ 2023-08-04 12:04:42 -06:00
CHANGELOG.md coreboot: Fix Bluetooth performance on TGL 2023-08-09 09:23:16 -06:00
FEATURES.md Update RPL boards in FEATURES 2023-07-20 10:43:17 -06:00
Jenkinsfile Add Jenkinsfile for Pipeline 2023-08-12 07:22:13 -06:00
LICENSE.md Add info and text for firmware binaries licenses 2022-07-07 22:56:47 -06:00
README.md Add feature matrix 2023-05-22 11:22:56 -06:00
rust-toolchain.toml Update Rust toolchain to nightly-2023-01-21 2023-08-04 11:59:08 -06:00

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.

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 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.

Building

Dependencies can be installed with the provided script.

./scripts/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 (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 for more details.