summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-06-19build/boot/roms: Support removing microcodeLeah Rowe
From now on, the following rules are available for all mainboards, in resources/coreboot/boardname/board.cfg: * blobs_required="n" or "y" * microcode_required="n" or "y" The blobs setting, if set to "n", simply renames filename.rom to filename_noblobs.rom. The microcode setting, if set to "n", copies the ROM (with or without _noblobs) to filename_nomicrocode.rom (if blobs="n", it would be filename_noblobs_nomicrocode.rom). Where "nomicrocode" is set, ROMs with microcode will still be provided by lbmk and in relesase, but ROMs will also be provided alongside it that lacks any microcode updates. If the *original* ROM already lacks microcode updates, then the original ROM will be *renamed* to include "nomicrocode" in the name. This is done on images for ARM platforms, for instance, where microcode is never used whatsoever. Example filenames now generated: seabios_e6400_4mb_libgfxinit_corebootfb_noblobs_nomicrocode.rom seabios_e6400_4mb_libgfxinit_corebootfb_noblobs.rom seabios_withgrub_hp8300usdt_16mb_libgfxinit_corebootfb_colemak_nomicrocode.rom seabios_withgrub_hp8300usdt_16mb_libgfxinit_corebootfb_colemak.rom uboot_payload_gru_kevin_libgfxinit_corebootfb_noblobs_nomicrocode.rom A vocal minority of people were not happy with some of the changes made in Libreboot last year, including on existing supported hardware from before those changes were made. I did this before the last release, out of respect: https://libreboot.org/news/gm45microcode.html (re-add mitigations for no-microcode setup on GM45) This new change is done as an further, extended courtesy. Tested and works fine. (testing using cbfstool-print) Actual Libreboot policy about binary blobs is nuanced. See: https://libreboot.org/news/policy.html (reduction policy) and: https://libreboot.org/freedom-status.html (implementation) Well, the status page talks about descriptor vs non-descriptor on Intel platforms, and where me_cleaner is used (on platforms that need Intel ME firmware), it regards the descriptored setups to be blob-free if coreboot does not require binary blobs. In this paradigm, microcode updates are not considered to be binary blobs, because they aren't technically software, they're more like config files that just turn certain features on or off within the CPU. However, for lbmk purposes, "noblobs" means that, after the ROM is fully ready to flash on the chip, there will be no blobs in it (except microcode). So for example, an X200 that does not require ME firmware is considered blob-free under this paradigm, even though Libreboot policy regards X230 as equally libre when me_cleaner is used; in this setup, ROMs will not contain "blobfree" in the filename, for X230 (as one example). Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-17Cache downloads based on checksumRiku Viitanen
Since many boards use the same ME firmware, we could save everyone's bandwidth and time by caching the update files. Signed-off-by: Riku Viitanen <riku.viitanen@protonmail.com>
2023-06-17Merge pull request 'Add HP 8300 USDT' (#80) from Riku_V/lbmk:hp8300usdt into ↵Leah Rowe
master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/80
2023-06-17Add HP 8300 USDTRiku Viitanen
Still on Gerrit. ME downloader failed with HP update file, so let's just use Lenovo's instead. Both contain identical ME8_5M_Production.bin files. Tested and working: * Native raminit with both DIMMs * Libgfxinit textmode and framebuffer on both DisplayPorts and VGA * External USB2 and USB3 ports: they all work * USB 3.0 SuperSpeed (rear, 4 ports) * Ethernet * Mini-PCIe WLAN * SATA: 2.5" SSD and optical drive bay * SeaBIOS and GRUB (boot to linux) * PS/2 keyboard and mouse * S3 suspend and resume, wake using USB keyboard * Headphone output, line out, internal speaker * Wake on LAN * Rebooting * CMOS options & nvramcui Untested: * Line in, mic input * MXM graphics card * EHCI debug Not working: * Mini-PCIe USB: I couldn't get it working on vendor BIOS either, so maybe it just isn't present * PS/2 keyboard wake from S3 * mSATA (I have no mSATA drives)
2023-06-16Merge pull request 'Add HP Elitebook 2570p' (#79) from Riku_V/lbmk:hp2570p ↵Leah Rowe
into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/79
2023-06-16Add HP Elitebook 2570pRiku Viitanen
Tested with Johan Ehnberg (johan@molnix.com) The following is tested and confirmed working: - backlight control - touchpad - USB (external, smart card, fingerprint, bluetooth, webcam, WWAN) - touchpad - Wi-Fi - 2,5" SATA - USB 3.0 - SD card - Memory: 2+2 (matched or unmatched), 8+2, 8+8 - internal flashing from libreboot - SeaBIOS and GRUB payloads - Boots Devuan and Ubuntu Untested: - ExpressCard - DVD - dock - external displays - eSATA - trackpoint (not present on this aftermarket keyboard)
2023-06-14util/nvmutil: reduced indentation inside loopLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-14util/spkmodem-recv: rename function for clarityLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-13util/spkmodem-recv: remove unnecessary error checkLeah Rowe
the loop in main() already checks EOF, and errno is properly handled at the end of main() we only need to call ferror(), to check error state this fixes a bogus error message when pressing ctrl+D to terminate the program, *which is the intended way to terminate this program* (that, or EOF is reached in any other another way) do not treat intended behaviour as an error condition! Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-13util/spkmodem-recv: say cc, not gcc, in commentLeah Rowe
i've build-tested this code with clang and that also works. in practise, a user is going to have clang or gcc Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-13util/spkmodem-recv: fix bad commentLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-13util/spkmodem-recv: remove unnecessary assignmentLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-13util/spkmodem-recv: simplify getopt handlingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-13util/spkmodem-recv: cleaner ring buffer handlingLeah Rowe
make it more obvious that this *is* a ring buffer being handled, and make it more obvious when checking a pulse in the next frame Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-13remove errant fileLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-13Revert "Remove most of Ferass's lbmk contributions"Leah Rowe
This reverts commit a4ea2867319471d9fe7d4ee540881e0286b4d3cf. The licensing audit has been abandoned. I will not be re-licensing in bulk to MIT. I can still use MIT license on new works, e.g. utilities, but there's really no pressing need to re-license lbmk. It's just shell scripts, and most of what it interacts with (coreboot, grub, seabios) is GPL anyway. So who cares? Ferass's patch was removed due to refusal to re-license, but the decision to re-license has been canceled. I'm now aiming for a quick stable release.
2023-06-13Merge pull request 'resources/coreboot/default/patches: Add patch for E6400 ↵Leah Rowe
SD card' (#78) from nic3-14159/lbmk:e6400-sd-card-patch into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/78
2023-06-12resources/coreboot/default/patches: Add patch for E6400 SD cardNicholas Chin
This fixes the PCI interrupt routing tables for the E6400 so that the SD card works. It is already merged in upstream but libreboot has not yet updated coreboot.
2023-06-12Merge pull request 'lbmk: Fix regressions' (#77) from ↵Leah Rowe
nic3-14159/lbmk:fix-lbmk into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/77
2023-06-12lbmk: Fix regressionsNicholas Chin
- A spurious semicolon caused the arguments to printf in die() to be executed instead of printed - ${@} in die() needs to be in quotes or else printf prints each word on a separate line - The number of arguments to main() does not include main itself so it should be comparing against 1 instead of 2 to determine if enough arguments were supplied.
2023-06-12util/spkmodem-recv: re-add full license headerLeah Rowe
i forked spkmodem-recv from coreboot, who forked it from gnu grub. gnu grub's version has the full header, with copyright declared as belonging to the fsf coreboot made changes after forking it, and later replaced the license declaration with an equivalent SPDX header, but they also removed the FSF's copyright declaration, which by itself does not void the declaration anyway, i just feel better re-adding the full declaration. make it so! Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-12util/ich9gen: change default mac addressLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-10Merge pull request 'Add 4MB version of HP 8200 SFF' (#72) from ↵Leah Rowe
Riku_V/lbmk:hp8200sff_4mb into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/72
2023-06-10Merge pull request 'Update Git revision for bios_extract' (#74) from ↵Leah Rowe
nic3-14159/lbmk:update_bios_extract into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/74
2023-06-09Update Git revision for bios_extractNicholas Chin
My patches are now merged in upstream so just use that and drop the patch files.
2023-06-08util/spkmodem-recv: fix regressionLeah Rowe
The last bit wasn't being handled, *and* ascii_bit wasn't being reduced at all. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: make ringpos a global variableLeah Rowe
there's no point passing it as argument to a function. it's used across more than one function, so make it global Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: simplify sample_cnt/char resetLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: print stats in other functionLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: only print unhandled err on -dLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: make debug a runtime optionLeah Rowe
it's currently a build-time option make it a runtime option instead, so that every user can optionally make use of it, on all builds Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: always disable line bufferingLeah Rowe
thus, there's no need to handle flushing of stdout whatsoever, and the code can be greatly simplified ascii bits are still reset, when no input on stdin is given Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: simplify stdout flush logicLeah Rowe
when spkmodem-recv doesn't receive anything (via stdout) after a few frames, it's assumed that the console is dead and the buffered output is flushed this logic is assumed superfluous when -u is set Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: rename variables for clarityLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: split print_char() upLeah Rowe
the logic for *setting* a character, and the logic for outputting it, ought to be separate. do that. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: reduce indent in print_char()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: squash a few code linesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: bsd-style indentLeah Rowe
my style was: 2 tabs. bsd-style, for extending a line, is 4 spaces. this style has grown on me, so let's do it here Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: order prototypes per functionLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: warn on unhandled exit errorLeah Rowe
my style of C programming is this: always return errno upon exit from the program, or from a thread. handle errno in the calling/forking function. returning errno at the end of main has this intention: if an unhandled error occured, the program exits with non-zero status. a correctly written program should *never* return non-zero at the end of main, and if it does, this indicates a bug in the code (per my code style / philosophy). so, warn the user with a message if this occurs. the intention is that this message should never be printed. do not use assert() for this. i don't believe in that. such a test should always be present, for everyone. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: another minor code cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: always set errno on err()Leah Rowe
This version of spkmodem uses err() to indicate an error, and the value of errno is used as exit status at all times, even when it is zero. When calling err(), it is intended that errno always be non-zero, so modify the code accordingly. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: minor code cleanupLeah Rowe
also be more thorough about errno value when calling pledge. rename variable in a for loop for clarity. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: handle sample errors correctlyLeah Rowe
when calling fread(), errno may be set to EOVEFLOW if the range being read will cause an integer overflow if end-of-file is reached, errno may not be set. when calling this function, you must check errno or check feof() - ferror() should also be checked, so this check is added immediately afterwards in the code ferror() does not set errno, so ERR() is used to set errno to ECANCELED as program exit status further separate reading of frames into a new function Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: simplify pulse checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-03util/nvmutil: call unveil earlier, and hardenLeah Rowe
The mentality behind pledge and unveil is that you should think ahead, so that large parts of code can run under extremely tight restrictions. The pledge calls have been adjusted accordingly, also. Disallow all unveil calls after the gbe file and the file /dev/urandom have been unveiled. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-03util/nvmutil: hardening: reduce pledges earlierLeah Rowe
also remove wpath if using the dump command Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-03util/nvmutil: fix faulty arg checkLeah Rowe
in practise, no other condition would be met and the program still worked. this is a pre-emptive fix.
2023-06-03util/nvmutil: cleanup: move logic out of main()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-03util/nvmutil: major cleanup. simpler arg handling.Leah Rowe
Also hardened the pledges. Signed-off-by: Leah Rowe <leah@libreboot.org>