Skip to content

Commit 58f709e

Browse files
authored
Merge pull request #2007 from gaspar-ilom/coreboot-25-09
Bump coreboot to 25.09
2 parents ca0a90b + cb5beee commit 58f709e

File tree

82 files changed

+1292
-2957
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+1292
-2957
lines changed

.circleci/config.yml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ jobs:
195195
- build/ppc64/musl-cross-make-fd6be58297ee21fcba89216ccd0d4aca1e3f1c5c
196196
- build/x86/coreboot-4.11
197197
- build/x86/coreboot-24.02.01
198-
- build/x86/coreboot-24.12
198+
- build/x86/coreboot-25.09
199199
- build/x86/coreboot-dasharo
200200
- build/x86/coreboot-purism
201201
- build/x86/musl-cross-make-fd6be58297ee21fcba89216ccd0d4aca1e3f1c5c
@@ -253,7 +253,7 @@ workflows:
253253
requires:
254254
- novacustom-nv4x_adl
255255

256-
# t480 is based on 24.12 coreboot release, not sharing any buildstack from now, depend on muscl-cross cache
256+
# t480 is based on 25.09 coreboot release, not sharing any buildstack from now, depend on muscl-cross cache
257257
- build_and_persist:
258258
name: EOL_t480-hotp-maximized
259259
target: EOL_t480-hotp-maximized
@@ -286,7 +286,7 @@ workflows:
286286
- EOL_t480-hotp-maximized
287287

288288
# Those onboarding new boards should add their entries below.
289-
# coreboot 24.12 boards
289+
# coreboot 25.09 boards
290290
- build:
291291
name: EOL_x220-hotp-maximized
292292
target: EOL_x220-hotp-maximized
@@ -330,29 +330,29 @@ workflows:
330330
- EOL_t480-hotp-maximized
331331

332332
- build:
333-
name: EOL_optiplex-7010_9010-maximized
334-
target: EOL_optiplex-7010_9010-maximized
333+
name: EOL_UNTESTED_optiplex-7010_9010-maximized
334+
target: EOL_UNTESTED_optiplex-7010_9010-maximized
335335
subcommand: ""
336336
requires:
337337
- EOL_t480-hotp-maximized
338338

339339
- build:
340-
name: EOL_optiplex-7010_9010-hotp-maximized
341-
target: EOL_optiplex-7010_9010-hotp-maximized
340+
name: EOL_UNTESTED_optiplex-7010_9010-hotp-maximized
341+
target: EOL_UNTESTED_optiplex-7010_9010-hotp-maximized
342342
subcommand: ""
343343
requires:
344344
- EOL_t480-hotp-maximized
345345

346346
- build:
347-
name: EOL_optiplex-7010_9010_TXT-maximized
348-
target: EOL_optiplex-7010_9010_TXT-maximized
347+
name: EOL_UNTESTED_optiplex-7010_9010_TXT-maximized
348+
target: EOL_UNTESTED_optiplex-7010_9010_TXT-maximized
349349
subcommand: ""
350350
requires:
351351
- EOL_t480-hotp-maximized
352352

353353
- build:
354-
name: EOL_optiplex-7010_9010_TXT-hotp-maximized
355-
target: EOL_optiplex-7010_9010_TXT-hotp-maximized
354+
name: EOL_UNTESTED_optiplex-7010_9010_TXT-hotp-maximized
355+
target: EOL_UNTESTED_optiplex-7010_9010_TXT-hotp-maximized
356356
subcommand: ""
357357
requires:
358358
- EOL_t480-hotp-maximized
@@ -386,8 +386,8 @@ workflows:
386386
- EOL_t480-hotp-maximized
387387

388388
- build:
389-
name: EOL_w530-hotp-maximized
390-
target: EOL_w530-hotp-maximized
389+
name: EOL_UNTESTED_w530-hotp-maximized
390+
target: EOL_UNTESTED_w530-hotp-maximized
391391
subcommand: ""
392392
requires:
393393
- EOL_t480-hotp-maximized
@@ -400,8 +400,8 @@ workflows:
400400
- EOL_t480-hotp-maximized
401401

402402
- build:
403-
name: EOL_w530-maximized
404-
target: EOL_w530-maximized
403+
name: EOL_UNTESTED_w530-maximized
404+
target: EOL_UNTESTED_w530-maximized
405405
subcommand: ""
406406
requires:
407407
- EOL_t480-hotp-maximized
@@ -435,15 +435,15 @@ workflows:
435435
- EOL_t480-hotp-maximized
436436

437437
- build:
438-
name: EOL_UNTESTED_w541-maximized
439-
target: EOL_UNTESTED_w541-maximized
438+
name: EOL_w541-maximized
439+
target: EOL_w541-maximized
440440
subcommand: ""
441441
requires:
442442
- EOL_t480-hotp-maximized
443443

444444
- build:
445-
name: EOL_UNTESTED_w541-hotp-maximized
446-
target: EOL_UNTESTED_w541-hotp-maximized
445+
name: EOL_w541-hotp-maximized
446+
target: EOL_w541-hotp-maximized
447447
subcommand: ""
448448
requires:
449449
- EOL_t480-hotp-maximized
@@ -456,15 +456,15 @@ workflows:
456456
- EOL_t480-hotp-maximized
457457

458458
- build:
459-
name: EOL_UNTESTED_z220-cmt-maximized
460-
target: EOL_UNTESTED_z220-cmt-maximized
459+
name: EOL_z220-cmt-maximized
460+
target: EOL_z220-cmt-maximized
461461
subcommand: ""
462462
requires:
463463
- EOL_t480-hotp-maximized
464464

465465
- build:
466-
name: EOL_UNTESTED_z220-cmt-hotp-maximized
467-
target: EOL_UNTESTED_z220-cmt-hotp-maximized
466+
name: EOL_z220-cmt-hotp-maximized
467+
target: EOL_z220-cmt-hotp-maximized
468468
subcommand: ""
469469
requires:
470470
- EOL_t480-hotp-maximized
@@ -527,7 +527,7 @@ workflows:
527527
requires:
528528
- librem_14
529529

530-
# t480 is based on 24.12 coreboot release, not sharing any buildstack from now, depend on muscl-cross cache
530+
# t480 is based on 25.09 coreboot release, not sharing any buildstack from now, depend on muscl-cross cache
531531
- build:
532532
name: EOL_t480-maximized
533533
target: EOL_t480-maximized

Makefile

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,12 @@ $(info !!!!!! Build starts !!!!!!)
7272
DATE=`date --rfc-3339=seconds`
7373

7474
BOARD ?= qemu-coreboot-fbwhiptail-tpm1
75+
76+
ifeq "y" "$(shell [[ $(BOARD) =~ (^EOL_|^)UNMAINTAINED_.* ]] && echo y)""
77+
CONFIG := $(pwd)/unmaintained_boards/$(BOARD)/$(BOARD).config
78+
else
7579
CONFIG := $(pwd)/boards/$(BOARD)/$(BOARD).config
80+
endif
7681

7782
ifneq "y" "$(shell [ -r '$(CONFIG)' ] && echo y)"
7883
$(error $(CONFIG): board configuration does not exist)
@@ -907,7 +912,7 @@ $(board_build)/$(CB_OUTPUT_BASENAME)-gpg-injected.rom: $(board_build)/$(CB_OUTPU
907912

908913
board.move_untested_to_tested:
909914
@echo "Moving $(BOARD) from UNTESTED to tested status"
910-
@NEW_BOARD=$$(echo $(BOARD) | sed 's/^UNTESTED_//'); \
915+
@NEW_BOARD=$$(echo $(BOARD) | sed -E 's/(^EOL_|^)UNTESTED_/\1/'); \
911916
INCLUDE_BOARD=$$(grep "include \$$(pwd)/boards/" boards/$(BOARD)/$(BOARD).config | sed 's/.*boards\/\(.*\)\/.*/\1/'); \
912917
NEW_INCLUDE_BOARD=$$(echo $$INCLUDE_BOARD | sed 's/^UNTESTED_//'); \
913918
echo "Updating config file: boards/$(BOARD)/$(BOARD).config"; \
@@ -923,11 +928,12 @@ board.move_untested_to_tested:
923928

924929
board.move_unmaintained_to_tested:
925930
@echo "NEW_BOARD variable will remove UNMAINTAINED_ prefix from $(BOARD)"
926-
@NEW_BOARD=$$(echo $(BOARD) | sed 's/^UNMAINTAINED_//'); \
927-
echo "Renaming boards/$$BOARD/$$BOARD.config to boards/$$BOARD/$$NEW_BOARD.config"; \
928-
git mv boards/$$BOARD/$$BOARD.config boards/$$BOARD/$$NEW_BOARD.config; \
931+
@NEW_BOARD=$$(echo $(BOARD) | sed -E 's/(^EOL_|^)UNMAINTAINED_/\1/'); \
932+
echo "Renaming unmaintained_boards/$$BOARD/$$BOARD.config to boards/$$BOARD/$$NEW_BOARD.config"; \
933+
mkdir -p boards/$$BOARD; \
934+
git mv unmaintained_boards/$$BOARD/$$BOARD.config boards/$$BOARD/$$NEW_BOARD.config; \
929935
echo "Renaming boards/$$BOARD to boards/$$NEW_BOARD"; \
930-
rm -rf boards/$$NEW_BOARD; \
936+
rm -rf boards/$$NEW_BOARD unmaintained_boards/$$BOARD; \
931937
git mv boards/$$BOARD boards/$$NEW_BOARD; \
932938
echo "Replacing $$BOARD with $$NEW_BOARD in .circleci/config.yml"; \
933939
sed -i "s/$$BOARD/$$NEW_BOARD/g" .circleci/config.yml; \
@@ -936,19 +942,19 @@ board.move_unmaintained_to_tested:
936942

937943
board.move_untested_to_unmaintained:
938944
@echo "NEW_BOARD variable will move from UNTESTED_ to UNMAINTAINED_ from $(BOARD)"
939-
@NEW_BOARD=$$(echo $(BOARD) | sed 's/^UNTESTED_/UNMAINTAINED_/g'); \
940-
echo "Renaming boards/$$BOARD/$$BOARD.config to boards/$$BOARD/$$NEW_BOARD.config"; \
945+
@NEW_BOARD=$$(echo $(BOARD) | sed -E 's/(^EOL_|^)UNTESTED_/\1UNMAINTAINED_/'); \
946+
echo "Renaming boards/$$BOARD to unmaintained_boards/$$NEW_BOARD"; \
941947
mkdir -p unmaintained_boards; \
942-
git mv boards/$$BOARD/$$BOARD.config unmaintained_boards/$$BOARD/$$NEW_BOARD.config; \
943-
echo "Renaming boards/$$BOARD to unmaintainted_boards/$$NEW_BOARD"; \
944-
rm -rf boards/$$NEW_BOARD; \
945948
git mv boards/$$BOARD unmaintained_boards/$$NEW_BOARD; \
949+
echo "Renaming unmaintained_boards/$$NEW_BOARD/$$BOARD.config to unmaintained_boards/$$NEW_BOARD/$$NEW_BOARD.config"; \
950+
rm -rf boards/$$NEW_BOARD; \
951+
git mv unmaintained_boards/$$NEW_BOARD/$$BOARD.config unmaintained_boards/$$NEW_BOARD/$$NEW_BOARD.config; \
946952
echo "Replacing $$BOARD with $$NEW_BOARD in .circleci/config.yml. Delete manually entries"; \
947953
sed -i "s/$$BOARD/$$NEW_BOARD/g" .circleci/config.yml
948954

949955
board.move_tested_to_untested:
950956
@echo "NEW_BOARD variable will add UNTESTED_ prefix to $(BOARD)"
951-
@NEW_BOARD=UNTESTED_$(BOARD); \
957+
@NEW_BOARD=$$(echo $(BOARD) | sed -E 's/(^EOL_|^)/\1UNTESTED_/'); \
952958
rm -rf boards/$${NEW_BOARD}; \
953959
echo "Renaming boards/$(BOARD)/$(BOARD).config to boards/$(BOARD)/$${NEW_BOARD}.config"; \
954960
git mv boards/$(BOARD)/$(BOARD).config boards/$(BOARD)/$${NEW_BOARD}.config; \
@@ -970,7 +976,7 @@ board.move_tested_to_EOL:
970976

971977
board.move_tested_to_unmaintained:
972978
@echo "Moving $(BOARD) from tested to unmaintained status"
973-
@NEW_BOARD=UNMAINTAINED_$(BOARD); \
979+
@NEW_BOARD=$$(echo $(BOARD) | sed -E 's/(^EOL_|^)/\1UNMAINTAINED_/'); \
974980
INCLUDE_BOARD=$$(grep "include \$$(pwd)/boards/" boards/$(BOARD)/$(BOARD).config | sed 's/.*boards\/\(.*\)\/.*/\1/'); \
975981
NEW_INCLUDE_BOARD=UNMAINTAINED_$${INCLUDE_BOARD}; \
976982
echo "Updating config file: boards/$(BOARD)/$(BOARD).config"; \

blobs/w541/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
Coreboot on the W541 requires the following binary blobs:
99

1010
- `mrc.bin` - Consists of Intel’s Memory Reference Code (MRC) and [is used to initialize the DRAM](https://doc.coreboot.org/northbridge/intel/haswell/mrc.bin.html).
11+
- Known issues with ram initilization are listed below.
1112
- `me.bin` - Consists of Intel’s Management Engine (ME), which we modify using [me_cleaner](https://github.com/corna/me_cleaner) to remove all but the modules which are necessary for the CPU to function.
1213
- `gbe.bin` - Consists of hardware/software configuration data for the Gigabit Ethernet (GbE) controller. Intel publishes the data structure [here](https://web.archive.org/web/20230122164346/https://www.intel.com/content/dam/www/public/us/en/documents/design-guides/i-o-controller-hub-8-9-nvm-map-guide.pdf), and an [ImHex](https://github.com/WerWolv/ImHex) hex editor pattern is available [here](https://github.com/rbreslow/ImHex-Patterns/blob/rb/intel-ich8/patterns/intel/ich8_lan_nvm.hexpat).
1314
- `ifd.bin` - Consists of the Intel Flash Descriptor (IFD). Intel publishes the data structure [here](https://web.archive.org/web/20221208011432/https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/io-controller-hub-8-datasheet.pdf), and an ImHex hex editor pattern is available [here](https://github.com/rbreslow/ImHex-Patterns/blob/rb/intel-ich8/patterns/intel/ich8_flash_descriptor.hexpat).
@@ -38,3 +39,7 @@ Now, you can rebuild Heads:
3839
```console
3940
$ make BOARD=w541-hotp-maximized
4041
```
42+
43+
# Known Issues
44+
- Ram initialization with the MRC blob is very slow (~40s until boot splash) and so far native ram init (NRI) which was merged upstream has not been able to resolve the issue under heads. Work on HRI is tracked here: https://github.com/linuxboot/heads/pull/1923
45+
- S3 resume from suspend has been reported as flaky on some boards (4 DIMMs with a total of 32GB ram).

blobs/xx80/README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ The following blobs are needed:
77
* `me.bin`
88
* `tb.bin` (optional but recommended flashing this blob to the separate Thunderbolt SPI chip to fix a bug in the original firmware)
99

10-
## me.bin: automatically extract, neuter and deguard
10+
## me.bin: automatically extract, deactivate, partially neuter and deguard
1111

12-
download_clean_me.sh : Download vulnerable ME from Dell, verify checksum, extract ME, neuter ME and trim it, then apply the deguard patch and place it into me.bin
12+
download_clean_deguard_me_pad_tb.sh : Download vulnerable ME from Dell, verify checksum, extract ME, deactivate ME and paritally neuter it, then apply the deguard patch and place it into me.bin.
13+
For the technical details please read the documentation in the script itself, as removing modules is limited on the platform.
1314

1415
The ME blob dumped in this directory comes from the following link: https://dl.dell.com/FOLDER04573471M/1/Inspiron_5468_1.3.0.exe
1516

@@ -31,7 +32,7 @@ The GBE MAC address was forged to: `00:DE:AD:C0:FF:EE MAC`
3132
## tb.bin
3233

3334
This blob was extracted from https://download.lenovo.com/pccbbs/mobiles/n24th13w.exe
34-
It is zero-padded to 1MB and should be flashed to the Thunderbolt SPI chip, which is not the same as the 16MB chip to which the heads rom is flashed. External flashing is recommended as the only way to reliably fix a bug in the original Thunderbolt software on the SPI chip. You can find a guide here: https://osresearch.net/T430-maximized-flashing/
35+
It is zero-padded to 1MB and should be flashed to the Thunderbolt SPI chip, which is not the same as the 16MB chip to which the heads rom is flashed. External flashing is recommended as the only way to reliably fix a bug in the original Thunderbolt software on the SPI chip. You can find a guide here: https://osresearch.net/T480-maximized-flashing/
3536

3637
## Integrity
3738

@@ -50,4 +51,6 @@ See the board configs `boards/t480-[hotp-]maximized/t480-[hotp-]maximized.config
5051
# Documentation
5152

5253
A guide on how to flash this board (both the Heads rom and the Thunderbolt `tb.bin` blob) can be found here:
53-
https://osresearch.net/T430-maximized-flashing/
54+
https://osresearch.net/T480-maximized-flashing/
55+
56+
The upstream documentation is available here. It includes a list of known issues: https://doc.coreboot.org/mainboard/lenovo/t480.html

blobs/xx80/download_clean_deguard_me_pad_tb.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,17 @@ function download_and_clean() {
7171

7272
extracted_me_filename="1 Inspiron_5468_1.3.0 -- 3 Intel Management Engine (Non-VPro) Update v${ME_version}.bin"
7373

74-
# Neutralize and shrink Intel ME. Note that this doesn't include
74+
# Deactivate, partially neuter and shrink Intel ME. Note that this doesn't include
7575
# --soft-disable to set the "ME Disable" or "ME Disable B" (e.g.,
7676
# High Assurance Program) bits, as they are defined within the Flash
7777
# Descriptor.
7878
# However, the HAP bit must be enabled to make the deguarded ME work. We only clean the ME in this function.
79+
# For ME 11.x this means we must keep the rbe, bup, kernel and syslib modules.
80+
# https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F#me-versions-from-11x-skylake-1
81+
# Furthermore, deguard requires keeping the MFS, the HAP bit set, and we cannot relocate the FTPR partition.
82+
# Some more general info on shrinking:
7983
# https://github.com/corna/me_cleaner/wiki/External-flashing#neutralize-and-shrink-intel-me-useful-only-for-coreboot
8084

81-
# MFS is needed for deguard so we whitelist it here and also do not relocate the FTPR partition
8285
python "$me_cleaner" --whitelist MFS -t -O "$me_output" "${me_installer_filename}_extracted/Firmware/${extracted_me_filename}"
8386
rm -rf ./*
8487
popd || exit

boards/EOL_optiplex-7010_9010-hotp-maximized/EOL_optiplex-7010_9010-hotp-maximized.config renamed to boards/EOL_UNTESTED_optiplex-7010_9010-hotp-maximized/EOL_UNTESTED_optiplex-7010_9010-hotp-maximized.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#
99
# - Includes: Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code)
1010
export CONFIG_COREBOOT=y
11-
export CONFIG_COREBOOT_VERSION=24.12
11+
export CONFIG_COREBOOT_VERSION=25.09
1212
export CONFIG_LINUX_VERSION=6.1.8
1313

1414
CONFIG_COREBOOT_CONFIG=config/coreboot-optiplex-7019_9010-maximized.config

boards/EOL_optiplex-7010_9010-maximized/EOL_optiplex-7010_9010-maximized.config renamed to boards/EOL_UNTESTED_optiplex-7010_9010-maximized/EOL_UNTESTED_optiplex-7010_9010-maximized.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#
99
# - DOES NOT INCLUDE Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code)
1010
export CONFIG_COREBOOT=y
11-
export CONFIG_COREBOOT_VERSION=24.12
11+
export CONFIG_COREBOOT_VERSION=25.09
1212
export CONFIG_LINUX_VERSION=6.1.8
1313

1414
CONFIG_COREBOOT_CONFIG=config/coreboot-optiplex-7019_9010-maximized.config

boards/EOL_optiplex-7010_9010_TXT-hotp-maximized/EOL_optiplex-7010_9010_TXT-hotp-maximized.config renamed to boards/EOL_UNTESTED_optiplex-7010_9010_TXT-hotp-maximized/EOL_UNTESTED_optiplex-7010_9010_TXT-hotp-maximized.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#
99
# - Includes: Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code)
1010
export CONFIG_COREBOOT=y
11-
export CONFIG_COREBOOT_VERSION=24.12
11+
export CONFIG_COREBOOT_VERSION=25.09
1212
export CONFIG_LINUX_VERSION=6.1.8
1313

1414
CONFIG_COREBOOT_CONFIG=config/coreboot-optiplex-7019_9010_TXT-maximized.config

boards/EOL_optiplex-7010_9010_TXT-maximized/EOL_optiplex-7010_9010_TXT-maximized.config renamed to boards/EOL_UNTESTED_optiplex-7010_9010_TXT-maximized/EOL_UNTESTED_optiplex-7010_9010_TXT-maximized.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#
99
# - DOES NOT INCLUDE Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code)
1010
export CONFIG_COREBOOT=y
11-
export CONFIG_COREBOOT_VERSION=24.12
11+
export CONFIG_COREBOOT_VERSION=25.09
1212
export CONFIG_LINUX_VERSION=6.1.8
1313

1414
CONFIG_COREBOOT_CONFIG=config/coreboot-optiplex-7019_9010_TXT-maximized.config

boards/EOL_UNTESTED_t440p-hotp-maximized/EOL_UNTESTED_t440p-hotp-maximized.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ CONFIG_COREBOOT_CONFIG=config/coreboot-t440p.config
55
CONFIG_LINUX_CONFIG=config/linux-t440p.config
66

77
export CONFIG_COREBOOT=y
8-
export CONFIG_COREBOOT_VERSION=24.12
8+
export CONFIG_COREBOOT_VERSION=25.09
99
export CONFIG_LINUX_VERSION=6.1.8
1010

1111
CONFIG_CRYPTSETUP2=y

0 commit comments

Comments
 (0)