payloads/external: add skiboot (for QEMU/Power9)

Add an option to build skiboot as a payload. This makes QEMU Power9
board simpler to use as skiboot is necessary anyway.

Change-Id: I0b49ea7464c97cc2ff0d5030629deed549851372
Signed-off-by: Igor Bagnucki <igor.bagnucki@3mdeb.com>
Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/58656
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
This commit is contained in:
Sergii Dmytruk
2021-10-27 00:23:14 +03:00
committed by Felix Held
parent 8d436cfc1a
commit a816c29882
8 changed files with 105 additions and 8 deletions

View File

@@ -8,3 +8,5 @@ tint/tint/
U-Boot/u-boot/
Memtest86Plus/memtest86plus/
iPXE/ipxe/
skiboot/skiboot
skiboot/build

View File

@@ -332,3 +332,10 @@ payloads/external/Yabits/uefi/build/uefi.elf yabits:
payloads/external/BOOTBOOT/bootboot/dist/bootbootcb.elf:
$(MAKE) -C payloads/external/BOOTBOOT all
# skiboot
payloads/external/skiboot/build/skiboot.elf:
$(MAKE) -C payloads/external/skiboot all \
CONFIG_SKIBOOT_GIT_REPO=$(CONFIG_SKIBOOT_GIT_REPO) \
CONFIG_SKIBOOT_REVISION=$(CONFIG_SKIBOOT_REVISION)

21
payloads/external/skiboot/Kconfig vendored Normal file
View File

@@ -0,0 +1,21 @@
## SPDX-License-Identifier: GPL-2.0-only
if PAYLOAD_SKIBOOT
config PAYLOAD_FILE
default "payloads/external/skiboot/build/skiboot.elf"
config SKIBOOT_GIT_REPO
string "Git repository of skiboot payload"
default "https://github.com/open-power/skiboot"
help
Git repository which will be used to clone skiboot.
config SKIBOOT_REVISION
string "Revision of skiboot payload"
default "d93ddbd39b4eeac0bc11dacbdadea76df2996c13" if BOARD_EMULATION_QEMU_POWER9
help
Revision, that skiboot repository will be checked out to, before building
an image.
endif # PAYLOAD_SKIBOOT

View File

@@ -0,0 +1,8 @@
## SPDX-License-Identifier: GPL-2.0-only
config PAYLOAD_SKIBOOT
bool "skiboot"
depends on ARCH_PPC64
help
Select this option if you want to build a coreboot image
with a skiboot payload.

36
payloads/external/skiboot/Makefile vendored Normal file
View File

@@ -0,0 +1,36 @@
## SPDX-License-Identifier: GPL-2.0-only
build_dir=$(CURDIR)/build
skiboot_dir=$(CURDIR)/skiboot
skiboot_git_repo=$(CONFIG_SKIBOOT_GIT_REPO)
skiboot_revision=$(CONFIG_SKIBOOT_REVISION)
skiboot_elf=$(build_dir)/skiboot.elf
skiboot_cross=$(or $(CROSS),powerpc64-linux-gnu-)
unexport $(COREBOOT_EXPORTS)
.PHONY: all clean distclean
all: $(skiboot_elf)
$(skiboot_elf): | $(skiboot_dir) $(build_dir)
+$(MAKE) -C $(skiboot_dir) CROSS="$(skiboot_cross)"
cp $(skiboot_dir)/skiboot.elf $@
# skiboot is always built with debug information due to unconditional -ggdb
$(skiboot_cross)strip $@
$(skiboot_dir):
git clone $(skiboot_git_repo) $(skiboot_dir)
git -C $(skiboot_dir) checkout $(skiboot_revision)
$(build_dir):
mkdir -p $(build_dir)
distclean: clean
rm -rf $(skiboot_dir)
clean:
# Redefine RM because it's used like `$(RM) non-existent-file`
# Also ignore useless messages about removing test files
[ ! -d $(skiboot_dir) ] || $(MAKE) -C $(skiboot_dir) RM="rm -rf" clean > /dev/null
rm -rf $(build_dir)