Commit Graph

543 Commits (829bc02bf28543de25682bd9cd5fe07aa74dc11f)

Author SHA1 Message Date
Leah Rowe bd4ea9a028 gm45: re-add mitigations for no-microcode setup
libreboot will still include microcode updates
by default, but mitigations against broken speedstep
and reboot (when microcode updates are excluded) were
removed following the merge with osboot

this patch restores those mitigations; the patch
reverts coreboot to older smrr code (which works fine, it
isn't critical to use the new behaviour) and disables peci
(pointless feature)

i'll probably re-tool this later to apply the changes
conditionally to whether ucode is present

this is not a change in policy. policy says:
include cpu microcode updates by default

policy also says:
libreboot must be configurable

microcode removal via cbfstool remove -n, counts as
configuration, and in practise is not possible on
gm45 patches in current libreboot; this patch corrects
that problem, allowing the machines to work somewhat
well (same stability issues as before, like MCE errors
resulting in kernel panic on high CPU/memory usage,
but i digress)

happy... hacking
2023-04-17 17:10:37 +01:00
Riku Viitanen 930f30ac35 parabola specific dependencies install script 2023-04-16 17:41:26 +00:00
Leah Rowe 8fb54e801f util/nvmutil: sort includes alphabetically
small nitpick, but i try to use openbsd style
since i like that style. upon further reading
of their style guidelines today, it was revealed
to me that for includes, they:

* sort sys/ includes alphabetically, at the top
* after sys/ includes, have an empty line
* includes for networking-related headers below that
* empty space below networking headers if there
* after that, have the rest of the includes, sorted
  alphabetically

at least, that is my understanding. i have to admit,
it does look cleaner

not really that critical but why not do it?
2023-04-15 21:18:12 +01:00
Leah Rowe 7e01771395 set grub.cfg timeout to 30s 2023-04-15 12:18:32 +01:00
Leah Rowe b9ee4e79c3 blobutil: support fetching KBC1126 EC (HP laptops)
This is useful for e.g. HP EliteBook 2560p.

In coreboot config, enable e.g. (for lbmk blobutil):

CONFIG_KBC1126_FW1="../../ec/hp2560p/ec.bin.fw1"
CONFIG_KBC1126_FW2="../../ec/hp2560p/ec.bin.fw2"

In resources/blobs/sources you would have these entries:

EC_url
EC_url_bkup
EC_hash
2023-04-15 00:11:23 +01:00
Leah Rowe 0229463f7b Merge pull request 'Port to HP Compaq 8200 Elite SFF' (#8) from Riku_V/lbmk:hp8200sff into master
Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/8
2023-04-14 22:03:40 +00:00
Riku Viitanen 41f094d131 Port to HP Compaq 8200 Elite SFF 2023-04-14 22:42:19 +03:00
Leah Rowe 668de6d81f blobutil: support extracting ME from full ROMs
In cases where the vendor update file contains a full
ROM image encompassing IFD+GbE+ME+BIOS, blobutil was
saving the *entire* ROM containing those, as me.bin.
For example, if it's an 8MB ROM, blobutil would create
a me.bin file that is actually the whole ROM containing:

* Vendor IFD region
* Vendor GbE(if it has one)
* Vendor ME region
* Vendor BIOS region

This fix tries with -M and -O first. In this combination,
me_cleaner shall extract me.bin (neutered) and save it.

If that fails, then the normal method with just -O is
tried, which by this logic would always be a lone ME
image if it succeeds.

I tested downloading ME images on existing boards with
this, and it didn't break them, and this fixes the bug.

This is done for HP 8200 SFF which Riku_V is adding to
lbmk. I'm on IRC with Riku_V as I write this commit
message! Super hot hotfix patch.
2023-04-14 01:41:07 +01:00
Leah Rowe 9df1a1774f build/release/src: include gitclone in release 2023-04-13 17:47:47 +01:00
Leah Rowe 903fa59056 util/nvmutil: don't display errant whitespace
At the end of each line is an errant space.

Fix that.
2023-04-11 00:46:45 +01:00
Leah Rowe 65d7e7c1dd blob/download: don't use bad character in printf
This fixes errors when running that script.
2023-04-10 06:50:33 +01:00
Leah Rowe 62cf993904 remove daisy and peach boards (todo: re-add)
bl1 bootloader blobs needed, and lbmk doesn't currently
auto-download these for insertion, so their presence in
the build system is problematic because people might build
these and think they work - they don't, due to the lack of
those bl1 blobs

notes about this are included in lbwww, on the compatibility
list. these can be re-added and tested later, when lbmk handles
those bl1 bootloader blobs
2023-04-09 20:57:08 +01:00
Leah Rowe e80b24e906 remove veyron boards temporarily (will re-add)
u-boot is known broken on these, last revision
known working is 2021.01

can bisect and find the fix. i'm putting this on
the issue tracker (new one on codeberg)
2023-04-09 19:52:26 +01:00
shmalebx9 257ca17b34 inject blobs into release archive and check their hash 2023-04-09 13:22:08 +01:00
shmalebx9 4719d733ef hash roms with blobs before stripping them 2023-04-09 13:21:56 +01:00
Leah Rowe 49356c3dd7 update to codeberg links in the readme 2023-04-08 20:45:03 +01:00
Leah Rowe eb9d063040 add ich9utils back to utils
don't download it. keep it in lbmk.

libreboot moved to codeberg for git hosting,
and i didn't want to keep lugging around an
extra git repo just for one tiny project.
2023-04-08 18:36:50 +01:00
Leah Rowe 58e12063c7 util/nvmutil: even crazier code size reduction 2023-04-07 14:55:04 +01:00
Leah Rowe 2ae9ff5446 util/nvmutil: yet more code size optimisation 2023-04-07 14:11:19 +01:00
Leah Rowe bae37e30ea util/nvmutil: more code size optimisations 2023-04-07 13:43:37 +01:00
Leah Rowe 7755f0e0c7 util/nvmutil: minor code size optimisation
not just sloccount, but compiled binary size as
tested with tcc on an x86_64 host
2023-04-07 03:35:47 +01:00
Leah Rowe 34eeca1f03 util/nvmutil: fix possible regression
i went too hard on the sloc reductions

a check inside a for loop could cause
incomplete reading of gbe images

revert that
2023-04-07 02:08:06 +01:00
Leah Rowe 01e2ed3034 util/nvmutil: minor code cleanup
also removed some unnecessary checks

fixed the check of pwrite's return value
(it should check for -1)
2023-04-06 22:19:45 +01:00
Leah Rowe 2044bf32d3 util/nvmutil: remove unnecessary else statement 2023-04-06 20:57:00 +01:00
Leah Rowe 2356f89f27 util/nvmutil: less annoying comments
added a few that were more useful

deleted a few obnoxious ones
2023-04-06 20:48:28 +01:00
Leah Rowe 8771551162 util/nvmutil: remove duplicated logic
the byteswap() function is used for big endian host
compatibility, but it can also be used to swap words
in the stored mac address
2023-04-06 20:22:58 +01:00
Leah Rowe 9372ae3ddc util/nvmutil: one more comment 2023-04-06 19:41:53 +01:00
Leah Rowe d3ad50dcb4 util/nvmutil: add useful code comments 2023-04-06 19:30:20 +01:00
Leah Rowe 7c403fcd9b util/nvmutil: remove unnecessary debug messages
these were put in when i was testing the feature to
limit read/written bytes in loading/saving of files
2023-04-06 19:06:07 +01:00
Leah Rowe 1fb5f7c6e0 util/nvmutil: serious re-factoring, part 2
the code is smaller
2023-04-06 18:38:05 +01:00
Leah Rowe a0bc61f9de util/nvmutil: consolidated error message 2023-04-06 00:56:17 +01:00
Leah Rowe 0d98d73870 util/nvmutil: serious re-factoring (speed boost!)
word/setWord no longer mitigates endianness. instead,
all bytes are swapped after reading and before writing the
file, and only if the host is big endian

this improves performance on little endian hosts, which is
most machines, and the code is much simpler, so it's more
robust and less likely to break

mac address endianness made more clear in code, including
with a comment that explains it

(the nvm section contains little endian words, *except* the
mac address whose words are stored big endian)
2023-04-06 00:42:14 +01:00
Leah Rowe b0fa54ac41 util/nvmutil: fix faulty zeroes-mac-address check
it was resetting the total for each nibble. absolute
epic fail on my part.

fixed now.
2023-04-05 21:53:12 +01:00
Leah Rowe 0c79a9a82e util/nvmutil: minor code cleanup 2023-04-05 21:51:06 +01:00
Leah Rowe 8e5a8145b2 util/nvmutil: move mac address parsing to function 2023-04-05 21:33:39 +01:00
Leah Rowe 92132e8e18 remove d945gclf_16mb
i overlooked this one. the normal one was removed,
due to boot issues with the board. i need to look
at this board before re-adding it to libreboot
2023-04-01 21:37:48 +01:00
Leah Rowe 9f76c9225c readme 2023-04-01 18:19:53 +01:00
Leah Rowe df534acd24 blobutil: replace fake tabs with tabs
always use tabs
2023-04-01 17:59:09 +01:00
Leah Rowe 96275d52f5 build/dependencies: add p7zip (for blobutil lzma) 2023-04-01 17:27:35 +01:00
Leah Rowe 424df36766 update .gitignore
yeah and don't hardcode me.bin. just don't show any me.bin in git
2023-04-01 17:14:07 +01:00
Leah Rowe a2686bf4f4 blobutil: don't hardcode paths 2023-04-01 17:12:19 +01:00
Leah Rowe 688e508175 blobutil/download: don't hardcode me.bin paths
Bruteforce it. Some executables are just using inno
archival but some are simple LZMA. This patch handles
both of them, and also the event where you have LZMA
compressed files (even LZMA compressed files within
LZMA compressed archives) within any inno/lzma compressed
executable.

It recursively scans inside a vendor update, to find
a me.bin files for neutering with me_cleaner.

This is in preparation for two new ports in Libreboot:

* HP EliteBook 8560w
* Apple MacBook Air 4,2 (2011)

This script can literally be used with multiple vendors now.
It is no longer specific just to Lenovo. I originally did
this and other recent commits to the file, as one big
commit, but I decided to split it all up into small commits.
2023-04-01 13:47:01 +01:00
Leah Rowe ed47c91453 blobutil/download: split into small functions
This patch makes it easier to determine which part does what.
2023-04-01 13:06:35 +01:00
Leah Rowe b10bfacf67 blobutil/download: make more logic top-down
Basically, I really like OpenBSD coding style, and I want to
replicate this, somewhat, in shell scripts.
2023-04-01 11:27:56 +01:00
Leah Rowe 1c2f9b54c6 blobutil/download: move main logic to the top
Top-down order is easier to read, for greater understanding.

What's moved is initialisation. The glue that calls Build_deps
and Download_needed still need to be at the bottom.
2023-04-01 11:20:12 +01:00
Leah Rowe 14b5947ed9 blobutil/download: move Build_deps to the top
It's called first, so declare it first!
2023-04-01 11:13:04 +01:00
Leah Rowe 7f3c0ca81e improved a comment 2023-04-01 11:11:31 +01:00
Leah Rowe af29f112ab blobutil: rename variables to make more sense
for example, files being downloaded have nothing to do
with the ME; they are merely compressed, and contain many
files in addition to it
2023-04-01 03:36:41 +01:00
Leah Rowe 883967160c build/boot/roms: bugfix: unitialised variable
When using e.g. -p grub in build/boot/roms, it will
error out. This patch fixes that.

E.g.

./build boot roms t440pmrc_12mb -p grub

Seldom used feature and it was overlooked. Most people
won't use the option that triggered the error.
2023-03-25 16:43:46 +00:00
Leah Rowe da6bf57a3f blobs/inject: use correct offset for haswell mrc 2023-03-24 07:10:44 +00:00