Commit Graph

1527 Commits

Author SHA1 Message Date
Alper Nebi Yasak 0aeb69b5ad download/u-boot: Use GitHub mirror as fallback
The coreboot download script uses GitHub as a fallback if the upstream
coreboot is unavailable, use a similar fallback for U-Boot as well.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 7b552bd299 download/u-boot: Support reading tree and revision from board.cfg
Boards may want to specify a board-specific U-Boot revision. At the very
least, pseudo-boards for u-boot-libre releases will need to specify their
U-Boot versions somehow.

Copy the existing mechanism from download/coreboot for specifying
build info with board.cfg files. Specify the commit hash for the
'v2021.07' pseudo-board, and 'master' as the default.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 8dd1a24504 download/u-boot: Prepare files per board instead of per revision
The U-Boot download script is designed to help with releasing
u-boot-libre and it can only prepare a generic U-Boot v2021.07 tree.
However, we will need to build board-specific versions of U-Boot to be
able to use it as a coreboot payload effectively.

As a first step toward that, make the download script prepare per-board
copies of U-Boot v2021.07. Then, add a 'v2021.07' pseudo-board for the
u-boot-libre release script to work on.

The u-boot-libre deblob script hash ends up chaning due to copying my
author attribution from the download script, update its hash.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak d8da9b51e2 .gitignore: Ignore u-boot directory
The "u-boot" directory and its contents are created at build-time,
ignore it in git.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-27 17:35:55 +03:00
Alper Nebi Yasak 22b1db6980 u-boot-libre: Set tar mtime to SOURCE_DATE_EPOCH or @0
The u-boot-libre tarball contents' mtimes are an unconventional value
due to timezone confusion. For reproducibility, timestamps like these
are usually set by a SOURCE_DATE_EPOCH which is respected by both
coreboot and U-Boot. Use it in the u-boot-libre release script as well,
and properly set the mtimes to the Unix epoch when it's not defined.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-25 21:38:05 +03:00
Alper Nebi Yasak 01f61263f8 u-boot-libre: Fix releasing blob list as deblob script
The u-boot-libre release script copies the blobs list into the release
as the deblob script, presumably due to a copy-paste error. Fix it to
correctly copy the generated deblob script.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-25 21:22:04 +03:00
Denis 'GNUtoo' Carikli 89a4c2c61f u-boot-libre: remove nonfree firmware in drivers/dma/MCD_tasks.c
This firmware lack corresponding source code.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-08-25 21:09:01 +03:00
Alper Nebi Yasak f679fbd359 u-boot-libre: Fix reproducability issue due to timezone
The checksums in tests/u-boot-libre.sha512 do not match the tarballs
generated by this script when ran on a different timezone, e.g. UTC+3.
Explicitly specify a timezone for the tar command that makes the
tarballs match the checksums.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2022-08-25 21:08:54 +03:00
Leah Rowe fbbb5bc616 Libreboot 20220710 2022-07-10 08:33:31 +01:00
Leah Rowe f8183e187b say the name libreboot, in grub menus 2022-03-20 00:44:45 +00:00
shmalebx9 0b3b7f93b7 added workaround for git credentials
this is cherry-picked from osbmk. the cherry-pick was
performed by i, leah rowe. this is adapted from shmalebx's
patch there, in osboot

specifically, these patches from osbmk are being imported:

327a39ef058d5385bf8c1a1b09bac8db6a51b016

5139ad4be4df1835ce154f39161eef4f7c31ee1a
2022-03-16 04:40:59 +00:00
Leah Rowe 8ca0761fb0 specifically call python3, in scripts
with this change, it's unlikely we'll hit errors again. previously,
some projects used were calling "python" which in context was
python3, but on some setups, the user only has python2 and python3
but no symlink for "python" (which if exists, we assumed linked to
python3)

now it's unambiguous. docs/build/ can probably be updated now, as
a result of this change, to remove the advice about that
2022-03-13 18:17:09 +00:00
Leah Rowe 61e48acf67 Merge branch 'seabios-race' of xloem/lbmk into master 2022-03-12 22:13:23 +00:00
John Doe 676eb110c7 Perform the silentoldconfig step of seabios before full make
I was running into a race condition when rebuilding seabios with a high cpu count,
resulting in failure with this error message:

cc1: fatal error: can't open 'out/src/asm-offsets.s' for writing: No such file or directory

Performing the silentoldconfig step before the full make step seems to resolve the failure.
2022-03-11 19:52:47 -05:00
Leah Rowe 33a43ffc07 update flashrom 2022-03-07 04:58:11 +00:00
Leah Rowe 9557da45df Merge branch 'master' of GNUtoo/lbmk into master 2022-03-06 17:07:45 +00:00
Leah Rowe 89aac5393a Merge branch 'submodule-version' of xloem/lbmk into master 2022-03-06 17:07:33 +00:00
Denis 'GNUtoo' Carikli 3b80a42aa0
scripts: download: coreboot: fix ./download all
When running ./download all, we have the following error:
    resources/scripts/download/coreboot: Line 52: $1 is not set.

The ./download all command was broken by the following commit:
2bb805e2e0 (download: Add --help in the
individual download scripts).

Reported-by: madbehaviorus[m] on #libreboot on liberachat
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-03-06 18:02:16 +01:00
John Doe acc57bda6d scripts: process git versions when lbmk is a worktree or submodule
git worktrees have plaintext .git files which contain the gitdir in their content.
2022-03-04 14:14:05 -05:00
Leah Rowe fd41399961 Merge branch 'master' of GNUtoo/lbmk into master 2022-02-19 12:38:48 +00:00
Denis 'GNUtoo' Carikli 8833be159b
scripts: download: u-boot: fix u-boot repository URL
Without that fix we have the following warning during the download:
    Cloning into 'u-boot/u-boot'...
    warning: redirecting to https://source.denx.de/u-boot/u-boot.git/

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:33:53 +01:00
Denis 'GNUtoo' Carikli 425162db93
boot-libre: add --gen-blob-script to generate a deblob script
This should enable various distributions and build system to reuse
the generated script to deblob u-boot releases themselves.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:11:14 +01:00
Denis 'GNUtoo' Carikli ee2731af44
boot-libre: ship the blob list too
This should enable various distributions and build system to reuse
that blob to deblob u-boot releases themselves.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:11:12 +01:00
Denis 'GNUtoo' Carikli 414aa56287
u-boot-libre: Add help and support for multiple versions
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:10:30 +01:00
Denis 'GNUtoo' Carikli 1afdbaad1a
u-boot-libre: Add reproducible builds and tests
The tar options come from the tutorial to remove archives metadata at
reproducible-builds.org[1].

[1]https://reproducible-builds.org/docs/archives/

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:10:26 +01:00
Denis 'GNUtoo' Carikli 2bb805e2e0
download: Add --help in the individual download scripts
This doesn't change the existing usage of the scripts:
- For the Coreboot script, before this change, all arguments that were
  passed were considered as board to download the Coreboot source code
  for.

  Here we added the '--help' and '--list-boards' arguments, so it
  should not be an issue as it is extremely unlikely that a board
  would be called '--help' or '--list-boards'.

- All the other scripts don't use any arguments so passing --help
  should not conflict with the existing usage.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 18:00:31 +01:00
Denis 'GNUtoo' Carikli 4b2d426a20
scripts: download: u-boot: Add help and support for multiple revisions
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 18:00:30 +01:00
Denis 'GNUtoo' Carikli f955248044
u-boot-stable-src-release: rename to u-boot-libre
If the script is named u-boot-stable-src-release and that users see an
u-boot-libre tarball they will not make the link between both unless
we rename the script.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 17:58:53 +01:00
Denis 'GNUtoo' Carikli 354e9bd187
u-boot-stable-src-release: follow u-boot and linux-libre naming conventions
Many people using FSDG compliant distributions or wanting to use one
are already familiar with linux-libre. This change renames the
resulting tarball to u-boot-libre to make it easier for people to
understand the goal of this tarball.

In addition we also rename the version from v2021.07 (which is the git
tag corresponding to the release) to 2021.07 as u-boot upstream
tarballs use that.

The revision wasn't bumped as we didn't have any releases of
u-boot-libre yet.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 17:58:28 +01:00
Leah Rowe cceffff659 Merge branch 'master' of GNUtoo/lbmk into master 2022-02-10 13:28:45 +00:00
Denis 'GNUtoo' Carikli 7422411b24
Add support for releasing deblobbed u-boot 2020.07 source tarballs
Once the tarball are released, it will enable distributions to use
these tarballs to produce deblobbed u-boot packages.

Note that the produced tarball is not reproducible yet. Because of
that it has to be trusted.

During a release, it's a good idea to sign the uncompressed tarball as
the various compression formats and associated tools make different
tradeoffs.

For instance with xz, xz -9e tends to compress really well with the
the most used xz[1] implementation, and most GNU/Linux users probably
already have it installed, but and the drawbacks is that the format is
very fragile[2].

The lzip format is more suited for long term archiving but its most
packaged implementation[3] is less likely to be already installed by
users than more well known formats like xz, bzip2 or gzip.

Being able to add more compression formats after the release is also
useful, for instance to accommodate different build systems or use
cases (like being able to build u-boot with less dependencies in
distributions like Guix, or building u-boot directly on devices which
don't have enough RAM for xz for instance).

[1]https://tukaani.org/xz/
[2]https://www.nongnu.org/lzip/xz_inadequate.html
[3]https://www.nongnu.org/lzip/

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-10 10:55:03 +01:00
Denis 'GNUtoo' Carikli ae0be6f8b4
scripts: download: coreboot: Fix check for build error
build_error is supposed to be a file since it's created with touch.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-10 10:55:03 +01:00
Leah Rowe 37b4500513 memtest86+: fix build error (patch from Félicien Pillot) 2022-02-08 07:45:41 +00:00
Leah Rowe 937590d2b1 optimize grub modules: pre-load ones that will likely be used 2021-12-30 06:50:53 +00:00
Leah Rowe 2701555582 build/boot/roms: fix wrong variable name 2021-12-29 07:37:11 +00:00
Leah Rowe babce03fbd coreboot/*: set grub_scan_disk to ahci on most boards
on ga-g41m-es2l, set it to ata
2021-12-29 07:18:21 +00:00
Leah Rowe 5d65d6c3d3 apple/macbook21: set grub_scan_disk to ahci 2021-12-29 07:14:22 +00:00
Leah Rowe 6b4b49cf8f build/boot/roms: substitute grub_scan_disk according to board.cfg 2021-12-29 07:10:56 +00:00
Leah Rowe 835ff5ec83 grub.cfg: skip ata/ahci according to grub_scan_disk
logic for setting it in grub.cfg will be done in the next commit
2021-12-29 06:55:07 +00:00
Leah Rowe 9b1499fd1e grub.cfg: clean up messages, be less verbose 2021-12-29 06:26:48 +00:00
Leah Rowe 86d4ca9b50 grub.cfg: add isolinux menuentry for ata* (replace broken cd/dvd menuentry) 2021-12-29 06:10:45 +00:00
Leah Rowe 7cebee25ff grub.cfg: delete option to boot from CD/DVD
it's confusing, broken and most people nowadays don't use optical drives

it's not even possible in most setups anyway
2021-12-29 06:05:36 +00:00
Leah Rowe bbdb9512f3 grub.cfg: clean up comments 2021-12-29 06:04:42 +00:00
Leah Rowe c98308c499 grub.cfg: don't use */? wildcards. they slow down the boot
hardcode everything. in practise, the new logic will work just the same in
almost all cases, for most people, but it works around performance issues in
grub. cleanup of grub.cfg will be done in the next commit
2021-12-29 05:58:03 +00:00
Leah Rowe 0ea263129a grub.cfg: optimize search_isolinux
GRUB is slow at device enumeration. This patch works around it in the same way
as vitali64's recent patch.
2021-12-29 02:37:05 +00:00
Leah Rowe 56698000fa remove entry in .gitignore from the last commit 2021-12-29 01:04:18 +00:00
Vitali64 cff081c6db Fix grub's slow boot
On many boards, grub takes a very long time to
search for a grub.cfg file on the disk.
The problem is the search_grub function which
takes a long time to complete.
I (vitali64) studied the grub.cfg from 2016 and
the grub.cfg from 2021 and optimized the
grub.cfg. It should be faster now.
2021-12-29 01:03:18 +00:00
Leah Rowe 7221782940 lenovo/r400: disable death beeps 2021-12-20 02:46:25 +00:00
Leah Rowe c3a66c3275 fix usb keyboards in grub 2021-12-19 23:15:32 +00:00
Leah Rowe cae73ff493 Revert "grub.cfg: enable USB keyboards"
This reverts commit ed63e94914.
2021-12-12 02:24:50 +00:00