Revert "nuke memtest86+"

This reverts commit 84a1bc502b.
fsdg20230625
Leah Rowe 2021-11-01 02:51:10 +00:00
parent cca23ac713
commit 68d3c9372a
10 changed files with 174 additions and 1 deletions

1
.gitignore vendored
View File

@ -20,6 +20,7 @@
/flashrom/
/resources/coreboot/*/seen
/grub/
/memtest86plus/
/seabios/
/bin/
/release/

View File

@ -51,6 +51,7 @@ clean:
./build clean payloads
./build clean seabios
./build clean grub
./build clean memtest86plus
./build clean rom_images
./build clean tianocore

View File

@ -245,3 +245,9 @@ menuentry 'Load Tianocore UEFI payload' {
chainloader /tianocore.elf
}
fi
if [ -f (cbfsdisk)/img/memtest ]; then
menuentry 'Load MemTest86+ [m]' --hotkey='m' {
set root='cbfsdisk'
chainloader /img/memtest
}
fi

View File

@ -59,6 +59,7 @@ payload_seabios="n"
payload_seabios_withgrub="n" # i386-coreboot grub accessible from SeaBIOS boot menu
payload_tianocore="n"
seabios_opromloadonly="0"
payload_memtest="n"
# Override the above defaults using board.cfg
source "resources/coreboot/${board}/board.cfg"
if [ "${cbtree}" = "undefined" ]; then
@ -74,6 +75,10 @@ if [ "${seabios_opromloadonly}" != "0" ] && \
[ "${seabios_opromloadonly}" != "1" ]; then
seabios_opromloadonly="0"
fi
if [ "${payload_memtest}" != "n" ] && \
[ "${payload_memtest}" != "y" ]; then
payload_memtest="n"
fi
if [ "${payload_grub_withseabios}" = "y" ] \
|| [ "${payload_grub_withtianocore}" = "y" ]; then
payload_grub="y"
@ -104,6 +109,12 @@ if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] \
done
fi
if [ "${payload_memtest}" = "y" ]; then
if [ ! -f "memtest86plus/memtest" ]; then
./build module memtest86plus
fi
fi
romdir="bin/${board}"
cbdir="coreboot/${board}"
if [ "${board}" != "${cbtree}" ]; then
@ -415,6 +426,10 @@ mkRoms() {
mkRomWithTianocoreOnly "${corebootrom}" "${initmode}"
fi
if [ "${displaymode}" = "txtmode" ] && [ "${payload_memtest}" = "y" ]; then
"${cbfstool}" "${corebootrom}" add-payload -f memtest86plus/memtest -n img/memtest -c lzma
fi
if [ "${payload_seabios}" = "y" ]; then
if [ "${payload_seabios_withgrub}" = "n" ]; then
tmpseabiosrom="$(make_seabios_rom "${corebootrom}" "fallback/payload" "${seabios_opromloadonly}" "${initmode}" "${cbfstool}")"

View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
# helper script: clean the dependencies that were built in memtest86+
#
# Copyright (C) 2014, 2015 Leah Rowe <info@minifree.org>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
#
# 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, either version 3 of the License, or
# (at your option) any later version.
#
# 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.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This script assumes that the current working directory is the root
# of git or release archive
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
printf "Cleaning the previous build of MemTest86+\n"
[ ! -d "memtest86plus" ] && exit 0
# clean MemTest86+
make -C memtest86plus clean
printf "\n\n"

View File

@ -59,6 +59,11 @@ pacman -S --needed --noconfirm sharutils curl parted e2fsprogs unzip
# for cross-compiling ARM binaries
pacman -S --needed --noconfirm arm-none-eabi-gcc
# Memtest86+ build dependencies
# ------------------------------------------------------------
pacman -S --needed --noconfirm base-devel python2
# i945-pwm build dependencies
# ------------------------------------------------------------

View File

@ -73,6 +73,11 @@ if [ "${arch}" -eq 0 ]; then
apt-get -y install lib32tinfo-dev
fi
# Memtest86+ build dependencies
# ------------------------------------------------------------
apt-get -y install build-essential python2.7
# i945-pwm build dependencies
# ------------------------------------------------------------

View File

@ -0,0 +1,37 @@
#!/usr/bin/env bash
# helper script: builds memtest86+ source code
#
# Copyright (C) 2014, 2015, 2020 Leah Rowe <info@minifree.org>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
#
# 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, either version 3 of the License, or
# (at your option) any later version.
#
# 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.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This script assumes that the working directory is the root
# of git or release archive
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
# Build MemTest86+ payload
# --------------------------------------------------------------------
printf "Building MemTest86+\n"
if [ ! -d "memtest86plus/" ]; then
./download memtest86plus
fi
make -j$(nproc) -BC memtest86plus

View File

@ -53,7 +53,7 @@ mkdir -p "${srcdir}/"
printf "%s" "${version}" > "${srcdir}"/version
modlist="coreboot flashrom grub seabios ich9utils"
modlist="coreboot flashrom grub memtest86plus seabios ich9utils"
dirlist="resources"
filelist="download build README.md COPYING Makefile update version versiondate projectname"

View File

@ -0,0 +1,68 @@
#!/usr/bin/env bash
# helper script: Downloads MemTest86+ and patches it
#
# Copyright (C) 2014, 2015, 2020, 2021 Leah Rowe <info@minifree.org>
# Copyright (C) 2015 Joseph Michael Thompson <jmt@josepht.me>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
#
# 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, either version 3 of the License, or
# (at your option) any later version.
#
# 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.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
# Get the last version of MemTest86+ used, apply patches, build it.
# Remove the old version that may exist
# ------------------------------------------------------------------------------
printf "Downloading MemTest86+\n"
rm -Rf "memtest86plus/"
# Get latest memtest86+:
# ------------------------------------------------------------------------------
# download it using wget
wget http://memtest.org/download/5.31b/memtest86+-5.31b.tar.gz
if [ "$(sha512sum memtest86+-5.31b.tar.gz | cut -c1-128)" = "ad5891fd0c430ce7a5d0cde2d10dee20b66ad8060d47c3e70e038461d9cde3a78dfc13442b5b09da7c662741945a670353c72dbc08fd5ee8bae82256001a9541" ]; then
printf "Valid checksum for memtest86plus\n"
else
rm -f "memtest86+-5.31b.tar.gz"
printf "Invalid checksum for memtest86plus, or memtest86plus not downloaded\n"
exit 1
fi
# extract it
tar -xzf "memtest86+-5.31b.tar.gz"
# delete the tar file (no longer needed)
rm -f "memtest86+-5.31b.tar.gz"
# make direcotory name consistent
mv "memtest86+-5.31b/" "memtest86plus/"
# Apply necessary patches
# ------------------------------------------------------------------------------
(
cd "memtest86plus/"
for patch in ../resources/memtest86plus/patch/*; do
patch < "${patch}"
done
)
printf "\n\n"