summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payloads/Kconfig23
-rw-r--r--payloads/external/Makefile.inc2
-rw-r--r--payloads/external/Memtest86Plus/Kconfig.secondary42
-rw-r--r--payloads/external/Memtest86Plus/Makefile9
4 files changed, 55 insertions, 21 deletions
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"; \