diff options
author | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2015-07-15 10:24:18 -0700 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2016-03-15 21:18:22 +0100 |
commit | 9125073d2af2e1c34977c9caeb5f9c5710d5b9c4 (patch) | |
tree | d959be4c96e4bdb1d6a8b69190f87da89f509a34 /payloads/external | |
parent | 730d47537e947eff439b33a6d3847abdd2a5a2ef (diff) |
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@coreboot.org>
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-on: https://review.coreboot.org/10924
Tested-by: build bot (Jenkins)
Diffstat (limited to 'payloads/external')
-rw-r--r-- | payloads/external/Makefile.inc | 9 | ||||
-rw-r--r-- | payloads/external/depthcharge/Kconfig | 7 | ||||
-rw-r--r-- | payloads/external/depthcharge/Kconfig.name | 8 | ||||
-rw-r--r-- | payloads/external/depthcharge/Makefile.inc | 71 |
4 files changed, 95 insertions, 0 deletions
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc index 3c20e13cdf..5a6f6254ad 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 0000000000..84b36e5a99 --- /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 0000000000..bc564ec60d --- /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 0000000000..4e766870fc --- /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 |