summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
9 daysSeaBIOS/default: Bump to rev b686f460, 28 Jun 2025Leah Rowe
This brings in the following changes: * b686f460 sercon: Fix keycodes for F11 and F12 * b52ca86e docs: Note v1.17.0 release * a6c8e8bb ahci: Fix hangs due to controller reset The serial console fix is useful to us, as is the AHCI fix; the latter was previously mitigated by removing SeaBIOS's AHCI reset patch. Upstream realised that the AHCI controllers need to have a timeout on them when resetting them, because they don't always react immediately to commands. This makes the AHCI behaviour more correct, in SeaBIOS. Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysifd/hppro3500: use truncated ME, enlarge BIOS sizeLeah Rowe
i did: ifdtool -f layout.txt ifd.bin changed layout.txt to say this: 00000000:00000fff fd 00019000:007fffff bios 00001000:00018fff me 00fff000:00000fff gbe 00fff000:00000fff pd then i did: ifdtool -n layout.txt ifd.bin -O ifd.bin this was done to the ifd for hp 3500 pro, based on the 96KB size of the truncated me.bin via me_cleaner, when downloading vendor files in lbmk. it's the policy of libreboot that me.bin should always be shrunk, and the BIOS region enlarged. in the original HP 3500 PRO patch submitted, the ME region was larger, with region boundaries like this: 00000000:00000fff fd 00400000:007fffff bios 00001000:003fffff me 00fff000:00000fff gbe 00fff000:00000fff pd In the above example, you see that the BIOS region is 4MB. In the new setup, BIOS is about 7.9MB. Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysifd/hppro3500: unlock regions by defaultLeah Rowe
coreboot already unlocks the regions during build, by default, anyway, and this was present in the submitter's patch. however, it's also good to unlock the IFD regions. like so: ifdtool --unlock ifd.bin -O ifd.bin this has been done, on the ifd for hp pro 3500 Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysifd/hppro3500: set HAP bit by defaultLeah Rowe
ifdtool --altmedisable 1 ifd.bin -O ifd.bin always remember to do this, when adding a new ifd to lbmk. i merged the 3500 port anyway, since the submitted already used me_cleaner anyway, but setting the HAP bit is also useful. for example, if someone was to only flash the BIOS region, which is possible in this case since the submitter also didn't truncate the ME region or enlarge the BIOS region. in that case, flashing IFD and BIOS is another valid way to do it, where IFD's HAP bit is set Signed-off-by: Leah Rowe <leah@libreboot.org>
9 dayscb/hppro3500: use seagrub, not grubseaLeah Rowe
We want graphics cards to work out of the box. This is why SeaGRUB is default, on desktops; SeaBIOS also has better code quality and is less likely to break, so it provides a nice fallback in case the GRUB payload is ever buggy during development (this decision was made ever since the botched May 2024 release) Signed-off-by: Leah Rowe <leah@libreboot.org>
9 daysMerge pull request 'Add HP Pro 3500 Series' (#350) from ↵Leah Rowe
JoelLinn/lbmk:feature-port-hppro3500 into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/350
10 dayslib.sh: remove erroneous break from fx_Leah Rowe
it means nothing here. in context, if a non-zero return is observed, we should not do anything here, which is already the behaviour anyway, except that "break" means nothing since we're not in a loop here. where an error exit should be observed, x_ is used inside the command given for fx_ Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-30Libreboot 25.06 release25.06Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-15Add HP Pro 3500 SeriesJoel Linn
Everything should work except cpu fan control because ME cleaning breaks PECI.
2025-06-05tree.sh: add sha512 error for check_project_hashesLeah Rowe
handle errors on sha512sum - also handle awk errors inside the mini subshell, and provide overall error handling. we know that the project.hash file should always exist, and always be read no matter what; technically, the find command that proceeds it might not yield any results, but an empty file would then be produced. the edge case of an empty file would have lead to an error beforehand, when configuring the project in function, configure_project(), so we've already got that covered. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-05tree.sh: add error check in check_project_hashes()Leah Rowe
when reading old_pjhash, we need to error out where a read error occurs. such an error is unlikely, but could occur under certain edge cases. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-05tree.sh: more reliable clean in run_make_commandLeah Rowe
Don't do no-op if it fails; fall back to "clean" instead, and fail if that fails. The no-op was there was not all projects have distclean, but we do intend for them all to be cleaned. We mitigate further error by only running make-clean if a makefile exists. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-06-05inject.sh: add missing semicolonsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-27vendor.sh: fix bad cbfstool pathLeah Rowe
i overlooked this one in the previous commit there is always one. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-27put coreboot utils in elf/coreboot/TREELeah Rowe
not elf/UTIL/TREE This way, they are automatically deleted when a tree has to be re-built. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26release.sh: use printf to create version filesLeah Rowe
Don't copy the files directly, because we might be doing this from a work directory that has no files; in this case, generic "unknown" variables are used, without generating any files, so the current logic would produce an error. However, we do need to create those dot files, because we then rely on them for building release binaries. The new logic maintains current behaviour, while fixing this technical edge-case scenario via mitigation. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26lib.sh: simplify setvars()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26lib.sh: simplify chkvars()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26mk: simplify main()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26get.sh: simplify fetch_project()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26get.sh: simplify try_copy()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26get.sh: tidy up bad_checksum()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26get.sh: simplify fetch_targets()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26general cleanup in get.sh and vendor.shLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26xbmk: rename xbmklocal/xbmktmp variablesLeah Rowe
shorten them Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26get.sh: consolidate printf statementsLeah Rowe
stick it in git_prep, which both single- and multi-tree projects will use, when downloading git repositories. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26get.sh: remove redundant printf in fetch_projectLeah Rowe
The following execution will result in another printf that says exactly what is being downloaded. There is no need to inform the user twice about what is being downloaded. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26get.sh: remove superfluous command in try_git()Leah Rowe
A git-pull is performed immediately after git-fetch. Git-pull already performs git-fetch as a prerequisite. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-26vendor.sh: simplify fetch()Leah Rowe
the checks at the end of the function are mostly superfluous, because bad_checksum() is immediately called just beforehand, and performs the same checks. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25init.sh: error out if .git/ is a symlinkLeah Rowe
the current behaviour is a relic from the older lbmk design, before recent auditing. the current logic would cause xbmk to continue execution, going into a child process with .git/ being a symlink. The .git/ directory should never be a symlink, because it is extremely error-prone. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25get.sh: Properly error out if tmpclone failsLeah Rowe
We rely on a non-zero exit on other try_ commands, which works fine there because we then check the file afterward and error out accordingly. For git repositories, we assume that both mirrors are identical and therefore once we get to the first clone attempt, we assume that it must succeed. Therefore, if it does not succeed, we must fail. This fixes a regression I found in testing, where sometimes a failed patching attempt would not result in an error exit, and would therefore result in broken sources being present. In practise, I always very closely watch the terminal when testing xbmk, especially when updating project patches, so we probably didn't introduce any broken sources in practice. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25tree.sh: Don't auto-run make-oldconfigLeah Rowe
This code was introduced to provide fault tolerance, so that if I forgot to manually update the configs myself, builds would still succeed, e.g. coreboot builds. However, there have been cases in the past where this introduces settings we don't want, and in general we do want to know when there is an error in the configs. The policy should always be: fail early, fail hard. This also mitigates bugs in U-Boot's build system; for example, when I last attempted to update the U-Boot tree for x86, make-oldconfig introduced a lot of junk settings unrelated, which then introduced code that would brick the board if you tried it on one, e.g. it broke booting most Linux kernels via bootflow. With this change, U-Boot will be easier to handle, which normally requires manual configuration; the automated make-oldconfig reconfiguration feature breaks U-Boot. This will no longer occur, since we no longer run it manually. On the other hand, this feature has also prevented other disastrous bugs in the past, such as when I forgot to properly set the SPD size on T480; it was set to 256 bytes, not 512 as is correct. Therefore, this new design change means I must also be more vigilant about config changes in project trees. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25rom.sh: simplify mkcoreboottar()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25rom.sh: rename mkvendorfilesLeah Rowe
it mainly does general tasks, like handling utils and enabling ccache. the vfiles are a small part. rename the function accordingly. it is called by premake, so let's call it corebootpremake. this change will also make sense when cherry-picked into cbmk, which does not handle vfiles at all. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25rom.sh: simplify ccache handling for corebootLeah Rowe
we simply do not need to run the make-oldconfig command at all, and after removing it, the "cook" function seemed quite redundant so i merged it with mkvendorfiles() Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-25rom.sh: simplify u-boot payload handlingLeah Rowe
define it with a single variable, rather than several. this allows several checks to be greatly simplified. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-23ifd/hp8300usdt: set the HAP bit by defaultLeah Rowe
In practise, coreboot can set this bit at build time. We also use ME Soft Temporary Disable by default, on this platform. We also use me_cleaner by default, so the me.bin file added to flash only contains the code that would run with HAP set anyway. Therefore, this change is of little practical consequence, but as a friend put it to me, this change is most technically correct. And I'm all about technical correctness. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22coreboot: Remove unused vboot testsLeah Rowe
Futility tests enlarge the src tarballs, without much utility. Uttterly futile. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22coreboot/default: Remove unneeded FSP modulesLeah Rowe
We only need the Kabylake version. We can safely remove the other ones, thereby significantly reducing the size of the lbmk release archive. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22get.sh: Always update git remotesLeah Rowe
Right now, if cache/clone/PROJECT/ already exists, the logic for pulling new changes doesn't execute, and neither does the logic for updating remotes. This is bad when updating revisions, because then manual updating is required, defeating the purpose of xbmk's own automation in this regard. Fix it by only checking the cached download on files, not Git repositories; the try_git function itself will already perform this check, before updating remotes and pulling in new commits from upstream. The updating only happens when a given target directory doesn't exist, e.g. src/flashprog/ or src/grub/default/, so this won't slow down release builds for example. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22get.sh: re-generate remotes every timeLeah Rowe
that way, when a remote changes in config/, it will be updated automatically, without user intervention. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22release.sh: copy version files to rsrcLeah Rowe
Otherwise, an "unknown" version number is created. This regression was caused by the recent optimisation that reduces the amount of extra work done by init.sh on child instances of xbmk. As a result of those changes, now release.sh has to do some minor initialisation of its own, such as this. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22xbmk: add fake config makefile args to flashprogLeah Rowe
also pcsx-redux this way, commands like "./mk -u" without argument will not fail. these fake makefile commands do nothing. otherwise, an error errors because their makefiles do not define these options. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22vendor.sh: add colon at the end of a for loopLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22rom.sh: skip copyps1bios on dry buildsLeah Rowe
otherwise, ./mk -d (without arguments) will fail. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-22tree.sh: Don't run make-clean on dry runsLeah Rowe
Otherwise, ./mk -d (without arguments) fails for GRUB, which first requires running autoconf to get a Makefile. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-21GRUB: Update to revision 73d1c959e (14 March 2025)Leah Rowe
This brings in several changes from upstream: * 73d1c959e cryptocheck: Add --quiet option * dbc0eb5bd disk/cryptodisk: Wipe the passphrase from memory * 301b4ef25 disk/cryptodisk: Add the "erase secrets" function * 23ec4535f docs: Document available crypto disks checks * 10d778c4b commands/search: Add the diskfilter support * 7a584fbde disk/diskfilter: Introduce the "cryptocheck" command * ed691c0e0 commands/search: Introduce the --cryptodisk-only argument * c448f511e kern/rescue_reader: Block the rescue mode until the CLI authentication * 4abac0ad5 fs/xfs: Fix large extent counters incompat feature support This commit is of particular interest: * dbc0eb5bd disk/cryptodisk: Wipe the passphrase from memory Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-20Revert "vendor.sh: optimise find_me()"Leah Rowe
This reverts commit fb7aaa78bb080a473bdf0edf449bf08045e8366c. it caused a few issues. will re-do later the old code isn't really broken, just inefficient, because several files are scanned twice, but in practise the overhead isn't that great The error occurs sometimes, when bruteforcing me.bin: ERROR ./mk: Unhandled error for: mv /home/user/lbmk/tmp/me.bin /home/user/lbmk/cache/tmpdl/check This revert should fix the issue, for now.
2025-05-20vendor.sh: optimise find_me()Leah Rowe
i'm adding characters to 7ztest, which isn't being passed on through because everything runs in subshells; the next pass would default back to the original string, so a given file may be checked multiple times. fix this by mitigation; use the random string from mktemp as a suffix instead. in practice, this has not affected performance much, but it will nevertheless avoid unnecessary work by xbmk. Signed-off-by: Leah Rowe <leah@libreboot.org>
2025-05-19get.sh: add missing check in fetch_project()Leah Rowe
we check the main url, but not backup urls. this patch fixes that oversight. Signed-off-by: Leah Rowe <leah@libreboot.org>