summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-09set grub.cfg timeout to 5s (10 on some boards)Leah Rowe
target.cfg can now specify e.g. grub_timeout=20 this would then be inserted as timeout.cfg in cbfs, containing the instruction: set timeout=20 HP laptops need a bit of extra time, due to the delay caused by the EC bug workaround deployed in GRUB desktops in general need extra time. this too is set to 10s, like the HP laptops. only insert timeout.cfg if actually needed (declared in target.cfg), otherwise grub.cfg will default to 5s Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-08Merge pull request 'pico-serprog improvements' (#128) from ↵Leah Rowe
Riku_V/lbmk:master into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/128
2023-09-08Build pico-serprog binary release archiveRiku Viitanen
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
2023-09-08Build for all pico board, not just the "original"Riku Viitanen
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
2023-09-08Support multiple dependencies per projectRiku Viitanen
Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
2023-09-08Cleaner parent directory creationRiku Viitanen
My previous patch b0rked memtest and others because when making sure their parent directory (the project root) exists, it would instead create the project directory (memtest86lus). The later move would then put the git repo inside that (memtest86plus/memtest86plus_123456). We just need to make sure we don't create the target directory itself. This way, there's no need to hardcode any project names. Tested by ./updating rpi-pico-serprog, memtest86plus, grub and seabios. Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
2023-09-06grub: re-add module: playLeah Rowe
for example, the beep sound in debian's installer needs this module. the cute ding in the arch/artix menu also needs it Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-05util/nvmutil: put code all in nvmutil.cLeah Rowe
it doesn't really make sense to have nvmutil.h since this is only a very small program and not intended for use as a library Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-05update/blobs/inject: use tmp/romdir, not TMPDIRLeah Rowe
we are copying large numbers of ROM images, and the host system may have /tmp under a tmpfs; that same host system may or may not have a lot of memory. respect the user's machine. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-05build/release/roms: use tmp/romdir, not TMPDIRLeah Rowe
we must conserve memory usage, in the event that the user's /tmp is a tmpfs. copying of ROM images into tmpfs is ill advised; we must copy them, due to how the release process works (e.g. stripping of blobs, but this must be done in a way so as to not interfere with regular builds, thus they are copied instead) Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-05grub: make backgrounds configurable in target.cfgLeah Rowe
now under coreboot mainboards, target.cfg can specify a background. if not specified, the 1280x800 one is assumed, and used by default. it can be overridden. the path should be relative to: config/grub/background/ Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04curl/wget downloads: set re-try count to 3Leah Rowe
explicitly set the count to 3, so that a maximum of 3 attemps are made per download, barring fatal errors such as http 404. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04don't use /tmp/ for git clones. use tmp/ instead.Leah Rowe
the /tmp/ file system may be a tmpfs, with conservative memory limits, depending on host system. it's more likely that the user will have enough disk space under tmp/ within lbmk (if they don't, they can't use lbmk anyway). that is to say: more likely that they would have the disk space, but not the memory. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04build/release/roms: fix ucode handlingLeah Rowe
microcode_required wasn't being reset per target, leading to unreliable results. this fixes that. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04build/release/roms: simplify defcongic handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04update/blobs: unify global variablesLeah Rowe
they all more or less use the same variables, so put them all under include/blobutil.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04update/blobs/*: unify checking of defconfig filesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04update/blobs/extract: replace errant target codeLeah Rowe
check based on whether defconfigs are available, which are used extensively, rather than checking based on whether target.cfg is available, which is not used Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04build/boot/roms: don't create empty bin/ directoryLeah Rowe
also: only return zero status if rom images were succesfully built, and print a list of each rom image directory based on what was actually compiled, rather than just saying that the rom images are stored under bin/ Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04update/blobs/inject: remove errant target handlingLeah Rowe
just like the last patch, target.cfg handling is not required in this script either. remove it. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04update/blobs/download: remove errant codeLeah Rowe
the handling of target.cfg is *not* required, in this script. other mechanisms are also used for error checking. this script only uses defconfigs. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04add checkversion to build/release/srcLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04grub: remove xnu moduleLeah Rowe
this causes a saving of about 131KB uncompressed, when i tested. we don't need mach kernel support. nobody will ever use it. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04grub: remove legacy file system modulesLeah Rowe
this causes a 6.7% decrease in the payload size these file systems are microsoft(fat, ntfs) or mostly oldschool amiga and beos file systems also remove minix modules, and some old linux file systems that nobody will use in 2023 Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04re-add grub modules cat, eval and pbkdf2Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04move script/misc/versioncheck to main directoryLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04move me7_update_parser.py to util/Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04merge config/ and resources/Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04blobs/download: don't handle ifd/gbe filesLeah Rowe
they weren't even handled at all, but they were referenced under coreboot configuration they don't need to be handled. lbmk simply includes these files. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-04move ifd/gbe configs into config/ifd/Leah Rowe
it doesn't really make sense for them to be under blobs/ - nominally, they are blobs, but they are well-understood data files containing config data, that is easily parsed by tools like ich9show or ifdtool (and tools like bincfg or nvmutil) blobs/ has been re-purposed: this directory no longer exists in lbmk, but it is created (and on .gitignore) when needed, by blobutil thus, the blobs/ directory shall only contain vendor files, and only those files that libreboot scrubs from releases. therefore, build/release/src can (and has been) simplified; it currently copies just the ifd and gbe files from blobs/, selectively, and this logic is quite error prone, requiring maintenance. now, the build/release/src script simply copies config/ (which only ever contains distributable files) and entirely ignores the blobs/ directory the blob download script already creates the required directory, except for the sch5545 download; this is now fixed lbmk code size is slightly smaller, due to this patch Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03run make oldconfig on coreboot/default mainboardsLeah Rowe
the resulting changes are what i will push. this prevents the coreboot build system from asking for user input. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03ich9m mainboards: use pre-assembled ifd/gbe filesLeah Rowe
This cuts down on build time, and it will allow libreboot to remove large chunks of code. these ifd/gbe configs are just binary-encoded config files, in a format well-understood. they can easily be opened up and displayed, using ich9show or ifdtool, and manipulated by these tools; bincfg can generate them from scratch, and nvmutil can change mac addresses, for example. so, do this and remove from lbmk the following: * ich9utils (which contains ich9gen) - not needed anymore * code in lbmk for handling ich9gen and insertions; the coreboot build system is now used, for this same purpose, so remove such code from lbmk this results in a massive code size reduction (thousands of lines) in lbmk; smaller when only looking at the build system, but much larger when you consider that ich9utils is also removed (about 3k sloc) Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03add ich9m ifd/gbe filesLeah Rowe
a follow-up patch will make use of these, rather than ich9gen, and ich9gen will be deleted. these files were in fact generated *by* ich9gen. coreboot has ifdtool and bincfg, the latter of which can generate both ifd and gbe files for ich9m. that, and nvmutil which is part of libreboot, can change gbe mac addresses. i was going to replace ich9gen with a script that would run bincfg, ifdtool and nvmutil, to greatly reduce code size, because ich9gen is about 3k sloc. however, in practise we would always generate the same ifd config, and basically only change the mac address if that's what the user wants; nvmutil can already do that just fine. so, just include the binaries directly. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03build/release/src: copy e6430 ifd/gbeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03build/rpi-pico-serprog: better error handlingLeah Rowe
use a subshell for changing directory, and use more verbose error messages under fault conditions Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03fix rpi-pico builds when running it twiceLeah Rowe
it needed to be make-cleaned Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03fix memtest86plus download/buildLeah Rowe
the mkdir command in update/project/repo, added for pico-pi integration, broke a bunch of other downloads. the fix is a bit of a hack but it should hold for now. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03Merge pull request 'Add Dell Latitude E6430' (#124) from ↵Leah Rowe
nic3-14159/lbmk:e6430 into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/124
2023-09-03Add Dell Latitude E6430Nicholas Chin
This was only tested on the iGPU model, though a dGPU model does exist. The vendor firmware used a 16KiB gbe.bin, which was modified with a random MAC address as well as shrinking it to 8KiB. As with the E6400, GRUB doesn't like the way the EC implements the keyboard controller and thus GRUB payloads are disabled at this time. Suspend does not currently work, and this is believed to be due to the EC controlling the DRAM reset gate which is required to prevent DRAM from being reset on resume. With some tweaks, the e6400-flash-unlock utility also works on this system, though both flash chips can be accessed through removal of only the keyboard. Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
2023-09-03Merge pull request 'Less cat abuse' (#123) from Riku_V/lbmk:cat into masterLeah Rowe
Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/123
2023-09-03Less cat abuseRiku Viitanen
More than 90% of cats were thus terminated. read (shell built-in) is better at reading, and dogs are better pets. Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
2023-09-03switch repo links for pico-serprogLeah Rowe
use official libreboot repos the codeberg repo makes reference to riku's repo Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03Merge pull request 'Automate pico-serprog builds' (#122) from ↵Leah Rowe
Riku_V/lbmk:mkserprog into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/122
2023-09-03automate rpi-pico serprog buildsRiku Viitanen
./build rpi-pico serprog build bin/serprog/rpi-pico-serprog.uf2 Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
2023-09-03build/release/src: only clean kbc1126 if it existsLeah Rowe
the way this script works, it only copies what was built, but it currently operatios as though coreboot/default always exists, and then cleans the kbc1126 util this patch fixes such buggy behaviour Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03unify build/clean scripts: use handle/make insteadLeah Rowe
The -c option is added for distclean, and -x for crossgcc-clean, in handle/make/config about 100 sloc removed from lbmk Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03build/release/*: use -T0 in xz, for multithreadingLeah Rowe
The -T option specifies how many threads xz shall use. The -T value of zero shall dictate that xz use so many threads as there are CPUs, on the host system. This will probably speed up the release process a bit. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-03don't support ucode removal on untested targetsLeah Rowe
i have in fact tested whether many of these targets (ivy, sandy and haswell on intel) boot without microcode, and many do, but it's not as well tested the older targets like i945, x4x, pineview and gm45 are well-tested without microcode; ditto fam10/15h amd. lbmk supports providing roms with and/or without microcode. for the targets touched in this commit, lbmk now only provides images with microcode included by default. manual removal (with cbfstool) is still possible, if you want to do that. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-02coreboot/e6400: support nvidia modelsLeah Rowe
The same ROM images that you flash on Intel GPU variants, are now flashed on Nvidia models. The same ROM will work on both. If an Intel GPU variant is present, libgfxinit is used, and the VGA ROM is used if an Nvidia GPU variant; however, release ROMs will scrub the nvidia option ROM, so release ROMs will only work on Intel GPUs unless you run the blobutil inject command. I decided to no longer have this under WIP, but to put it in master. The issue with it pertains to video drivers, which is not Libreboot's problem. Nouveau crashes under Linux, so use "nomodeset" if it does. The "nv" drivers in BSD systems work very well. The nvidia model of E6400 isn't recommended for other reasons, namely: poor thermal cooling (thermal pad on the GPU) and that Nvidia GPU doesn't get very good performance on any libre drivers anyway. The Intel GPU variant is better, in terms of power efficiency and software support; the intel variant also works with native graphics initialisation in coreboot. This board port already only enables SeaBIOS, which will simply execute the VGA ROM. Blobutil already supports reading the config, detecting that a VGA ROM is needed, because that part of the WIP E6400 branch was already merged in lbmk master. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-02handle/make/config -m/-u: actually copy configsLeah Rowe
they weren't being copied back, after running the make command. i overlooked this when testing in the previous optimisations, because i only tested building, not modification or updating of configs Signed-off-by: Leah Rowe <leah@libreboot.org>