build/roms: remove seabios_grubfirst logic

the intended use-case scenario was one in which vga rom initialisation
would be used, on desktop configurations, but without coreboot itself
handling vga rom initialisation, instead leaving that task to seabios

it was assumed that grub, when running on the bare metal with
build option "--with-platform=coreboot" would be able to display
like this, but it is not so when tested

in such setups (add-on gpu with grub payload), it is necessary to
extract the video bios and insert it into the coreboot rom, having
coreboot handle such execution. this is beyond the scope of lbmk,
in context of automated building, because we cannot reliably predict
things such as PCI IDs

do away with this build option entirely, for it does not serve the
intended purpose. it will be necessary to run PC GRUB instead (build
option --with-platform=i386-pc). PC GRUB can still read from CBFS,
and you could provide it as a floppy image file inside CBFS for
SeaBIOS to execute. in this setup, GRUB would function as originally
intended by the seabios_withgrub option; such a configuration is
referred to as "SeaGRUB" by the libreboot project, and experimentation
was done with it in the past, to no avail

it's better to keep things simple, in the libreboot project. simpler
for users, that is
fsdg20230625
Leah Rowe 2022-11-22 22:45:18 +00:00
parent 7629dfb8af
commit e1bbdadc95
2 changed files with 3 additions and 12 deletions

View File

@ -55,7 +55,7 @@ Detect_board(){
grub_*)
board=$(cut -d '_' -f2-3 <<<${filename})
;;
seabios_grubfirst_*|seabios_withgrub_*)
seabios_withgrub_*)
board=$(cut -d '_' -f3-4 <<<${filename})
;;
*)

View File

@ -206,7 +206,7 @@ elif [ "${arch}" = "AArch64" ]; then
(
cat version > "${cbdir}/.coreboot-version"
cd "${cbdir}"
make crossgcc-arm crossgcc-aarch64 CPUS=$(nproc) # This is for aarch64, doesn't apply to armv7
make crossgcc-aarch64 CPUS=$(nproc) # This is for aarch64, doesn't apply to armv7
)
fi
@ -456,19 +456,12 @@ mkRomsWithGrub() {
tmprompath="${1}"
initmode="${2}"
displaymode="${3}"
firstpayloadname="${4}" # allow values: grub, seabios, seabios_withgrub, seabios_grubfirst
firstpayloadname="${4}" # allow values: grub, seabios, seabios_withgrub
if [ "${payload_grub_withseabios}" = "y" ] && [ "${firstpayloadname}" = "grub" ]; then
mv "$(make_seabios_rom "${tmprompath}" "seabios.elf" "${seabios_opromloadonly}" "${initmode}")" "${tmprompath}"
elif [ "${payload_seabios_withgrub}" ] && [ "${firstpayloadname}" != "grub" ]; then
mv "$(make_seabios_rom "${tmprompath}" "fallback/payload" "${seabios_opromloadonly}" "${initmode}")" "${tmprompath}"
if [ "${firstpayloadname}" = "seabios_grubfirst" ]; then
tmpbootorder=$(mktemp -t coreboot_rom.XXXXXXXXXX)
printf "/rom@img/grub2\n" > "${tmpbootorder}"
"${cbfstool}" "${tmprompath}" add -f "${tmpbootorder}" -n bootorder -t raw
rm -f "${tmpbootorder}"
"${cbfstool}" "${tmprompath}" add-int -i 0 -n etc/show-boot-menu
fi
fi
keymaps=""
@ -538,8 +531,6 @@ mkRoms() {
tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX)
cp "${corebootrom}" "${tmprom}"
mkRomsWithGrub "${tmprom}" "${initmode}" "${displaymode}" "seabios_withgrub"
cp "${corebootrom}" "${tmprom}"
mkRomsWithGrub "${tmprom}" "${initmode}" "${displaymode}" "seabios_grubfirst"
rm -f "${tmprom}"
fi
fi