summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stefan.reinauer@coreboot.org>2015-07-15 10:24:18 -0700
committerStefan Reinauer <stefan.reinauer@coreboot.org>2016-03-15 21:18:22 +0100
commit9125073d2af2e1c34977c9caeb5f9c5710d5b9c4 (patch)
treed959be4c96e4bdb1d6a8b69190f87da89f509a34
parent730d47537e947eff439b33a6d3847abdd2a5a2ef (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)
-rw-r--r--.gitignore1
-rw-r--r--payloads/Makefile.inc2
-rw-r--r--payloads/external/Makefile.inc9
-rw-r--r--payloads/external/depthcharge/Kconfig7
-rw-r--r--payloads/external/depthcharge/Kconfig.name8
-rw-r--r--payloads/external/depthcharge/Makefile.inc71
6 files changed, 98 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 7b3797f78c..912aa85eb2 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 4269715a72..792df606f9 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 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