payloads: Load coreinfo as a secondary payload
This allows coreinfo to be added to CBFS as a 'secondary'
payload on x86 systems, to be loaded by the main payload
if desired.
Selecting this option, which defaults to no, builds the coreinfo
payload and adds it to CBFS as `img/coreinfo` which can then be
loaded by for example SeaBIOS or GRUB.
Change-Id: I52661d486823bc4bb215ce92dca118c9d2c2a309
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://review.coreboot.org/13728
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/Makefile.inc b/Makefile.inc
index 1889128..68012d9 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -74,7 +74,7 @@
subdirs-y += util/futility util/marvell
subdirs-y += $(wildcard src/arch/*)
subdirs-y += src/mainboard/$(MAINBOARDDIR)
-subdirs-y += payloads/external
+subdirs-y += payloads payloads/external
subdirs-y += site-local
diff --git a/payloads/Kconfig b/payloads/Kconfig
index 9037b30..01bd216 100644
--- a/payloads/Kconfig
+++ b/payloads/Kconfig
@@ -59,5 +59,12 @@
Add the payload to cbfs as a flat binary type instead of as an
elf payload
-endmenu
+config COREINFO_SECONDARY_PAYLOAD
+ bool "Load coreinfo as a secondary payload"
+ default n
+ depends on ARCH_X86
+ help
+ coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
+ or any other payload that can load additional payloads.
+endmenu
diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc
new file mode 100644
index 0000000..1bd8cf7
--- /dev/null
+++ b/payloads/Makefile.inc
@@ -0,0 +1,21 @@
+##
+## This file is part of the coreboot project.
+##
+## Copyright (C) 2016 Google Inc.
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; version 2 of the License.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+
+cbfs-files-$(CONFIG_COREINFO_SECONDARY_PAYLOAD) += img/coreinfo
+img/coreinfo-file := payloads/coreinfo/build/coreinfo.elf
+img/coreinfo-type := payload
+
+payloads/coreinfo/build/coreinfo.elf coreinfo:
+ $(MAKE) -C payloads/coreinfo defaultbuild