summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-10-20lbmk: use 2-level directory structure in script/Leah Rowe
as opposed to the current 3-level structure. recent build system simplifications have enabled this change, thus: ./build fw coreboot -> ./build roms ./build fw grub -> ./build grub ./build fw serprog -> ./build serprog ./update project release -> ./update release ./update project trees -> ./update trees ./update vendor download -> ./vendor download ./update vendor inject -> ./vendor inject alper criticised that the commands were too long, so i made them shorter! Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-19minor code cleanup in shell scriptsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-19Merge pull request 'Fix F38/Ubuntu 20.04 dependencies' (#137) from ↵Leah Rowe
andreamtp/lbmk:fix_distro_dependencies into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/137
2023-10-19Merge pull request 'Fix Void Dependencies for building Serprog' (#138) from ↵Leah Rowe
neutrocyte/lbmk:fix_void_dependencies into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/138
2023-10-19Fixed Void Dependencies for building Serprogneutrocyte
2023-10-19Fix F38/Ubuntu 20.04 dependenciesAndrea Perotti
Dependencies for Fedora 38 and Ubuntu 20.04 are now deduplicated and sorted. Missing packages added and packages names updated where needed.
2023-10-17util/spkmodem-recv: detailed copyright historyLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15update/release: fix missing variable definitionLeah Rowe
i forgot to include option.sh in this script, during previous re-factoring. the cbfstoos variable is now defined exclusively in option.sh, but other scripts can set it to something else. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15delete include/vendor.sh and merge elsewhereLeah Rowe
move it all to other files where items are used, and not used anywhere else. this reduces the size of vendor.sh. also remove a few redundant variables, or variables that are not meaningfully used. a few items have been moved to include/option.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15vendor.sh: move some functions to vendor/downloadLeah Rowe
they are the functions only used by the download script, so they don't belong in vendor.sh an include file should only contain variables and functions used by multiple main scripts Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15update .gitignore for the dell-flash-unlock binaryLeah Rowe
it wasn't updated, when e6400-flash-unlock renamed to dell-flash-unlock Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15coreboot/fam15h: remove redundant patchLeah Rowe
i previously added this just for kicks, but it's not actually needed; gnat isn't used on fam15h boards so lbmk doesn't even use it (it's disabled). in fact, i tested lbmk with crossgcc_ada handling taken out, but with said patch; i still got build errors with gnat anyway, on that old coreboot revision (but gnat isn't needed there anymore). Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-15Merge pull request 'util/e6400-flash-unlock: Rename to dell-flash-unlock' ↵Leah Rowe
(#135) from nic3-14159/lbmk:rename-e6400-flash-unlock into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/135
2023-10-14Merge pull request 'Update U-Boot to v2023.10 and use default coreboot tree ↵Leah Rowe
for gru chromebooks' (#136) from alpernebbi/lbmk:uboot-v2023.10 into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/136
2023-10-14coreboot: gru: Use default coreboot treeAlper Nebi Yasak
We don't really need a custom coreboot tree for Chromebooks. I had added one, because at a cursory glance to the available config/coreboot/board subdirectories I had the impression that I should. But upstreams have one tree for every board and I think we should move towards that too. Move the one important BL31 makefile patch into the default coreboot patches, update the gru boards' configs by running savedefconfig in the cros tree and then running olddefconfig in the default tree. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: gru: Do not persist EFI variablesAlper Nebi Yasak
By default U-Boot stores EFI variables in a ubootefi.var file in whatever EFI System Partition it finds, which would be a FAT filesystem. I'm occasionally finding out while testing that my ESPs somehow end up with a corrupted filesystem, and I'm suspecting it's this. For now, disable storing EFI environment variables on disk so that U-Boot doesn't try to manipulate the filesystem. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: gru: Enable more EFI commandsAlper Nebi Yasak
Enable U-Boot commands to manipulate EFI environment storage, to self-test EFI implementation, and to run a basic EFI test application. These are so that we can test and debug EFI functionality easier. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: gru: Enable more bootstd featuresAlper Nebi Yasak
U-Boot upstream is switching to a new code framework for discovering and booting OSes ("Standard Boot", or "bootstd"). Enable more features for it, including commands we can use for introspection and debugging. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: gru: Do not reset on panicAlper Nebi Yasak
Normally U-Boot immediately resets the board on a panic. I had run into "Synchronous Abort"s from shim and rEFInd, and having a traceback in those cases can be useful. Hang instead of resetting, so the panic reason stays on the screen. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: gru: Enable poweroff commandAlper Nebi Yasak
We should be able to power the board off from U-Boot command line. Enable the "poweroff" command for gru boards so we can. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: gru: Disable VIDEO_COPYAlper Nebi Yasak
U-Boot can keep a "copy" framebuffer to read from, for devices where reading from hardware framebuffer is expensive. This needs the video driver to support it. The Rockchip video driver doesn't need or support it, so this option does nothing on gru boards. Disable it. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: Set EFI variable buffer size to upstream valueAlper Nebi Yasak
U-Boot upstream used to have 16KB for EFI variables, and this was causing problems with shim. Commit f0236acbc663 ("u-boot: Increase EFI variable buffer size") fixed this by raising it to 32KB in our builds. It has now been raised to 64K upstream, so raise it here as well. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: Avoid building U-Boot-only binman imagesAlper Nebi Yasak
For Rockchip boards U-Boot tries to build SPI and MMC images that require an externally built BL31 file to be provided, and the build fails otherwise. This is not really as configurable as it should be. In Libreboot, we only care about the build outputs for U-Boot proper. There is a BL31 built during our coreboot builds, but using that in U-Boot builds is a chicken-and-egg problem. Building BL31 outside the coreboot build and passing it to both projects is possible, but needs work. For now, stop trying to build these U-Boot-only images as a workaround, by removing the binman image descriptions from the device-tree sources. Additionally, disable in our configs the BINMAN_FDT functionality that allows using these at runtime as it requires them to be present. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: Add patch to avoid regulator errorsAlper Nebi Yasak
U-Boot upstream has added a reference counting for regulator enable actions which somehow makes gru-kevin unbootable. Add a workaround that makes it work again. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: Update to v2023.10Alper Nebi Yasak
Set default U-Boot revision to v2023.01 and rebase patches on top of that. Another series about 16x32 fonts was merged upstream, so drop some now-unnecessary patches we had for that. For the video damage tracking series, switch to the version I'm trying to upstream. Upstream kconfig status is a bit unstable, so updating configs with `make oldconfig` would miss important upstream changes, since they rely on carrying defaults via upstream defconfigs. Update the configs as such: - Turn old configs into defconfigs (./update project trees -s u-boot) - Save the diff from old upstream defconfig (diffconfig $theirs $ours) - Update U-Boot revision, rebase patches, and clean old trees - Prepare new U-Boot tree (./update project trees -f u-boot) - Review the diffconfigs to see if any options were renamed upstream - Copy over the new upstream defconfigs and apply earlier diff - Turn new defconfigs into configs (./update project trees -l u-boot) Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14update/project/trees: Add flags for more kconfig actionsAlper Nebi Yasak
Add an "-s" flag for "make savedefconfig", "-l" for "make olddefconfig" and "-n" for "make nconfig" to the update script. The first two are mainly useful for U-Boot, to compare our configs to the upstream defconfigs and stay in sync with any upstream changes. The latter is because the ncurses one has a nice "Symbol Search" that can point out the menu entry for a config symbol we know. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14u-boot: qemu_arm64_12mb: Remove misleading rev fieldAlper Nebi Yasak
The U-Boot build for qemu_arm64_12mb board refers to a code revision whereas it uses the common "default" tree, remove the bad reference. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14build/fw/coreboot: Fix misuse of raw u-boot.bin as payloadAlper Nebi Yasak
The "u-boot.bin" file generated by U-Boot builds is a raw binary. When adding payloads to a CBFS, we need to use ELF files with add-payload or manually pass the entry point and load address of the payload binary with add-flat-binary. We primarily use the "u-boot.elf" which gets build with the REMAKE_ELF option, as it also has the necessary device-tree binary that U-Boot usually needs to work. When the option is not set (e.g. for QEMU), we need to use the "u-boot" file which is an ELF. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-10-14x/xx: slightly more verbose error messagesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14vendor/inject: only build nvmutil if requiredLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14vendor/inject: simplified file handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14update/release: remove unused variablesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14update/release: fix/simplify mtime handlingLeah Rowe
i wasn't getting the very first line of tar --version, so it wasn't doing the check properly. further sort the files by name within the tar archive. for reliability, don't bother using versiondate anymore: set a *fixed* date, and fixed timezone, to ensure that it works reliably for reproducible tarball creation. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14update/release: nuke roms using the inject scriptLeah Rowe
This way, the handling of configs is unified into one script, which reduces the possibility of bugs later, and it reduces the repetition of code. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14build/release: don't include tmp/ in src tarballLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14update/release: also set timestamp on srcdirLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14update/release: be more thorough updating timesLeah Rowe
use find and touch, to force all files, directories and links to the desired timestamp (versiondate file) Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-14update/release: use getops OPTARG correctlyLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-13update/release: delete multi-tree upstream reposLeah Rowe
e.g. src/coreboot/coreboot must not appear in a release, because we instead have directories like src/coreboot/default or src/coreboot/cros lbmk resets src/coreboot/coreboot to HEAD, but then resets revisions properly in copies of it therefore, for reproducibility, we must not include src/coreboot/coreboot, src/u-boot/u-boot or src/seabios/seabios into libreboot releases Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-13update/release: if *GNU* tar, use --mtimeLeah Rowe
with --mtime, files added to the archive can be set to a static date (in this case, the unix epoch) the one used here is derived from git commit dates, and it is static; if not being handled in lbmk.git, the versiondate file never changes this is the first patch in a series of patches designed to bring about reproducible builds in libreboot a solution will need to be found, for non-GNU tar implementations, because they did not have an equivalent option according to their manpages. for example, BSD tar implementations. perhaps i could systematically go around changing file dates, on each file, as a fallback behaviour? Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-13build/release: support skipping rom buildsLeah Rowe
pass this argument: -m src by doing this, only the src tarball will be made Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-13update/release: make src tarball first, then romsLeah Rowe
this way, the src tarball is guaranteed to be clean. the downside is that lbmk itself does not currently handle crossgcc downloads, and there may be some stragglers such as third party modules automatically downloaded by certain codebases that libreboot uses. this will have to be audited later (and it will be). Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-13put space in the warning message about elf/Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-13only build cbutils if requiredLeah Rowe
it's sometimes done unconditionally. this change ensures that it is not repeated needlessly. i observed otherwise that cbfstool would be re-built from time to time, even if it was built. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-12util/e6400-flash-unlock: Rename to dell-flash-unlockNicholas Chin
This more accurately describes the scope of the utility. Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
2023-10-12coreboot/default bump: rev d862695f5f, 12 Oct 2023Leah Rowe
Riku's mSATA patch for HP8300USDT was merged upstream, so the patch has been dropped from lbmk because it is contained within this new coreboot revision. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-12use me_cleaner from coreboot instead of upstreamLeah Rowe
coreboot closely matches upstream, whose current release is version 1.2 from 2018, and coreboot has not changed it in any meaningful way. the upstream did add patches since, but they are documentation patches only. this means: we do not need to use the upstream version Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-12nvmutil: simplify endianness handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-12nvmutil: don't reset errno before writeLeah Rowe
under the current logic, errno would be ECANCELED if neither checksum is valid, or I/O related if pwrite fails; alternatively, the for loop exits and the file has been written, where it is quite correctly reset already. ergo, the errno reset at the start of writeGbeFile is superfluous. remove this bloat. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-10-12nvmutil: reset errno on successful writeLeah Rowe
previously, a bad checksum would have caused a non-zero exit, even if the other checksum was correct (observed when using the swap command) Signed-off-by: Leah Rowe <leah@libreboot.org>