remove logic for avoiding nonredistributable blobs

the --nuke option in ifdtool will be used instead, to nuke
the ME regions in specific rom sets (and cbfstool will be
used to delete mrc.bin files from rom sets)

the new method being implemented is heavier on disk io, but
simplifies lbmk, and disk io could still be optimised in
the following ways:

* when copying roms from boards with ME in them, use
  ifdtool --nuke to get filename.rom.new, and *move* (not copy)
  filename.rom.new to the new destination (for use with tar)

* possibly modify ifdtool to make efficient use of mmap for
  disk i/o; it currently loads entire roms into an allocated
  buffer in memory
fsdg20230625
Leah Rowe 2022-12-05 00:10:07 +00:00
parent 7679c8e0f0
commit 137b5434d7
4 changed files with 6 additions and 54 deletions

View File

@ -7,13 +7,6 @@ board="${1}"
# A shorthand for each board so as not to duplicate blobs for boards of different sizes
board_short=${board%%_*mb}
# Allow adding only blobs that can be legally redistributed (ifd+gbe)
if [ "${2}" = "redistributable" ]; then
redistributable=true
else
redistributable=false
fi
Fail(){
printf "\nERROR: $@\n"
exit 1
@ -102,10 +95,8 @@ set -- "resources/coreboot/${board}/config/*"
. "resources/coreboot/${board}/board.cfg"
if [ "${CONFIG_HAVE_MRC}" = "y" ]; then
if [ "${redistributable}" = "false" ]; then
printf 'haswell board detected, downloading mrc\n'
needs+=" MRC"
fi
printf 'haswell board detected, downloading mrc\n'
needs+=" MRC"
fi
@ -115,10 +106,8 @@ if [ "${CONFIG_HAVE_IFD_BIN}" = "y" ]; then
fi
if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then
if [ "${redistributable}" = "false" ]; then
printf 'board needs intel management engine\n'
needs+=" ME"
fi
printf 'board needs intel management engine\n'
needs+=" ME"
fi
if [ "${CONFIG_HAVE_GBE_BIN}" = "y" ]; then

View File

@ -83,12 +83,7 @@ buildrom_release() {
board="$1"
if [ -d "resources/coreboot/${board}/" ]; then
./build release deblob ${board}
if [ "$?" = 2 ]; then
./build boot roms_helper "${board}"
else
./build boot roms_helper deblobbed "${board}"
fi
./build boot roms_helper "${board}"
else
die "\nbuild/roms: target not defined in the build system: %s\n" "${board}"
fi

View File

@ -30,13 +30,6 @@ set -u -e
projectname="$(cat projectname)"
if [ "${1}" = "deblobbed" ]; then
deblobbed=true
shift
else
deblobbed=false
fi
displaymodes=""
payloads=""
keyboard_layouts=""
@ -315,11 +308,7 @@ moverom() {
# expected: configs must not specify a payload
mkCoreboot() {
cbdir="${1}" # e.g. coreboot/default
if ${deblobbed} ; then
cbcfgpath="${2}_deblobbed"
else
cbcfgpath="${2}" # e.g. resources/coreboot/x200_8mb/config/libgfxinit_txtmode
fi
cbcfgpath="${2}" # e.g. resources/coreboot/x200_8mb/config/libgfxinit_txtmode
if [ ! -f "${cbcfgpath}" ]; then
printf "\nmkCoreboot: Coreboot config '%s' does not exist. Skipping build.\n" \
"${cbcfgpath}"

View File

@ -1,21 +0,0 @@
#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# SPDX-License-Identifier: GPL-3.0-only
board="${1}"
board_config_dir="resources/coreboot/${board}/config"
set -- "${board_config_dir}/*"
. ${1} 2>/dev/null
if [ "${CONFIG_HAVE_MRC}" = "y" ] || [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then
rm ${board_config_dir}/*_deblobbed
for config in ${board_config_dir}/* ; do
grep -v 'CONFIG_HAVE_ME_BIN\|CONFIG_ME_BIN_PATH\|CONFIG_HAVE_MRC\|CONFIG_MRC_FILE' ${config} > "${config}_deblobbed"
done
./blobutil download ${board} redistributable
else
# Quickly exits for boards requiring no blobs
exit 2
fi