[coreboot-gerrit] Patch set updated for coreboot: BuildSystem: Add Memtest86+ as a secondary payload

Martin Roth (martinroth@google.com) gerrit at coreboot.org
Fri Mar 4 16:23:41 CET 2016


Martin Roth (martinroth at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13858

-gerrit

commit 6dbca6030e6e77db6010f346a8dede6c49b3404b
Author: Martin Roth <martinroth at google.com>
Date:   Sun Feb 28 15:56:27 2016 -0800

    BuildSystem: Add Memtest86+ as a secondary payload
    
    This allows memtest86+ 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 memtest86+
    payload and adds it to CBFS as `img/memtest` which can then be
    loaded by for example SeaBIOS or GRUB.
    
    Change-Id: Iecf876aaf588ba1df7abdf6668cb26f089bf5f42
    Signed-off-by: Martin Roth <martinroth at google.com>
---
 .gitignore                                   |  1 +
 payloads/Kconfig                             |  8 ++++++
 payloads/external/Makefile.inc               | 19 +++++++++++++
 payloads/external/Memtest86Plus/Makefile.inc | 42 ++++++++++++++++++++++++++++
 4 files changed, 70 insertions(+)

diff --git a/.gitignore b/.gitignore
index 581c4a4..7b3797f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@ payloads/external/FILO/filo/
 payloads/external/GRUB2/grub2/
 payloads/external/SeaBIOS/seabios/
 payloads/external/U-Boot/u-boot/
+payloads/external/Memtest86Plus/memtest86plus/
 util/crossgcc/acpica-unix-*/
 util/crossgcc/binutils-*/
 util/crossgcc/build-*BINUTILS/
diff --git a/payloads/Kconfig b/payloads/Kconfig
index 01bd216..6ae2ecd 100644
--- a/payloads/Kconfig
+++ b/payloads/Kconfig
@@ -67,4 +67,12 @@ config COREINFO_SECONDARY_PAYLOAD
 	  coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
 	  or any other payload that can load additional payloads.
 
+config MEMTEST_SECONDARY_PAYLOAD
+	bool "Load Memtest86+ as a secondary payload"
+	default n
+	depends on ARCH_X86  && !PAYLOAD_NONE
+	help
+	  Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
+	  or any other payload that can load additional payloads.
+
 endmenu
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 6a76020..557de2a 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -82,3 +82,22 @@ payloads/external/U-Boot/u-boot/u-boot-dtb.bin u-boot: $(top)/$(DOTCONFIG)
 	$(MAKE) -C payloads/external/U-Boot -f Makefile.inc \
 			CONFIG_UBOOT_MASTER=$(CONFIG_UBOOT_MASTER) \
 			CONFIG_UBOOT_STABLE=$(CONFIG_UBOOT_STABLE)
+
+cbfs-files-$(CONFIG_MEMTEST_SECONDARY_PAYLOAD) += img/memtest
+img/memtest-file := payloads/external/Memtest86Plus/memtest86plus/memtest
+img/memtest-type := payload
+
+ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
+	MEMTEST_SERIAL_OPTIONS=SERIAL_CONSOLE_DEFAULT=1 \
+		SERIAL_TTY=$(CONFIG_UART_FOR_CONSOLE) \
+		SERIAL_BAUD_RATE=$(CONFIG_TTYS0_BAUD)
+endif
+
+payloads/external/Memtest86Plus/memtest86plus/memtest: $(top)/$(DOTCONFIG)
+	$(MAKE) -C payloads/external/Memtest86Plus -f Makefile.inc all \
+		CC="$(CC_x86_32)" \
+		LD="$(LD_x86_32)" \
+		OBJCOPY="$(OBJCOPY_x86_32)" \
+		AS="$(AS_x86_32)" \
+		$(MEMTEST_SERIAL_OPTIONS) \
+		MFLAGS= MAKEFLAGS=
diff --git a/payloads/external/Memtest86Plus/Makefile.inc b/payloads/external/Memtest86Plus/Makefile.inc
new file mode 100644
index 0000000..ceb1f5c
--- /dev/null
+++ b/payloads/external/Memtest86Plus/Makefile.inc
@@ -0,0 +1,42 @@
+##
+## 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.
+##
+
+project_name=Memtest86+
+project_dir=$(shell pwd)/memtest86plus
+project_git_repo=https://review.coreboot.org/memtest86plus
+
+all: build
+
+$(project_dir):
+	echo "    Cloning $(project_name) from Git"
+	git clone $(project_git_repo) $(project_dir)
+
+fetch: $(project_dir)
+	cd $(project_dir); \
+		test -e '.git' && \
+		git fetch && \
+		git checkout origin/master
+
+build: fetch
+	echo "    MAKE       $(project_name)"
+	$(MAKE) -C $(project_dir) all
+
+clean:
+	test -d $(project_dir) && $(MAKE) -C $(project_dir) clean || exit 0
+
+distclean:
+	rm -rf $(project_dir)
+
+.PHONY: all build fetch clean distclean



More information about the coreboot-gerrit mailing list