From 5f9e59afaef7354ec6171be079c5700564fa7f0b Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Wed, 13 May 2020 15:51:12 -0500 Subject: [PATCH] modules/coreboot: Add option to build with coreboot 4.12 Add version and hash for coreboot and coreboot-blobs modules. Adjust to use own toolchain, fix blobs path and extraction depth. Test: build Librem 13v4 using both coreboot 4.8.1 and coreboot 4.12 (after adjusting board defconfig), verify correct toolchains used to build each, and that teh result is a bootable ROM. Signed-off-by: Matt DeVillier --- modules/coreboot | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/modules/coreboot b/modules/coreboot index a14ea3eda..6a33c48cf 100644 --- a/modules/coreboot +++ b/modules/coreboot @@ -3,6 +3,9 @@ modules-$(CONFIG_COREBOOT) += coreboot ifeq "$(CONFIG_COREBOOT_VERSION)" "4.8.1" coreboot_version := 4.8.1 coreboot_hash := f0ddf4db0628c1fe1e8348c40084d9cbeb5771400c963fd419cda3995b69ad23 +else ifeq "$(CONFIG_COREBOOT_VERSION)" "4.12" +coreboot_version := 4.12 +coreboot_hash := edcad000ee9b73183c396ea76155629b3d27c693e0f1ae83e3424c4d936e2be2 else $(error "$(BOARD): does not specify coreboot version under CONFIG_COREBOOT_VERSION") endif @@ -55,7 +58,16 @@ coreboot_target := \ coreboot_output := coreboot.rom coreboot_depend += linux initrd $(musl_dep) -$(build)/$(coreboot_dir)/.configured: $(COREBOOT_IASL) +ifeq "$(CONFIG_COREBOOT_VERSION)" "4.8.1" +COREBOOT_TOOLCHAIN="" +$(COREBOOT_TOOLCHAIN): +else +COREBOOT_TOOLCHAIN="$(build)/$(coreboot_base_dir)/.xcompile" +$(COREBOOT_TOOLCHAIN): $(build)/$(coreboot_base_dir)/.canary + $(MAKE) -C "$(build)/$(coreboot_base_dir)" CPUS=`nproc` crossgcc-i386 +endif + +$(build)/$(coreboot_dir)/.configured: $(COREBOOT_IASL) $(COREBOOT_TOOLCHAIN) $(COREBOOT_IASL): $(build)/$(coreboot_base_dir)/.canary $(MAKE) -C "$(build)/$(coreboot_base_dir)" CPUS=`nproc` iasl @@ -98,10 +110,17 @@ modules-y += coreboot-blobs coreboot-blobs_version := $(coreboot_version) coreboot-blobs_tar := coreboot-blobs-$(coreboot-blobs_version).tar.xz +coreboot-blobs_url := https://www.coreboot.org/releases/$(coreboot-blobs_tar) + +ifeq "$(CONFIG_COREBOOT_VERSION)" "4.8.1" coreboot-blobs_tar_opt := --strip 3 coreboot-blobs_dir := coreboot-$(coreboot-blobs_version)/3rdparty/blobs -coreboot-blobs_url := https://www.coreboot.org/releases/$(coreboot-blobs_tar) coreboot-blobs_hash := 18aa509ae3af005a05d7b1e0b0246dc640249c14fc828f5144b6fd20bb10e295 +else +coreboot-blobs_tar_opt := --strip 2 +coreboot-blobs_dir := coreboot-$(coreboot-blobs_version)/3rdparty +coreboot-blobs_hash := 4735ee6850d55d1e65dee8b08cc9b28b8af00b42acf31365f5d9545406579104 +endif ## there is nothing to build for the blobs, this should be ## made easier to make happen