Matt DeVillier has uploaded this change for review.

View Change

payloads/tianocore: Add option for custom bootsplash

Add Kconfig options to use custom bootsplash file,
dependent on using MrChromebox's stable branch, with
help info conveying required file format.

Adjust Makefile to copy the custom bootsplash and
overwrite the default Logo.bmp file, handling both
absolute and relative paths, and restore the original
logo file after building so as to keep the working
directory clean.

Test: build with and without custom bootsplash, ensure
correct bootsplash displayed

Change-Id: I164f46777169801cff56633fd920bc81b7c8129a
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
---
M payloads/external/Makefile.inc
M payloads/external/tianocore/Kconfig
M payloads/external/tianocore/Makefile
3 files changed, 32 insertions(+), 1 deletion(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/61/31561/1
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 4fda725..7249553 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -135,6 +135,7 @@
CONFIG_TIANOCORE_DEBUG=$(CONFIG_TIANOCORE_DEBUG) \
CONFIG_TIANOCORE_TARGET_IA32=$(CONFIG_TIANOCORE_TARGET_IA32) \
CONFIG_TIANOCORE_USE_8254_TIMER=$(CONFIG_TIANOCORE_USE_8254_TIMER) \
+ CONFIG_TIANOCORE_BOOTSPLASH_FILE="$(CONFIG_TIANOCORE_BOOTSPLASH_FILE)" \
GCC_CC_x86_32=$(GCC_CC_x86_32) \
GCC_CC_x86_64=$(GCC_CC_x86_64) \
GCC_CC_arm=$(GCC_CC_arm) \
diff --git a/payloads/external/tianocore/Kconfig b/payloads/external/tianocore/Kconfig
index 79e09e6..12010ea 100644
--- a/payloads/external/tianocore/Kconfig
+++ b/payloads/external/tianocore/Kconfig
@@ -87,4 +87,24 @@
help
Use 8254 Timer for legacy support.

+config TIANOCORE_BOOTSPLASH_IMAGE
+ bool "Use a custom bootsplash image"
+ depends on TIANOCORE_STABLE
+ help
+ Select this option if you have a bootsplash image that you would
+ like to be used. If this option is not selected, the default
+ coreboot logo (European Brown Hare) will used.
+
+config TIANOCORE_BOOTSPLASH_FILE
+ string "Tianocore Bootsplash path and filename"
+ depends on TIANOCORE_BOOTSPLASH_IMAGE
+ default "bootsplash.bmp"
+ help
+ The path and filename of the file to use as graphical bootsplash
+ screen. The file format must be uncompressed BMP, and the file's
+ resolution must be less than the native resolution of the display.
+
+ If an absolute path is not given, the path will assumed to be
+ relative to the coreboot root directory.
+
endif
diff --git a/payloads/external/tianocore/Makefile b/payloads/external/tianocore/Makefile
index e4f395f..989f723 100644
--- a/payloads/external/tianocore/Makefile
+++ b/payloads/external/tianocore/Makefile
@@ -87,6 +87,15 @@
build: $(project_dir)/.version_$(TAG-y) checktools
unset CC; $(MAKE) -C $(project_dir)/BaseTools
echo " build $(project_name) $(TAG-y)"
+ if [ -n "$(CONFIG_TIANOCORE_BOOTSPLASH_FILE)" ]; then \
+ echo " Copying custom bootsplash image"; \
+ if [[ "$(CONFIG_TIANOCORE_BOOTSPLASH_FILE)" = /* ]]; then \
+ cp "$(CONFIG_TIANOCORE_BOOTSPLASH_FILE)" "$(project_dir)/CorebootPayloadPkg/Logo/Logo.bmp"; \
+ else \
+ cp "$$(dirname "$$(dirname "$$(dirname "$(CURDIR)")")")/$(CONFIG_TIANOCORE_BOOTSPLASH_FILE)" \
+ "$(project_dir)/CorebootPayloadPkg/Logo/Logo.bmp"; \
+ fi; \
+ fi; \
cd $(project_dir); \
export EDK_TOOLS_PATH=$(project_dir)/BaseTools; \
export WORKSPACE=$(project_dir); \
@@ -96,7 +105,8 @@
cat ../tools_def.txt >> $(project_dir)/Conf/tools_def.txt; \
fi; \
build $(BUILD_STR); \
- mv $(project_dir)/Build/CorebootPayloadPkg*/*/FV/UEFIPAYLOAD.fd $(project_dir)/Build/UEFIPAYLOAD.fd
+ mv $(project_dir)/Build/CorebootPayloadPkg*/*/FV/UEFIPAYLOAD.fd $(project_dir)/Build/UEFIPAYLOAD.fd; \
+ git checkout CorebootPayloadPkg/Logo/Logo.bmp > /dev/null 2>&1

clean:
test -d $(project_dir) && (cd $(project_dir); rm -rf Build; rm -f Conf/tools_def.txt) || exit 0

To view, visit change 31561. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I164f46777169801cff56633fd920bc81b7c8129a
Gerrit-Change-Number: 31561
Gerrit-PatchSet: 1
Gerrit-Owner: Matt DeVillier <matt.devillier@gmail.com>
Gerrit-MessageType: newchange