[coreboot-gerrit] Patch set updated for coreboot: payloads: Enable building depthcharge as part of the coreboot build

Martin Roth (martinroth@google.com) gerrit at coreboot.org
Mon Mar 14 23:53:52 CET 2016


Martin Roth (martinroth at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/10924

-gerrit

commit 99eb0e63c7c001aa3e8c6d482b747be1ee35ec25
Author: Stefan Reinauer <stefan.reinauer at coreboot.org>
Date:   Wed Jul 15 10:24:18 2015 -0700

    payloads: Enable building depthcharge as part of the coreboot build
    
    For CHROMEOS builds, depthcharge can be built automatically.
    This dependency exists because depthcharge without vboot and subsequent
    signing of the image doesn't work very well, and both are keyed to that
    flag as well.
    
    Change-Id: Id0195bd3b4e454f382782106d6512469106daac5
    Signed-off-by: Stefan Reinauer <stefan.reinauer at coreboot.org>
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
---
 .gitignore                                 |  1 +
 payloads/Makefile.inc                      |  2 +
 payloads/external/Makefile.inc             |  9 ++++
 payloads/external/depthcharge/Kconfig      |  7 +++
 payloads/external/depthcharge/Kconfig.name |  8 ++++
 payloads/external/depthcharge/Makefile.inc | 71 ++++++++++++++++++++++++++++++
 6 files changed, 98 insertions(+)

diff --git a/.gitignore b/.gitignore
index 7b3797f..912aa85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@ abuild*.xml
 .ccwrap
 build/
 coreboot-builds/
+payloads/external/depthcharge/depthcharge/
 payloads/external/FILO/filo/
 payloads/external/GRUB2/grub2/
 payloads/external/SeaBIOS/seabios/
diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc
index 4269715..792df60 100644
--- a/payloads/Makefile.inc
+++ b/payloads/Makefile.inc
@@ -23,6 +23,7 @@ payloads/coreinfo/build/coreinfo.elf coreinfo:
 clean-payloads:
 	$(MAKE) -C payloads/coreinfo clean
 	$(MAKE) -C payloads/libpayload clean
+	$(MAKE) -C payloads/external/depthcharge -f Makefile.inc clean
 	$(MAKE) -C payloads/external/SeaBIOS -f Makefile.inc clean
 	$(MAKE) -C payloads/external/U-Boot -f Makefile.inc clean
 	$(MAKE) -C payloads/external/Memtest86Plus -f Makefile.inc clean
@@ -31,6 +32,7 @@ clean-payloads:
 distclean-payloads:
 	$(MAKE) -C payloads/coreinfo distclean
 	$(MAKE) -C payloads/libpayload distclean
+	$(MAKE) -C payloads/external/depthcharge -f Makefile.inc distclean
 	$(MAKE) -C payloads/external/SeaBIOS -f Makefile.inc distclean
 	$(MAKE) -C payloads/external/U-Boot -f Makefile.inc distclean
 	$(MAKE) -C payloads/external/Memtest86Plus -f Makefile.inc distclean
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 3c20e13..5a6f625 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -25,6 +25,10 @@ ifeq ($(CONFIG_PAYLOAD_FILO),y)
 PAYLOAD_CONFIG=payloads/external/FILO/filo/.config
 PAYLOAD_VERSION=payloads/external/FILO/filo/build/version.h
 endif
+ifeq ($(CONFIG_PAYLOAD_DEPTHCHARGE),y)
+PAYLOAD_CONFIG=payloads/external/depthcharge/depthcharge/.config
+#TODO: Figure out version
+endif
 
 cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_config
 payload_config-file := $(PAYLOAD_CONFIG)
@@ -59,6 +63,11 @@ payloads/external/SeaBIOS/seabios/out/vgabios.bin: seabios
 payloads/external/SeaBIOS/seabios/.config: payloads/external/SeaBIOS/seabios/out/bios.bin.elf
 payloads/external/SeaBIOS/seabios/out/autoversion.h: payloads/external/SeaBIOS/seabios/out/bios.bin.elf
 
+payloads/external/depthcharge/depthcharge/build/depthcharge.elf depthcharge: $(top)/$(DOTCONFIG) $(CBFSTOOL)
+	$(MAKE) -C payloads/external/depthcharge -f Makefile.inc \
+		BOARD=$(call ws_to_under,$(call strip_quotes,$(call tolower,$(CONFIG_MAINBOARD_PART_NUMBER)))) \
+		MFLAGS= MAKEFLAGS=
+
 filo:
 	$(MAKE) -C payloads/external/FILO -f Makefile.inc \
 			HOSTCC="$(HOSTCC)" \
diff --git a/payloads/external/depthcharge/Kconfig b/payloads/external/depthcharge/Kconfig
new file mode 100644
index 0000000..84b36e5
--- /dev/null
+++ b/payloads/external/depthcharge/Kconfig
@@ -0,0 +1,7 @@
+if PAYLOAD_DEPTHCHARGE
+
+config PAYLOAD_FILE
+	string
+	default "payloads/external/depthcharge/depthcharge/build/depthcharge.elf"
+
+endif
diff --git a/payloads/external/depthcharge/Kconfig.name b/payloads/external/depthcharge/Kconfig.name
new file mode 100644
index 0000000..bc564ec
--- /dev/null
+++ b/payloads/external/depthcharge/Kconfig.name
@@ -0,0 +1,8 @@
+config PAYLOAD_DEPTHCHARGE
+	bool "Depthcharge"
+	depends on CHROMEOS
+	help
+	  Select this option if you want to build a coreboot image
+	  with a depthcharge payload.
+
+	  See http://coreboot.org/Payloads for more information.
diff --git a/payloads/external/depthcharge/Makefile.inc b/payloads/external/depthcharge/Makefile.inc
new file mode 100644
index 0000000..4e76687
--- /dev/null
+++ b/payloads/external/depthcharge/Makefile.inc
@@ -0,0 +1,71 @@
+# release-R50-7978.B
+STABLE_COMMIT_ID=124af94fa5599a0698e59bf3d73675eb52fc6879
+
+project_name=depthcharge
+project_dir=$(CURDIR)/depthcharge
+project_git_repo=https://chromium.googlesource.com/chromiumos/platform/depthcharge
+project_config_file=$(project_dir)/.config
+output_dir=$(project_dir)/build
+libpayload_dir=$(abspath $(CURDIR)/../../libpayload)
+libpayload_install_dir=$(output_dir)/lp_$(BOARD)
+vboot_dir=$(abspath $(CURDIR)/../../../3rdparty/vboot)
+
+TAG-$(DEPTHCHARGE_MASTER)=origin/master
+TAG-$(DEPTHCHARGE_STABLE)=$(STABLE_COMMIT_ID)
+
+unexport KCONFIG_AUTOHEADER
+unexport KCONFIG_AUTOCONFIG
+unexport KCONFIG_DEPENDENCIES
+unexport KCONFIG_SPLITCONFIG
+unexport KCONFIG_TRISTATE
+unexport KCONFIG_NEGATIVES
+unexport src srck obj objk
+
+BOARD:=$(notdir $(CONFIG_MAINBOARD_DIR))
+
+all: build
+
+$(project_dir):
+	echo "    Cloning $(project_name) from Git"
+	git clone $(project_git_repo)
+
+fetch: $(project_dir)
+	cd $(project_dir); git show $(TAG-y) >/dev/null 2>&1 ;	if [ $$? -ne 0 ] || \
+		[ "$(TAG-y)" = "origin/master" ]; then \
+		echo "    Fetching new commits from the $(project_name) git repo"; \
+		git fetch; fi
+
+checkout: fetch
+	echo "    Checking out $(project_name) revision $(TAG-y)"
+	cd $(project_dir) ; git checkout master; git branch -D coreboot 2>/dev/null; git checkout -b coreboot $(TAG-y)
+
+$(libpayload_install_dir): $(project_dir)
+	test -f $(libpayload_dir)/configs/config.$(BOARD) || \
+		(echo "Error: $(libpayload_dir)/configs/config.$(BOARD) is not present" && \
+		false)
+	cp $(libpayload_dir)/configs/config.$(BOARD) $(libpayload_dir)/.config
+	$(MAKE) -C $(libpayload_dir) olddefconfig
+	$(MAKE) -C $(libpayload_dir)
+	$(MAKE) -C $(libpayload_dir) install DESTDIR=$(libpayload_install_dir)
+#	rm -f $(libpayload_dir)/.config
+
+config: $(libpayload_install_dir) checkout
+	echo "    CONFIG     project_name $(TAG-y)"
+	export VERSION=$$(cd depthcharge && \
+		git describe --tags --long --dirty 2>/dev/null || \
+		echo "unknown") ; \
+	cd $(project_dir) && $(MAKE) BOARD=$(BOARD) LIBPAYLOAD_DIR=$(libpayload_install_dir)/libpayload \
+		VB_SOURCE=$(vboot_dir) defconfig
+
+build: config
+	echo "    MAKE       $(project_name) $(TAG-y)"
+	cd $(project_dir) && $(MAKE) BOARD=$(BOARD) LIBPAYLOAD_DIR=$(libpayload_install_dir)/libpayload \
+		VB_SOURCE=$(vboot_dir) PATH="$(abspath ../../../build/util/cbfstool):$$PATH" depthcharge_unified
+
+clean:
+	test -d $(output_dir) && rm -rf $(output_dir) || exit 0
+
+distclean:
+	rm -rf $(project_dir)
+
+.PHONY: checkout config build clean distclean clone fetch



More information about the coreboot-gerrit mailing list