Skip to content

Commit 30f005e

Browse files
committed
Merge remote-tracking branch 'origin/master' into pre_release_dasharo_101_rc3
bumped to 1.0.1 released
2 parents 7003f89 + e931ff1 commit 30f005e

49 files changed

Lines changed: 10883 additions & 523 deletions

Some content is hidden

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

.circleci/config.yml

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ commands:
4848
jobs:
4949
prep_env:
5050
docker:
51-
- image: tlaurion/heads-dev-env:v0.2.5
51+
# Docker image: tlaurion/heads-dev-env:v0.2.7
52+
- image: tlaurion/heads-dev-env@sha256:5f890f3d1b6b57f9e567191695df003a2ee880f084f5dfe7a5633e3e8f937479
5253
resource_class: large
5354
working_directory: ~/heads
5455
steps:
@@ -123,7 +124,8 @@ jobs:
123124

124125
build_and_persist:
125126
docker:
126-
- image: tlaurion/heads-dev-env:v0.2.5
127+
# Docker image: tlaurion/heads-dev-env:v0.2.7
128+
- image: tlaurion/heads-dev-env@sha256:5f890f3d1b6b57f9e567191695df003a2ee880f084f5dfe7a5633e3e8f937479
127129
resource_class: large
128130
working_directory: ~/heads
129131
parameters:
@@ -151,7 +153,8 @@ jobs:
151153

152154
build:
153155
docker:
154-
- image: tlaurion/heads-dev-env:v0.2.5
156+
# Docker image: tlaurion/heads-dev-env:v0.2.7
157+
- image: tlaurion/heads-dev-env@sha256:5f890f3d1b6b57f9e567191695df003a2ee880f084f5dfe7a5633e3e8f937479
155158
resource_class: large
156159
working_directory: ~/heads
157160
parameters:
@@ -172,7 +175,8 @@ jobs:
172175

173176
save_cache:
174177
docker:
175-
- image: tlaurion/heads-dev-env:v0.2.5
178+
# Docker image: tlaurion/heads-dev-env:v0.2.7
179+
- image: tlaurion/heads-dev-env@sha256:5f890f3d1b6b57f9e567191695df003a2ee880f084f5dfe7a5633e3e8f937479
176180
resource_class: large
177181
working_directory: ~/heads
178182
steps:
@@ -279,6 +283,14 @@ workflows:
279283
requires:
280284
- x86-musl-cross-make
281285

286+
# dasharo_msi
287+
- build_and_persist:
288+
name: UNTESTED_msi_z690a_ddr4
289+
target: UNTESTED_msi_z690a_ddr4
290+
subcommand: ""
291+
requires:
292+
- x86-musl-cross-make
293+
282294
# Cache one workspace per architecture
283295
# Make sure workspace caches are chainloaded and the last in chain for an arch is saved
284296
- save_cache:
@@ -572,3 +584,25 @@ workflows:
572584
subcommand: ""
573585
requires:
574586
- novacustom-nv4x_adl
587+
588+
# dasharo_msi
589+
- build:
590+
name: UNTESTED_msi_z690a_ddr5
591+
target: UNTESTED_msi_z690a_ddr5
592+
subcommand: ""
593+
requires:
594+
- UNTESTED_msi_z690a_ddr4
595+
596+
- build:
597+
name: UNTESTED_msi_z790p_ddr4
598+
target: UNTESTED_msi_z790p_ddr4
599+
subcommand: ""
600+
requires:
601+
- UNTESTED_msi_z690a_ddr4
602+
603+
- build:
604+
name: msi_z790p_ddr5
605+
target: msi_z790p_ddr5
606+
subcommand: ""
607+
requires:
608+
- UNTESTED_msi_z690a_ddr4

BOARDS_AND_TESTERS.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,10 @@ Desktops / Servers
8888
- [ ] Librem mini v1 (Whiskey Lake: Intel 8th Gen CPU : ESU ends 03/31/2026): @JonathonHall-Purism
8989
- [ ] Librem mini v2 (Comet Lake: Intel 10th Gen CPU): @JonathonHall-Purism
9090
- [ ] Talos II (Power9, PPC64LE): @tlaurion (became untested, low community interest despite large investment)
91+
92+
MSI
93+
---
94+
- [ ] MSI PRO Z690-A (WIFI) (DDR4): **None** - Board is untested.
95+
- [ ] MSI PRO Z690-A (WIFI) (DDR5): **None** - Board is untested.
96+
- [ ] MSI PRO Z790-P (WIFI) (DDR4): **None** - Board is untested.
97+
- [ ] MSI PRO Z790-P (WIFI) (DDR5): @Tonux599

Makefile

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ $(info **LOADAVG** (default: 1.5 times CPUS, e.g., 'make LOADAVG=54'))
6565
$(info **AVAILABLE_MEM_GB** (default: memory available on the system in GB, e.g., 'make AVAILABLE_MEM_GB=4'))
6666
$(info **MEM_PER_JOB_GB** (default: 1GB per job, e.g., 'make MEM_PER_JOB_GB=2'))
6767
$(info ----------------------------------------------------------------------)
68+
ifeq "$(V)" ""
69+
$(info Hint: If the build fails, re-run with V=1 for full configure + validation output)
70+
$(info Verbose example: ./docker_repro.sh make BOARD=$(BOARD) V=1)
71+
$(info ----------------------------------------------------------------------)
72+
endif
6873
$(info !!!!!! Build starts !!!!!!)
6974

7075

@@ -284,6 +289,34 @@ all payload:
284289
@sha256sum $< | tee -a "$(HASHES)"
285290
@stat -c "%8s:%n" $< | tee -a "$(SIZES)"
286291

292+
# Validate coreboot CBFS size against IFD BIOS region
293+
validate_cbfs_ifd:
294+
ifneq ($(CONFIG_COREBOOT),)
295+
@echo "Validating $(BOARD) CBFS size against IFD BIOS region..."
296+
@$(pwd)/bin/validate_cbfs_ifd_fit.sh \
297+
--coreboot-dir "$(build)/$(coreboot_dir)" \
298+
--board-dir "$(build)/$(BOARD)" \
299+
--config "$(pwd)/$(CONFIG_COREBOOT_CONFIG)" || exit 1
300+
@echo "✓ CBFS configuration is valid"
301+
else
302+
@echo "Board $(BOARD) does not use coreboot, skipping validation"
303+
endif
304+
305+
# Auto-fix coreboot CBFS size to match IFD BIOS region
306+
fix_cbfs_ifd:
307+
ifneq ($(CONFIG_COREBOOT),)
308+
@echo "Auto-fixing $(BOARD) CBFS size to match IFD BIOS region..."
309+
@$(pwd)/bin/validate_cbfs_ifd_fit.sh \
310+
--coreboot-dir "$(build)/$(coreboot_dir)" \
311+
--board-dir "$(build)/$(BOARD)" \
312+
--config "$(pwd)/$(CONFIG_COREBOOT_CONFIG)" \
313+
--fix || exit 1
314+
@echo ""
315+
@echo "If CONFIG_CBFS_SIZE was adjusted, next build will use the new size."
316+
else
317+
@echo "Board $(BOARD) does not use coreboot, nothing to fix"
318+
endif
319+
287320
# Disable all built in rules
288321
.INTERMEDIATE:
289322
.SUFFIXES:
@@ -902,11 +935,27 @@ modules.clean:
902935
# PUBKEY_ASC.
903936
inject_gpg: $(board_build)/$(CB_OUTPUT_FILE_GPG_INJ)
904937

905-
$(board_build)/$(CB_OUTPUT_BASENAME)-gpg-injected.rom: $(board_build)/$(CB_OUTPUT_FILE)
906-
cp "$(board_build)/$(CB_OUTPUT_FILE)" \
907-
"$(board_build)/$(CB_OUTPUT_FILE_GPG_INJ)"
908-
./bin/inject_gpg_key.sh --cbfstool "$(build)/$(coreboot_dir)/cbfstool" \
909-
"$(board_build)/$(CB_OUTPUT_FILE_GPG_INJ)" "$(PUBKEY_ASC)"
938+
$(board_build)/$(CB_OUTPUT_BASENAME)-gpg-injected.rom: $(board_build)/$(CB_OUTPUT_FILE) $(PUBKEY_ASC)
939+
@set -e; \
940+
src="$(board_build)/$(CB_OUTPUT_FILE)"; \
941+
tgt="$(board_build)/$(CB_OUTPUT_FILE_GPG_INJ)"; \
942+
key="$(PUBKEY_ASC)"; \
943+
meta="$(board_build)/$(CB_OUTPUT_FILE_GPG_INJ).meta"; \
944+
if [ -f "$$tgt" ] && [ -f "$$meta" ]; then \
945+
SRC_SHA256=$$(awk -F= '/^SRC_SHA256=/{print $$2}' "$$meta"); \
946+
KEY_SHA256=$$(awk -F= '/^KEY_SHA256=/{print $$2}' "$$meta"); \
947+
src_sum=$$(sha256sum "$$src" | awk '{print $$1}'); \
948+
key_sum=$$(sha256sum "$$key" | awk '{print $$1}'); \
949+
if [ "$$src_sum" = "$$SRC_SHA256" ] && [ "$$key_sum" = "$$KEY_SHA256" ]; then \
950+
echo "GPG injection up-to-date; skipping"; \
951+
exit 0; \
952+
fi; \
953+
fi; \
954+
cp "$$src" "$$tgt"; \
955+
./bin/inject_gpg_key.sh --cbfstool "$(build)/$(coreboot_dir)/cbfstool" "$$tgt" "$$key"; \
956+
SRC_SHA256=$$(sha256sum "$$src" | awk '{print $$1}'); \
957+
KEY_SHA256=$$(sha256sum "$$key" | awk '{print $$1}'); \
958+
printf 'SRC_SHA256=%s\nKEY_SHA256=%s\n' "$$SRC_SHA256" "$$KEY_SHA256" > "$$meta"
910959

911960

912961

0 commit comments

Comments
 (0)