summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payloads/external/BOOTBOOT/Kconfig6
-rw-r--r--payloads/external/BOOTBOOT/Kconfig.name8
-rw-r--r--payloads/external/BOOTBOOT/Makefile44
-rw-r--r--payloads/external/Makefile.inc5
4 files changed, 63 insertions, 0 deletions
diff --git a/payloads/external/BOOTBOOT/Kconfig b/payloads/external/BOOTBOOT/Kconfig
new file mode 100644
index 0000000000..c9d7133b71
--- /dev/null
+++ b/payloads/external/BOOTBOOT/Kconfig
@@ -0,0 +1,6 @@
+if PAYLOAD_BOOTBOOT
+
+config PAYLOAD_FILE
+ default "payloads/external/BOOTBOOT/bootboot/dist/bootbootcb.elf"
+
+endif
diff --git a/payloads/external/BOOTBOOT/Kconfig.name b/payloads/external/BOOTBOOT/Kconfig.name
new file mode 100644
index 0000000000..082a9b1ec2
--- /dev/null
+++ b/payloads/external/BOOTBOOT/Kconfig.name
@@ -0,0 +1,8 @@
+config PAYLOAD_BOOTBOOT
+ bool "BOOTBOOT"
+ depends on ARCH_X86 || ARCH_ARM64
+ help
+ Select this option if you want to build a coreboot image
+ with a BOOTBOOT Protocol payload.
+
+ See https://gitlab.com/bztsrc/bootboot for more information.
diff --git a/payloads/external/BOOTBOOT/Makefile b/payloads/external/BOOTBOOT/Makefile
new file mode 100644
index 0000000000..2460c183bb
--- /dev/null
+++ b/payloads/external/BOOTBOOT/Makefile
@@ -0,0 +1,44 @@
+project_git_repo=https://gitlab.com/bztsrc/bootboot.git
+project_dir=bootboot
+ifeq ($(CONFIG_COREBOOT_BUILD),)
+include ../../../.config
+endif
+ifeq ($(CONFIG_ARCH_ARM64),y)
+loader_dir=$(project_dir)/aarch64-cb
+else
+loader_dir=$(project_dir)/x86_64-cb
+endif
+
+unexport KCONFIG_AUTOHEADER
+unexport KCONFIG_AUTOCONFIG
+unexport KCONFIG_DEPENDENCIES
+unexport KCONFIG_SPLITCONFIG
+unexport KCONFIG_TRISTATE
+unexport KCONFIG_NEGATIVES
+
+all: bootboot
+
+checkout:
+ echo " GIT BOOTBOOT $(loader_dir)"
+ test -L $(project_dir) || test -d $(project_dir) || \
+ git clone $(project_git_repo) $(project_dir)
+
+bootboot: libpayload
+ echo " MAKE $(loader_dir)"
+ $(MAKE) -C $(loader_dir) LIBCONFIG_PATH=../../../libpayload
+
+libpayload: checkout
+ cp $(loader_dir)/lib.config ../../libpayload/.config
+ cd ../../libpayload && $(MAKE) oldconfig && \
+ $(MAKE) && $(MAKE) DESTDIR=../external/BOOTBOOT/$(loader_dir) install
+
+clean:
+ test -d $(loader_dir) && $(MAKE) -C $(loader_dir) clean || exit 0
+
+distclean:
+ rm -rf $(project_dir)
+
+print-repo-info:
+ echo "$(project_git_repo) $(project_dir)"
+
+.PHONY: checkout bootboot libpayload clean distclean print-repo-info
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index ef0990c9b7..da199e4bd3 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -303,3 +303,8 @@ payloads/external/Yabits/uefi/build/uefi.elf yabits:
CONFIG_YABITS_MASTER=$(CONFIG_YABITS_MASTER) \
CONFIG_YABITS_STABLE=$(CONFIG_YABITS_STABLE) \
MFLAGS= MAKEFLAGS=
+
+# BOOTBOOT
+
+payloads/external/BOOTBOOT/bootboot/dist/bootbootcb.elf:
+ $(MAKE) -C payloads/external/BOOTBOOT all