25 Commits

Author SHA1 Message Date
Tim Crawford
1d973574fe
scripts: Version EC separately from SBIOS
The original rationale for having the EC version match the SBIOS version
was to ensure that compatible versions of each were installed. So we set
the EC version to the SBIOS version and always flash both of them, even
if only one actually changed.

At some point, a mechanism should be implemented that checks for a
minimum supported/compatible version. This would be comparable to the
LVFS MetaInfo's "requires" field.

Ref: f4f4d5b61dbe ("Build EC as a submodule, specifying version")
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2024-02-28 18:36:04 -07:00
Tim Crawford
968a612824 scripts: Address shellcheck issues
Report issues by shell files with:

    git ls-files '*.sh' | xargs shellcheck --exclude=SC2162

Address the following:

- SC1087: Use braces when expanding arrays
- SC1091: Not following
- SC2004: `$`/`${}` is unnecessary on arithmetic variables
- SC2024: `sudo` doesn't affect redirects
- SC2034: foo appears unused. Verify it or export it
- SC2086: Double quote to prevent globbing and word splitting
- SC2087: Quote `EOF`
- SC2115: Use `"${var:?}"` to ensure this never expands to `/*`
- SC2148: Add a shebang

Addresses (at least partially) some POSIX/dash issues:

- SC2113: `function` keyword is non-standard
- SC3010: In POSIX sh, `[[` `]]` is undefined
- SC3014: In POSIX sh, `==` in place of `=` is undefined
- SC3020: In POSIX sh, `&>` is undefined
- SC3046: In POSIX sh, `source` in place of `.` is undefined

Does not address:

- SC2162: `read` without `-r` will mangle backslashes
- Any other POSIX/dash-specific issues

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-10-19 14:45:22 -06:00
Tim Crawford
b379c94b76 Split building coreboot toolchains to a separate file
Specify dependencies specifically for building coreboot toolchains in
the file, so they are not conflated with the dependencies required for
building firmware-open.

Remove building the toolchain when building firmware, so that the new
script is the single source for building coreboot toolchains.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-10-19 08:08:02 -06:00
Tim Crawford
5fb1624187 Set and use XGCCPATH
Allow overriding the coreboot toolchain location with `XGCCPATH` so
that xgcc can be installed to a separate location, such as `/opt`.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-10-19 08:07:39 -06:00
Tim Crawford
c1dafbbfad scripts: Always set EC build dir
Building EC was broken as the build output from the previous board was
not being cleaned. `BUILD` is now always set, defaulting to "build",
instead of only when `BOARD` is specified. For good measure, add it
to the clean command in case a custom path is used.

Fixes: 569321f9ac79 ("scripts: Set EC build dir")
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-10-12 13:27:55 -06:00
Tim Crawford
569321f9ac scripts: Set EC build dir
Specify the EC build directory so that it does not require the model or
version to be determined in the script.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-10-11 19:05:16 -06:00
Tim Crawford
f527a7a273 scripts: Allow additional EC configs
Modify the build script to allow setting additional EC configs, similar
to how edk2 is done.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-05-24 08:58:28 -06:00
Tim Crawford
6562cf213d coreboot: Rebase on 4.19
Rebase on coreboot/coreboot@decbf7b4d9.

The following boards have been upstreamed:

- darp8
- galp6

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-02-10 15:45:26 -07:00
Tim Crawford
42814e6e5c scripts: Build edk2 using coreboot toolchain
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2022-08-29 10:10:34 -06:00
Tim Crawford
fa98ecae1f edk2: Rebase on edk2-stable202108
Set options in edk2.config for each board.

PCIE_BASE is no longer an edk2 option. The value is expected to be in
AcpiBoardInfo HOB, generated from the bootloader's ACPI table.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-12-21 13:11:09 -07:00
Jeremy Soller
4328777136 Fixes for python 3.9 2021-05-12 11:11:25 -06:00
Tim Crawford
0a98ce8c93 scripts: Check coreboot config is correct
If a board in models/ does not exist in coreboot, coreboot will emit a
warning and select the first available board for the vendor instead.

This may result in building and being able to flash coreboot with an
addw1 configuration on another board.
2021-03-15 10:12:23 -06:00
Jeremy Soller
83b35f6870
Revert "scripts: Check coreboot config is correct"
This reverts commit af5041f90befc28d8d99efa052d5823b2b1833c6.
2021-02-26 15:28:05 -07:00
Tim Crawford
af5041f90b scripts: Check coreboot config is correct
If a board in models/ does not exist in coreboot, coreboot will emit a
warning and select the first available board for the vendor instead.

This may result in building and being able to flash coreboot with an
addw1 configuration on another board.
2021-02-26 12:43:29 -07:00
Tim Crawford
ff0a27ad9c Use defconfig to generate .config
Use minimal set of config selections and let coreboot generate the
default values for the rest of them.

The only differences are the following models selecting
CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS instead of *_EXTERNAL_BINS:

- darp5
- darp6
- galp3-c
- galp4
- lemp9
2020-12-14 15:07:14 -07:00
Jeremy Soller
48bf9dcfce
coreboot ec-acpi (#106)
* Add script for updating coreboot config

* Update coreboot and coreboot config

* Update coreboot and configs

* Pass board and version when running make clean in ec

* Add addw2 chip.txt

* Update coreboot

* Update coreboot
2020-07-18 13:49:56 -06:00
Tim Crawford
d645e62cde Rebase edk2 on edk2-stable202002
Rebase on the latest stable tag of EDK II, switching from
CorebootPayloadPkg to the new UefiPayloadPkg.
2020-05-21 13:12:05 -06:00
Tim Crawford
f4f4d5b61d Build EC as a submodule, specifying version
For models that use System76 EC, we want to have the board version and
the EC version matich.

Ref: https://github.com/system76/firmware-open/issues/75
2020-04-07 13:08:51 -06:00
Jeremy Soller
0a798d9421
Make it easier to build different package for edk2 2020-01-30 12:14:52 -07:00
Jeremy Soller
71dbd04b0c
Disable edk2 debugging 2019-06-10 14:01:18 -06:00
Jeremy Soller
6a0e76d5d6
Add udk gdb script 2019-06-06 14:47:24 -06:00
Jeremy Soller
00c056b5e3
Update coreboot and skip building toolchain if already built 2019-05-10 11:08:00 -06:00
Jeremy Soller
a95b76e3ef
Add GOP driver to EDK2 build 2019-05-02 19:43:10 -06:00
Jeremy Soller
c9e444edf4
Update EDK2 build config 2019-05-02 15:11:07 -06:00
Jeremy Soller
37f650fc67
Support building images from outside of coreboot tree 2019-05-02 14:42:31 -06:00