Remove images with the seabios_grubfirst main payload.

The seabios_grubfirst images provides the same functionality than the
GRUB images, but instead of having GRUB being loaded directly by
Coreboot, Coreboot loads SeaBIOS which then loads GRUB.

These images probably exist to enable end users to try it to workaround
potential compatibility issues between the OS and GRUB with the GRUB
image as we have a BIOS implementation being loaded.

While this looks useful, it also makes things more complicated:

- It increase the number of images to choose from, and it's
  complicated to explain the difference between grub and
  seabios_grubfirst to end users.

  For instance for the "x200_8mb", users need to choose between 2 GPU
  modes (corebootfb, or txtmode) and 12 keyboard layouts. So having to
  choose between 2 payloads instead of 3 with one difference that is
  hard to understand makes things easier.

- It makes testing more complicated as we have one more payload to
  test and we also need to make sure to always differenciate both
  images in bug reports, documentation, etc.

And if issues arise from this change in the future, we could work with
upstream to fix them and/or replace the grub images with
'seabios_grubfirst' while keeping the 'grub' name to avoid
complicating things by having two main payloads with identical
features.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: fixed typos in commit message
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This commit is contained in:
Denis 'GNUtoo' Carikli 2024-09-23 16:43:01 +02:00 committed by Adrien 'neox' Bourmault
parent cd848f0139
commit 6fa9af30ad
Signed by: neox
GPG Key ID: 57BC26A3687116F6
3 changed files with 1 additions and 21 deletions

View File

@ -73,8 +73,6 @@ test_qemu_rom_archive()
archive_files="${archive_files} \ archive_files="${archive_files} \
${target}/grub_${target}_${cbfb}_${kb}.rom \ ${target}/grub_${target}_${cbfb}_${kb}.rom \
${target}/grub_${target}_${txtmode}_${kb}.rom \ ${target}/grub_${target}_${txtmode}_${kb}.rom \
${target}/seabios_grubfirst_${target}_${cbfb}_${kb}.rom \
${target}/seabios_grubfirst_${target}_${txtmode}_${kb}.rom \
${target}/seabios_withgrub_${target}_${cbfb}_${kb}.rom \ ${target}/seabios_withgrub_${target}_${cbfb}_${kb}.rom \
${target}/seabios_withgrub_${target}_${txtmode}_${kb}.rom \ ${target}/seabios_withgrub_${target}_${txtmode}_${kb}.rom \
" "

View File

@ -362,19 +362,12 @@ mkRomsWithGrub() {
tmprompath="${1}" tmprompath="${1}"
initmode="${2}" initmode="${2}"
displaymode="${3}" 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 if [ "${payload_grub_withseabios}" = "y" ] && [ "${firstpayloadname}" = "grub" ]; then
mv "$(make_seabios_rom "${tmprompath}" "seabios.elf" "${seabios_opromloadonly}" "${initmode}" "${cbfstool}")" "${tmprompath}" mv "$(make_seabios_rom "${tmprompath}" "seabios.elf" "${seabios_opromloadonly}" "${initmode}" "${cbfstool}")" "${tmprompath}"
elif [ "${payload_seabios_withgrub}" ] && [ "${firstpayloadname}" != "grub" ]; then elif [ "${payload_seabios_withgrub}" ] && [ "${firstpayloadname}" != "grub" ]; then
mv "$(make_seabios_rom "${tmprompath}" "fallback/payload" "${seabios_opromloadonly}" "${initmode}" "${cbfstool}")" "${tmprompath}" mv "$(make_seabios_rom "${tmprompath}" "fallback/payload" "${seabios_opromloadonly}" "${initmode}" "${cbfstool}")" "${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 fi
for keymapfile in resources/grub/keymap/*; do for keymapfile in resources/grub/keymap/*; do
@ -435,8 +428,6 @@ mkRoms() {
tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX)
cp "${corebootrom}" "${tmprom}" cp "${corebootrom}" "${tmprom}"
mkRomsWithGrub "${tmprom}" "${initmode}" "${displaymode}" "seabios_withgrub" mkRomsWithGrub "${tmprom}" "${initmode}" "${displaymode}" "seabios_withgrub"
cp "${corebootrom}" "${tmprom}"
mkRomsWithGrub "${tmprom}" "${initmode}" "${displaymode}" "seabios_grubfirst"
rm -f "${tmprom}" rm -f "${tmprom}"
fi fi
fi fi

View File

@ -160,15 +160,6 @@ an option in the boot menu.
ROM images that have `seabios_withgrub` in the file name start with SeaBIOS ROM images that have `seabios_withgrub` in the file name start with SeaBIOS
first, but also have GNU GRUB available in the boot menu when you press ESC. first, but also have GNU GRUB available in the boot menu when you press ESC.
### seabios\_grubfirst
ROM images that have `seabios_grubfirst` in the file name start with SeaBIOS,
but SeaBIOS is configured via special `bootorder` file in CBFS so as to ONLY
load GNU GRUB. This setup would be most useful on desktops, where you wish to
only have GNU GRUB available, but want to use an add-on GPU while also having
the option to use libgfxinit, if a supported GPU/framebuffer chip is present
on your board.
Which systems are supported? Which systems are supported?
============================ ============================