From a07366c9f90a623081adfb426920cd8cf6d81f61 Mon Sep 17 00:00:00 2001 From: Stefan Tauner Date: Sun, 19 Aug 2018 17:48:53 +0200 Subject: [PATCH] payloads/external/Memtest86Plus: allow for selecting a specific revision Because the Kconfig configuration files for primary payloads are already sourced via a wildcard pattern this change requires to use another file name pattern. Change-Id: I83b89f5e14618e8a487ebb044fcdd3c175662591 Signed-off-by: Stefan Tauner Reviewed-on: https://review.coreboot.org/28217 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Martin Roth --- payloads/Kconfig | 23 +--------- payloads/external/Makefile.inc | 2 + .../external/Memtest86Plus/Kconfig.secondary | 42 +++++++++++++++++++ payloads/external/Memtest86Plus/Makefile | 9 ++++ 4 files changed, 55 insertions(+), 21 deletions(-) create mode 100644 payloads/external/Memtest86Plus/Kconfig.secondary diff --git a/payloads/Kconfig b/payloads/Kconfig index 15d0417d35..5e76ebee79 100644 --- a/payloads/Kconfig +++ b/payloads/Kconfig @@ -129,27 +129,6 @@ config MEMTEST_SECONDARY_PAYLOAD Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB, or any other payload that can load additional payloads. -choice - prompt "Memtest86+ version" - default MEMTEST_STABLE - depends on MEMTEST_SECONDARY_PAYLOAD - -config MEMTEST_STABLE - bool "Stable" - help - Stable Memtest86+ version. - - For reproducible builds, this option must be selected. -config MEMTEST_MASTER - bool "Master" - help - Newest Memtest86+ version. - - This option will fetch the newest version of the Memtest86+ code, - updating as new changes are committed. This makes the build - non-reproducible, as it can fetch different code each time. -endchoice - config NVRAMCUI_SECONDARY_PAYLOAD bool "Load nvramcui as a secondary payload" default n @@ -166,5 +145,7 @@ config TINT_SECONDARY_PAYLOAD tint can be loaded as a secondary payload under SeaBIOS, GRUB, or any other payload that can load additional payloads. +source "payloads/external/*/Kconfig.secondary" + endmenu # "Secondary Payloads" endmenu diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc index 13d999e14f..f350622738 100644 --- a/payloads/external/Makefile.inc +++ b/payloads/external/Makefile.inc @@ -218,6 +218,8 @@ payloads/external/Memtest86Plus/memtest86plus/memtest: $(DOTCONFIG) LD="$(LD_x86_32)" \ OBJCOPY="$(OBJCOPY_x86_32)" \ AS="$(AS_x86_32)" \ + CONFIG_MEMTEST_REVISION=$(CONFIG_MEMTEST_REVISION) \ + CONFIG_MEMTEST_REVISION_ID=$(CONFIG_MEMTEST_REVISION_ID) \ CONFIG_MEMTEST_MASTER=$(CONFIG_MEMTEST_MASTER) \ CONFIG_MEMTEST_STABLE=$(CONFIG_MEMTEST_STABLE) \ $(MEMTEST_SERIAL_OPTIONS) \ diff --git a/payloads/external/Memtest86Plus/Kconfig.secondary b/payloads/external/Memtest86Plus/Kconfig.secondary new file mode 100644 index 0000000000..7c4da9e509 --- /dev/null +++ b/payloads/external/Memtest86Plus/Kconfig.secondary @@ -0,0 +1,42 @@ +if MEMTEST_SECONDARY_PAYLOAD + +choice + prompt "Memtest86+ version" + default MEMTEST_STABLE + depends on MEMTEST_SECONDARY_PAYLOAD + +config MEMTEST_STABLE + bool "Stable" + help + Stable Memtest86+ version. + + For reproducible builds, this option must be selected. +config MEMTEST_MASTER + bool "Master" + help + Newest Memtest86+ version. + + This option will fetch the newest version of the Memtest86+ code, + updating as new changes are committed. This makes the build + non-reproducible, as it can fetch different code each time. +config MEMTEST_REVISION + bool "git revision" + help + Select this option if you have a specific commit or branch + that you want to use as the revision from which to + build Memtest86+. This makes the build + non-reproducible, as it can fetch different code each time. + + You will be able to specify the name of a branch or a commit id + later. + +endchoice + +config MEMTEST_REVISION_ID + string "Insert a commit's SHA-1 or a branch name" + depends on MEMTEST_REVISION + default "origin/master" + help + The commit's SHA-1 or branch name of the revision to use. + +endif diff --git a/payloads/external/Memtest86Plus/Makefile b/payloads/external/Memtest86Plus/Makefile index 2136495469..4b3132ddf5 100644 --- a/payloads/external/Memtest86Plus/Makefile +++ b/payloads/external/Memtest86Plus/Makefile @@ -17,6 +17,7 @@ TAG-$(CONFIG_MEMTEST_MASTER)=origin/master NAME-$(CONFIG_MEMTEST_MASTER)=Master TAG-$(CONFIG_MEMTEST_STABLE)=3754fd440f4009b62244e0f95c56bbb12c2fffcb NAME-$(CONFIG_MEMTEST_STABLE)=Stable +TAG-$(CONFIG_MEMTEST_REVISION)=$(CONFIG_MEMTEST_REVISION_ID) project_name=Memtest86+ project_dir=$(CURDIR)/memtest86plus @@ -29,6 +30,14 @@ $(project_dir): git clone $(project_git_repo) $(project_dir) fetch: $(project_dir) +ifeq ($(TAG-y),) + echo "Error: The specified tag is invalid" +ifeq ($(CONFIG_MEMTEST_REVISION),y) + echo "Error: There is no revision specified for $(project_name)" + false +endif + false +endif -cd $(project_dir); git show $(TAG-y) >/dev/null 2>&1 ; \ if [ $$? -ne 0 ] || [ "$(TAG-y)" = "origin/master" ]; then \ echo " Fetching new commits from the $(project_name) git repo"; \