summaryrefslogtreecommitdiffstats
path: root/resources/scripts/helpers/build
diff options
context:
space:
mode:
authorLeah Woods <info@minifree.org>2016-05-17 03:19:29 (EDT)
committer Leah Woods <info@minifree.org>2016-05-18 15:24:09 (EDT)
commit5269566a6c37151015dea0d4cf78f341cca0669c (patch)
tree9ae3f31ec51f53957b446c7f21332e42034f7e18 /resources/scripts/helpers/build
parentf6e141b3e2a796fe45b60641417c85234d399436 (diff)
downloadlibreboot-5269566a6c37151015dea0d4cf78f341cca0669c.zip
libreboot-5269566a6c37151015dea0d4cf78f341cca0669c.tar.gz
libreboot-5269566a6c37151015dea0d4cf78f341cca0669c.tar.bz2
Implement SeaGRUB and make it the default payload on all current GRUB boards
Diffstat (limited to 'resources/scripts/helpers/build')
-rwxr-xr-xresources/scripts/helpers/build/clean/grub5
-rwxr-xr-xresources/scripts/helpers/build/module/grub3
-rwxr-xr-xresources/scripts/helpers/build/roms/withgrub3
-rwxr-xr-xresources/scripts/helpers/build/roms/withgrub_helper28
4 files changed, 35 insertions, 4 deletions
diff --git a/resources/scripts/helpers/build/clean/grub b/resources/scripts/helpers/build/clean/grub
index fb16ffb..8e87b47 100755
--- a/resources/scripts/helpers/build/clean/grub
+++ b/resources/scripts/helpers/build/clean/grub
@@ -2,7 +2,7 @@
# helper script: clean the dependencies that were built in GRUB
#
-# Copyright (C) 2014, 2015 Leah Woods <info@minifree.org>
+# Copyright (C) 2014, 2015, 2016 Leah Woods <info@minifree.org>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
#
# This program is free software: you can redistribute it and/or modify
@@ -29,4 +29,7 @@ printf "Cleaning the previous build of GRUB\n"
# clean GURB
[ -d grub/Makefile ] && make -C grub distclean
+# Also clean SeaBIOS
+./build clean seabios
+
printf "\n\n"
diff --git a/resources/scripts/helpers/build/module/grub b/resources/scripts/helpers/build/module/grub
index fb10e6c..8f74135 100755
--- a/resources/scripts/helpers/build/module/grub
+++ b/resources/scripts/helpers/build/module/grub
@@ -52,3 +52,6 @@ cd grub/
./configure --with-platform=coreboot
make -j${cores}
)
+
+# Also build SeaBIOS, which we use with GRUB to make SeaGRUB
+./build module seabios
diff --git a/resources/scripts/helpers/build/roms/withgrub b/resources/scripts/helpers/build/roms/withgrub
index bbf3445..3025d97 100755
--- a/resources/scripts/helpers/build/roms/withgrub
+++ b/resources/scripts/helpers/build/roms/withgrub
@@ -1,7 +1,7 @@
#!/bin/bash
#
-# helper script: build ROM images with GRUB and put them in ./bin/
+# helper script: build ROM images with SeaGRUB and put them in ./bin/
#
# Copyright (C) 2014, 2015, 2016 Leah Woods <info@minifree.org>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
@@ -120,6 +120,7 @@ fi
# The GRUB files are no longer needed
rm -f "coreboot/grub"*.{elf,cfg}
+rm -f "coreboot/seabios"*.elf
rm -f "coreboot/"*/*/*.{elf,cfg}
printf "\n\n"
diff --git a/resources/scripts/helpers/build/roms/withgrub_helper b/resources/scripts/helpers/build/roms/withgrub_helper
index 0d823f3..2ceae24 100755
--- a/resources/scripts/helpers/build/roms/withgrub_helper
+++ b/resources/scripts/helpers/build/roms/withgrub_helper
@@ -1,6 +1,6 @@
#!/bin/bash
-# helper script: create ROM images for a given system, with GRUB
+# helper script: create ROM images for a given system, with SeaGRUB
#
# Copyright (C) 2014, 2015, 2016 Leah Woods <info@minifree.org>
# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
@@ -69,6 +69,7 @@ git checkout ${branchname}
# Make sure to remove these first
rm -f "grub."*{elf,cfg}
+rm -f "seabios"*.elf
printf 'libreboot-%s\n' "${version}" > ".coreboot-version" # needed for reproducible builds in coreboot
@@ -109,9 +110,32 @@ do
make clean
mv "config_${romtype}" ".config"
cp "../../grub_${romtype}.elf" "grub.elf"
+ cp "../../../seabios/out/bios.bin.elf" "seabios.elf"
make -j${cores}
- rm -f "grub.elf"
mv "build/coreboot.rom" "${boardtarget}_${romtype}.rom"
+
+ # We dont need seabios.elf anymore
+ rm -f "seabios.elf"
+
+ # Add the grub.elf to CBFS
+ ./util/cbfstool/cbfstool "${boardtarget}_${romtype}.rom" add -f grub.elf -c lzma -n img/grub2.lzma -t raw
+ # we dont need that grub.elf now
+ rm -f "grub.elf"
+
+ # Set bootorder so that seabios loads grub by default
+ printf "/rom@img/grub2\n" > bootorder
+ ./util/cbfstool/cbfstool "${boardtarget}_${romtype}.rom" add -f bootorder -n bootorder -t raw
+ rm -f bootorder
+
+ # Add 0s delay to seabios, so that the user is not burdened by seeing
+ # that horrible interface that seabios has
+ dd if=/dev/zero of=zero bs=1 count=1 conv=notrunc
+ ./util/cbfstool/cbfstool "${boardtarget}_${romtype}.rom" add -f zero -n etc/show-boot-menu -t raw
+ rm -f zero
+
+ # SeaVGABIOS stuff
+ ./util/cbfstool/cbfstool "${boardtarget}_${romtype}.rom" add -f ../../../seabios/out/vgabios.bin -n vgaroms/vgabios.bin -t raw
+
# .config no longer needed
rm -f ".config"