diff options
author | Martin Roth <martinroth@google.com> | 2016-02-28 15:56:27 -0800 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-03-05 22:57:53 +0100 |
commit | be63a24c4ce29e7e9f096b9ebd94e6d5a65f24a9 (patch) | |
tree | 8ffdd441bcfd8d05d92f77259ed57397833b535b | |
parent | f7fd63066fe3b74a1ae10fa6eabf2605d5730449 (diff) |
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@google.com>
Reviewed-on: https://review.coreboot.org/13858
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Ben Gardner <gardner.ben@gmail.com>
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | payloads/Kconfig | 8 | ||||
-rw-r--r-- | payloads/external/Makefile.inc | 19 | ||||
-rw-r--r-- | payloads/external/Memtest86Plus/Makefile.inc | 42 |
4 files changed, 70 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index 581c4a4a3f..7b3797f78c 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 01bd216d23..6ae2ecd4e2 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 6a76020ffe..557de2ad83 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 0000000000..ceb1f5ceae --- /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 |