System76 Open Firmware
Find a file
Tim Crawford 46f4fb2fa7
jenkins: Rebuild the coreboot toolchain
Latest build failed with:

    /bin/sh: 1: /home/jenkins/workspace/firmware-open-pipeline/coreboot/util/crossgcc/xgcc/bin/x86_64-elf-gcc: not found

So try rebuilding the toolchain.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-20 12:35:59 -07: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@705e7fd610 lemp12: Fix PCIe 4.0 SSDs in PCIe 3.0 slot on resume 2024-02-20 11:52:11 -07:00
docs docs: Add note about checking CSME state 2023-09-07 10:24:10 -04:00
ec@181d4c5d59 Update coreboot and ec 2023-09-08 16:52:38 -04: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 adl: Update CSME to 16.1.25.2124 2023-09-07 10:34:31 -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 lemp12: Fix PCIe 4.0 SSDs in PCIe 3.0 slot on resume 2024-02-20 11:52:11 -07:00
FEATURES.md Update RPL boards in FEATURES 2023-07-20 10:43:17 -06:00
Jenkinsfile jenkins: Rebuild the coreboot toolchain 2024-02-20 12:35:59 -07: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.