From 0db0e61f6491ac64016e8ebcb45ab9950a2c7c79 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Tue, 2 Feb 2016 14:43:56 +0100 Subject: chromeos: Create GBB at build time The GBB contains hardware-specific data plus some configuration. The latter isn't supported by this change yet and will come later. The fields that are supported (hardware ID, bmpfv, vboot keys) are configurable through Kconfig and point to Chrome OS-style default (eg. developer keys). While adding vboot keys, the two keys used to sign RW regions are also added to Kconfig, even if not yet used. Change-Id: Icfba6061ca83182df560cd36052fbb257826d4b0 Signed-off-by: Patrick Georgi Reviewed-on: https://review.coreboot.org/13558 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Stefan Reinauer --- src/vendorcode/google/chromeos/Makefile.inc | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/vendorcode/google/chromeos/Makefile.inc') diff --git a/src/vendorcode/google/chromeos/Makefile.inc b/src/vendorcode/google/chromeos/Makefile.inc index 3f016a5a58..8e12e3a5c3 100644 --- a/src/vendorcode/google/chromeos/Makefile.inc +++ b/src/vendorcode/google/chromeos/Makefile.inc @@ -51,3 +51,35 @@ CFLAGS_common += -DMOCK_TPM=0 endif subdirs-$(CONFIG_VBOOT_VERIFY_FIRMWARE) += vboot2 + +CONFIG_GBB_HWID := $(call strip_quotes,$(CONFIG_GBB_HWID)) +CONFIG_GBB_BMPFV_FILE := $(call strip_quotes,$(CONFIG_GBB_BMPFV_FILE)) + +ifneq ($(CONFIG_GBB_BMPFV_FILE),) +$(obj)/gbb.stub: $(obj)/coreboot.rom $(FUTILITY) + @printf " CREATE GBB (with BMPFV)\n" + $(CBFSTOOL) $< read -r GBB -f $(obj)/gbb.stub.tmp + $(FUTILITY) gbb_utility -c 0x100,0x1000,$(call int-subtract $(call file-size,$(obj)/gbb.stub.tmp) 0x2180),0x1000 $@.tmp + rm -f $(obj)/gbb.stub.tmp + mv $@.tmp $@ +else +$(obj)/gbb.stub: $(obj)/coreboot.rom $(FUTILITY) + @printf " CREATE GBB (without BMPFV)\n" + $(FUTILITY) gbb_utility -c 0x100,0x1000,0,0x1000 $@.tmp + mv $@.tmp $@ +endif + +$(obj)/gbb.region: $(obj)/gbb.stub + @printf " SETUP GBB\n" + cp $< $@.tmp + $(FUTILITY) gbb_utility -s \ + --hwid="$(CONFIG_GBB_HWID)" \ + --rootkey="$(CONFIG_VBOOT_ROOT_KEY)" \ + --recoverykey="$(CONFIG_VBOOT_RECOVERY_KEY)" \ + --flags=0 \ + $@.tmp + mv $@.tmp $@ + +build_complete:: $(obj)/gbb.region + @printf " WRITE GBB\n" + $(CBFSTOOL) $(obj)/coreboot.rom write -u -r GBB -f $< -- cgit v1.2.3