Commit Graph

55 Commits

Author SHA1 Message Date
Thierry Laurion
04431487b1
xx30 vbios scripts error handling and better scoping of UEFIExtract for FL1 files only. Also add sudo calls where required 2022-02-15 11:26:32 -05:00
Thierry Laurion
f9d143d77a Retry CircleCI for 4.11 on Debian 11 docker
- Add kgpe-d16 patch to remove HID for PCI devices (successful build on top of #1101 and #1012 per https://app.circleci.com/pipelines/github/tlaurion/heads/937/workflows/de49bea0-3f58-4a91-8891-87622f5a0eed)
- CircleCI modified to build for coreboot 4.11 kgpe-d16_workstation on top of 4.15 passed workspace
- CircleCI modified so that we still archive all the logs in artifacts for the current build even if failing. We now exit 1 after having archived all the log files under build/
- Add xx30 vbios extract scripts to test. Expecting musl-cross target to fail since make and gawk aren't built
- CircleCI: gawk was not installed in apt statements under Debian. Installing
- Makefile: seperate and fix local make and gawk building pror of using. Otherwise, impossible to build musl-cross target seperatly.
  - Also give some debugging info at start of Heads builds to tell which local gawk and make are used, also telling which make call will be propagated in the rest of the builds
  - Fix gawk version checking, reporting bad version even if 4.2.1 as expected on debian-10 (debian-10 OS deploys gawk and make in version 4.2.1)
- CircleCI: Changing musl-cross taget to bootstrap (gawk+make) and musl-cross-make (bootstrap_musl-cross-make) for clarity
2022-02-08 13:58:14 -05:00
eganonoa
a5b27e485f Adding explanatory notes re t530 and w530 dgpus
This commit adds explanatory notes  and updates existing t530 and w530 boards to generally align them with the dGPU points and provide signposting for those with and those without dGPU boards. It also adds an additional README in the blobs directory to explain the vbios extraction and building process.
2021-12-28 11:10:58 -05:00
eganonoa
a854144e2d Add support for t530 and w530 dGPU
This commit adds support for the t530 and w530 boards to enable dGPUs. dGPU's are required for DisplayPort external displays in the t530 dgpu model, and for both the VGA dn DisplayPort external displays in the W530 (which has two dGPUs, the K1000M and K2000M, hence two boards).  The commit does the following:

1. Adds automated extraction scripts for vbios modelled on the me script in the blobs directory (one per board is necessary as it is based on board-specific bios updates).
2. Adds specific boards for the various dGPU models and corresponding coreboot configs.
3. Updates circleci config.yaml to run scripts and test boards.

Tested and working on T530 dgpu and W530 K1000M. dGPU scripts tested on Debian 10 and Ubuntu 21.04
2021-12-28 11:10:58 -05:00
Matt DeVillier
d9bc74e7f0 blobs/librem*: remove blob download scripts
Blobs needed to build the Librem 13/15 boards are now
handled by the purism_blobs module; these scripts are
no longer needed.

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2021-12-20 22:13:36 -05:00
Thierry Laurion
22f2288331 xx30 blobs: use me_cleaner.py locally downloaded
- me_cleaner downloaded from 43612a630c/me_cleaner.py
- placed under xx30 blobs dir
- CircleCI uses it locally without downloading it everytime (me_cleaner hasn<t changed since 2018)
2021-12-04 15:51:53 -05:00
Matt DeVillier
e65770035e
blobs/librem_*: ensure blobs placed in script dir
Ensure blobs end up in correct dirs, even when scripts are
called from the root project dir. Fixes issues when called
from CircleCI.

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2021-09-15 10:38:57 -05:00
Thomas Clarke
6f19104054
Fix exit codes for blobs/xx20/download_parse_me.sh and blobs/xx30/download_clean_me.sh
Incorrect parentheses brackets used in those scripts meant that the script as a whole did not return the correct exit code. The use of `( )` brackets created a sub-shell to which the exit code applied to that sub-shell. Changing to `{ }` does not create a sub-shell and as such, the script will return its true return code.
2021-05-10 00:01:02 +01:00
Tom Hiller
646ddee748 blobs: add blobs/xx20 2020-12-02 19:18:35 -05:00
tlaurion
36c04f19e4
Add xx30-maximized and xx30-hotp-maximized boards (11.5mb flashable BIOS regions, reproducible me.bin and generated gbe.bin and totally externally and internally flashable roms) (#703)
* xx30-*-maximized: update flashrom options removing --ifd bios option, keeping whole flash of rom internally. WARNING: ifd needs to be initially unlocked through ifdtool -u on 8mb bottom SPI backup. YOU CANNOT COME FROM 1VYRAIN. IF COMING FROM SKULLS, YOU MUST HAVE RAN OPTIONAL -u OPTION FROM SKULLS. PLEASE UPGRADE ONLY AFTER HAVING A PHYSICAL BACKUP OF BOTH SPI FLASH CHIPS. MORE INFORMATION UNDER https://github.com/osresearch/heads/pull/703. This will guarantee that future flash of produced rom will reflash the ROM totally, where heads make sure of adding users customizations (public key, /etc/config.user) when internally flashed. Unfortunately, if you flash externally, you will have to reinject your public key and readd /etc/config customizations.

* Adding generated bincfg coreboot 4.8.1 patch (merged under coreboot 4.13 and backported here to 4.8.1), resulting in gbe.bin under blobs/xx30/gbe.bin and instructions to replicate in README prior of automation (under repo). Note that MAC under gbe.bin is fixed to DE:AD:C0:FF:EE unless extract.sh script is ran on external backup to keep current user's MAC (Thanks to @Thrilleratplay's contribution!)

* xx30 blobs: add two blobs management scripts for xx30: extract from local backup/download+neuter ME
extract.sh: extract from external backup: gbe.bin, neuter under me.bin and maximize BIOS+reduce ME regions under unlocked ifd.bin. 
download_clean_me.sh: download and verify Lenovo latest ME version from website, and drop me.bin in place.
Note: me.bin is 98kb, containing only BUP and ROMP partitions which cannot be modified nor deleted else computer won't boot. As a result, BIOS region is maximized in ifd.bin to 11.5mb and coreboot config takes advantage of that freed space.

* CircleCI: xx30-*-maximized additional step to call download_clean_me.sh prior of building boards so that me.bin is dopped in place. This should be done by users prior of building xx30-*-maximized boards locally, which is imitated in CircleCI builds (look at .circleci/config.yaml for innoextract host added dependency and board buildings. Results on github for each commit).
2020-12-02 17:01:44 -05:00
Patrick Rudolph
843d4adb4c
blobs/*: Fix extract script (#792)
Command returns a list of utilities found. This can happen if multiple
coreboot folders are present.

Use only one to fix a crash in the following lines.

Test: Being able to extract blobs when two coreboot folders are present,
      both containing an IFDTOOL.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2020-09-04 14:01:47 -04:00
MrChromebox
268fb90623
Add new board: Purism Librem Mini (#806)
* patches/coreboot-4.12: Add patch for Cannonlake ME status

Add patch print ME status regardless of enablement state

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>

* modules: add purism-blobs module

Rather than require users to manually run a script to download the required
blobs to build Purism Librem boards, automate it so the correct version
is automatically downloaded/extracted. Restrict to coreboot 4.12 for now
since 4.8.1 still needs FSP blobs, which are not in module.

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>

* configs/linux-librem13v2: unset CONFIG_RETPOLINE

Fixes compilation issue with newer kernels, ignored by older ones
which don't need it

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>

* Add new board: Librem Mini

Add Librem Mini board patch for coreboot 4.12, board config and
coreboot config. Continue reusing existing librem13v2 Linux config,
same as all other Librem boards currently. Use new purism-blobs module.

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>

* board/librem*: rename for consistency

Use 'librem_<board>' notation for consistency across all models.
Rename linux config file since used by multiple Librem models.

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>

* CircleCI: add librem_mini board to test

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2020-09-02 14:39:37 -04:00
Matt DeVillier
b29447ef8f
modules/flashrom: update to v1.2 release
- Update flashrom module to v1.2.
- Drop Thinkpad x220 patch as it's now properly supported.
- Drop 'laptop=force_I_want_a_brick' from board FLASHROM_OPTIONS
  since it's no longer needed.
- Migrate kgpe-d16 patch.

The kgpe-d16 patch needed a complete overhaul when rebased against
flashrom v1.2, and needs close inspection/testing as a result.
The following changes were made from the previous patch:

- dropped addition of 4-byte addressing (4BA), since now supported
- dropped addtiion of Macronix MX25L256 and MX66L512 chips,
  since now supported
- added 4BA erase commands for Winbond W25Q256 chip
- dropped code to show progress indicator, since another PR already adds that

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2020-04-20 17:34:08 -05:00
Sebastian McMillan
21faf524b9
T420 initial support + X220 FBWhiptail Support (#578)
* Add support for the Lenovo ThinkPad T420 and X220.
* Fix the autodetection of ifdtool and me_cleaner.
* Enable FBWhiptail mode for X220 and T420
* Decreased CBFS size to fix 50 seconds boot delay problems
2020-02-19 12:51:03 -05:00
Matt DeVillier
a3bbdbab54
blobs/librem*: update hashes for FSP and VBT
Update hashes of coreboot images, releases repo, FSP blobs,
and VBT file. Updated VBT from coreboot 4.11 release eliminates
flickering on some 13v4/15v4 displays.

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2020-01-22 16:59:54 -06:00
Trammell Hudson
791d064397
musl-cross-make: replace all cross compilers with musl-cross-make
Signed-off-by: Trammell Hudson <hudson@trmm.net>
2020-01-08 17:08:15 +01:00
Matt DeVillier
5a4cb4acbb
blobs/librem_*: update CPU microcode
Update hashes for CPU microcde, git releases repo, precompiled
images used for extraction

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2019-11-18 11:10:15 -06:00
MrChromebox
71a2ddfb1e
blobs/librem_kbl: update get_blobs script
update file hashes to match Purism fork
2019-09-30 12:14:56 -05:00
MrChromebox
5fa06316cf
blobs/librem_skl: update get_blobs script
update file hashes to match Purism fork
2019-09-30 12:14:09 -05:00
Martin Kepplinger
6a28462794 blobs/x220: fix build instruction 2019-05-22 10:40:02 +02:00
Matt DeVillier
92fdb0392b get_blobs: extract blobs from precompiled Purism coreboot images
Rather than download large repositories of files from sources we
don't control and patch files as needed, simply extract the
files from precompiled, known good Purism coreboot images.

This offers multiple advantages:
 - single source for all blobs, which we control
 - significantly smaller download requirements for end user
 - significantly less script complexity
 - much, much faster

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2019-03-02 22:54:25 -06:00
Matt DeVillier
81bf58d96d blobs/librem_kbl: clone from librem_skl, adjust for v4
Librem 13v4/15v4 use Kabylake SoC, have different set of blobs
required from Skylake-based v3 boards.

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2019-02-12 16:32:04 -06:00
Matt DeVillier
428561c11e librem_skl/readme: remove reference to 15v4
15v4 isn't a skylake-based device

Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
2019-02-12 16:32:04 -06:00
Kyle Rankin
c77b560300
Update ME repository links/filenames/hashes
The current links to the ME blob have expired. This updates the links
along with the resulting file names and hashes.
2019-01-28 09:26:23 -08:00
Kyle Rankin
e3343b5aff
Fix permissions on get_blobs.sh 2018-11-08 09:22:24 -08:00
Kyle Rankin
f20d45a426
Update Librem get_blobs.sh script to point to proper upstream URLs 2018-11-08 09:18:26 -08:00
Trammell Hudson
1d27c93a50
Merge branch 'master' of https://github.com/Akendo/heads 2018-08-13 06:33:51 -04:00
Paul Menzel
11d30bd635 blobs/x220: Start *Lenovo* with capital letter 2018-08-09 23:36:03 +02:00
Akendo
09b3e7b1dc Merge branch 'master' of github.com:Akendo/heads 2018-07-25 14:14:32 +02:00
Akendo
1b0fdefb5f Add missing paraemter for the correct board.
Without this parameter the qemu board is selected by default. Leading to errors
Signed-off-by: Akendo <akendo@akendo.eu>
2018-07-25 13:59:18 +02:00
Akendo
e830737e9b Update the path within the readme.md from the x220
The path was incorrect for the configuration file of the x220. Leading to some
confusion. Adjusting to to newer path, where the file is located.
2018-07-24 23:46:46 +02:00
Trammell hudson
6f151a287d
Merge branch 'librem13v2_blobs_config' of https://github.com/kakaroto/heads 2018-03-12 13:56:11 -04:00
Trammell hudson
073834e5c0
Move the ld-musl symlink into the blobs/dev.cpio file. #317
This makes it possible to use musl-libc compiled tools
without the Heads runtime.
2018-02-13 17:44:26 -05:00
Trammell hudson
383f1f66a5
merge changes from master into nerf branch in preparation for closing nerf branch 2018-02-02 17:06:49 -05:00
Trammell hudson
16d13e61de
rename initrd.cpio to inird-$(BOARD).cpio), remove old tools 2018-02-02 16:26:26 -05:00
Trammell hudson
8ebe816b0b
now part of LinuxBoot tree 2018-02-02 16:02:37 -05:00
Trammell hudson
d1c6e6573f
merge from s2600wf tree 2018-02-02 16:01:58 -05:00
Trammell hudson
edbd62f8f2
remove ACPI and other blobs; these are now part of LinuxBoot 2018-02-02 15:59:12 -05:00
Trammell hudson
23bded6e8f
Merge branch 'nerf' of ssh://github.com/osresearch/heads into nerf 2018-02-02 15:51:16 -05:00
Trammell hudson
4895e4704f
checkpointing a config that boots to user space, but serial still does not work 2018-01-19 15:53:05 -05:00
Trammell hudson
4d2b4a3e4c
acpi and necessary vendor GUIDs for Intel S2600WF mainboard 2018-01-19 13:44:15 -05:00
Trammell hudson
7a61beeeea
secureboot stuff is not necessary for s2600wf 2017-12-08 14:07:56 -05:00
Trammell hudson
7a712f71fc
more unnecessary modules for the s2600wf 2017-12-08 14:01:58 -05:00
Trammell hudson
a9f97c45e1
removed more guids that are not necessary for s2600wf 2017-12-08 13:53:56 -05:00
Trammell hudson
5ef939cf83
minimal set of GUIDs to boot the s2600wf 2017-12-08 13:29:25 -05:00
Trammell hudson
5176bfdd58
preliminary winterfell support for NERF 2017-10-18 13:56:32 -04:00
Trammell hudson
6046a01e9e
Initial support for the Lenovo x3550 m5 server, but it does not work yet 2017-10-05 15:16:34 -04:00
Trammell hudson
212b030660
generate ACPI firmware volume and removed Linux ACPI table hacks (issue #266) 2017-09-25 15:21:16 -04:00
Trammell hudson
86f90c8947
LZ compressed version of the ACPI tables (hand generated) (issue #266) 2017-09-24 11:59:10 -04:00
Trammell hudson
115573adc9
Attempt to use the edk2 ACPI tables (issue #266)
This links in the AcpiTableDxe and AcpiPlatform executables from
the edk2 build tree and adds a depex dependency for the Linux
kernel on the AcpiTable being setup.  The `acpi.cpio` file is
no longer included in the Linux kernel bzImage.

The `Makefile.nerf` has been re-written to generate the firmware
file system (FFS) files via rules.

TODO: figure out how to add LZMA compressed sections so that the
900k acpi tables can be compressed to about 100k.
2017-09-23 22:53:10 -04:00