summaryrefslogtreecommitdiffstats
path: root/resources
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2015-05-13 14:27:38 (EDT)
committer Francis Rowe <info@gluglug.org.uk>2015-10-14 19:08:12 (EDT)
commitda0b13bc655a4dab57d28697e73b1d44fa611cf3 (patch)
treee4b6c093c1804125d7fefcbb83ccc66dce809e5d /resources
parent479070b54390a415b77883fb88d2e0a68e212e57 (diff)
downloadlibreboot-da0b13bc655a4dab57d28697e73b1d44fa611cf3.zip
libreboot-da0b13bc655a4dab57d28697e73b1d44fa611cf3.tar.gz
libreboot-da0b13bc655a4dab57d28697e73b1d44fa611cf3.tar.bz2
Integrate SeaBIOS payload as option on top of GRUB, with SeaVGABIOS
Diffstat (limited to 'resources')
-rw-r--r--resources/grub/config/menuentries/common.cfg4
-rw-r--r--resources/scripts/helpers/build/clean/seabios40
-rwxr-xr-xresources/scripts/helpers/build/config/seabiosmodify38
-rwxr-xr-xresources/scripts/helpers/build/config/seabiosupdate36
-rwxr-xr-xresources/scripts/helpers/build/module/seabios49
-rwxr-xr-xresources/scripts/helpers/download/seabios59
-rw-r--r--resources/seabios/config/config89
7 files changed, 315 insertions, 0 deletions
diff --git a/resources/grub/config/menuentries/common.cfg b/resources/grub/config/menuentries/common.cfg
index 7b74ec3..8573df5 100644
--- a/resources/grub/config/menuentries/common.cfg
+++ b/resources/grub/config/menuentries/common.cfg
@@ -135,3 +135,7 @@ menuentry 'Poweroff [P]' --hotkey='p' --hotkey='P' {
menuentry 'Reboot [R]' --hotkey='r' --hotkey='R' {
reboot
}
+menuentry 'Load SeaBIOS' {
+ set root='cbfsdisk'
+ chainloader /bios.bin.elf
+}
diff --git a/resources/scripts/helpers/build/clean/seabios b/resources/scripts/helpers/build/clean/seabios
new file mode 100644
index 0000000..6364263
--- /dev/null
+++ b/resources/scripts/helpers/build/clean/seabios
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# helper script: clean the dependencies that were built in seabios
+#
+# Copyright (C) 2015 Francis Rowe <info@gluglug.org.uk>
+#
+# 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 libreboot_src or libreboot git
+
+[ "x${DEBUG+set}" = 'xset' ] && set -v
+set -u -e
+
+# clean bucts
+# --------------------------------------------------------
+
+printf "Cleaning the previous build of seabios\n"
+
+cd seabios/
+make clean
+
+printf "\n\n"
+
+# done. go back to main directory.
+cd ../
+
+# ------------------- DONE ----------------------
diff --git a/resources/scripts/helpers/build/config/seabiosmodify b/resources/scripts/helpers/build/config/seabiosmodify
new file mode 100755
index 0000000..750fcad
--- /dev/null
+++ b/resources/scripts/helpers/build/config/seabiosmodify
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+#
+# helper script: update the seabios config
+#
+# Copyright (C) 2014, 2015 Francis Rowe <info@gluglug.org.uk>
+#
+# 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 libreboot_src or git
+
+[ "x${DEBUG+set}" = 'xset' ] && set -v
+set -u -e
+
+cd seabios/
+
+if [ -f ../resources/seabios/config/config ]; then
+ cp ../resources/seabios/config/config .config
+fi
+
+make menuconfig
+
+mv .config ../resources/seabios/config/config
+
+cd ../
diff --git a/resources/scripts/helpers/build/config/seabiosupdate b/resources/scripts/helpers/build/config/seabiosupdate
new file mode 100755
index 0000000..160cb53
--- /dev/null
+++ b/resources/scripts/helpers/build/config/seabiosupdate
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+#
+# helper script: update the seabios config
+#
+# Copyright (C) 2014, 2015 Francis Rowe <info@gluglug.org.uk>
+#
+# 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 libreboot_src or git
+
+[ "x${DEBUG+set}" = 'xset' ] && set -v
+set -u -e
+
+cd seabios/
+
+if [ -f ../resources/seabios/config/config ]; then
+ cp ../resources/seabios/config/config .config
+ make oldconfig
+ mv .config ../resources/seabios/config/config
+fi
+
+cd ../
diff --git a/resources/scripts/helpers/build/module/seabios b/resources/scripts/helpers/build/module/seabios
new file mode 100755
index 0000000..d869c03
--- /dev/null
+++ b/resources/scripts/helpers/build/module/seabios
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# helper script: builds SeaBIOS source code
+#
+# Copyright (C) 2015 Francis Rowe <info@gluglug.org.uk>
+#
+# 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 libreboot_src or git
+
+[ "x${DEBUG+set}" = 'xset' ] && set -v
+set -u -e
+
+# Build SeaBIOS
+# ---------------------------------------------------------------------
+
+printf "Building SeaBIOS\n"
+
+cd seabios/
+
+cp ../resources/seabios/config/config .config
+
+# clean it first
+[[ -f Makefile ]] && make clean
+
+# build SeaBIOS
+make
+
+printf "\n\n"
+
+rm -f .config
+
+# done. go back to main directory
+cd ../
+
+# ------------------- DONE ----------------------
diff --git a/resources/scripts/helpers/download/seabios b/resources/scripts/helpers/download/seabios
new file mode 100755
index 0000000..e55f395
--- /dev/null
+++ b/resources/scripts/helpers/download/seabios
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# helper script: Downloads SeaBIOS and patches it.
+#
+# Copyright (C) 2015 Francis Rowe <info@gluglug.org.uk>
+#
+# 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 libreboot_src or libreboot git.
+
+[ "x${DEBUG+set}" = 'xset' ] && set -v
+set -u -e
+
+# Get GRUB, revert to commit last used and apply patches.
+
+# Remove the old version that may still exist
+# ------------------------------------------------------------------------------
+
+printf "Downloading GRUB\n"
+
+rm -rf seabios
+
+# Get latest GRUB
+# ------------------------------------------------------------------------------
+
+# download it using git
+git clone git://git.seabios.org/seabios.git seabios
+
+# modifications are required
+cd seabios/
+
+# Reset to the last commit that was tested
+# ------------------------------------------------------------------------------
+
+git reset --hard 92f9b9189eb00da42a8bfcf26c664f48ee8d2868
+
+# Apply patches
+# ------------------------------------------------------------------------------
+
+# no patches are used in this revision of libreboot
+
+cd ../
+printf "\n\n"
+
+# ------------------- DONE ----------------------
+
diff --git a/resources/seabios/config/config b/resources/seabios/config/config
new file mode 100644
index 0000000..2096c92
--- /dev/null
+++ b/resources/seabios/config/config
@@ -0,0 +1,89 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# SeaBIOS Configuration
+#
+
+#
+# General Features
+#
+CONFIG_COREBOOT=y
+# CONFIG_QEMU is not set
+# CONFIG_CSM is not set
+# CONFIG_QEMU_HARDWARE is not set
+CONFIG_THREADS=y
+CONFIG_RELOCATE_INIT=y
+CONFIG_BOOTMENU=y
+CONFIG_BOOTSPLASH=y
+CONFIG_BOOTORDER=y
+CONFIG_COREBOOT_FLASH=y
+CONFIG_LZMA=y
+CONFIG_CBFS_LOCATION=0
+CONFIG_FLASH_FLOPPY=y
+CONFIG_ENTRY_EXTRASTACK=y
+CONFIG_MALLOC_UPPERMEMORY=y
+CONFIG_ROM_SIZE=0
+
+#
+# Hardware support
+#
+CONFIG_ATA=y
+# CONFIG_ATA_DMA is not set
+# CONFIG_ATA_PIO32 is not set
+CONFIG_AHCI=y
+CONFIG_MEGASAS=y
+CONFIG_FLOPPY=y
+CONFIG_PS2PORT=y
+CONFIG_USB=y
+CONFIG_USB_UHCI=y
+CONFIG_USB_OHCI=y
+CONFIG_USB_EHCI=y
+CONFIG_USB_XHCI=y
+CONFIG_USB_MSC=y
+CONFIG_USB_UAS=y
+CONFIG_USB_HUB=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_MOUSE=y
+CONFIG_SERIAL=y
+CONFIG_LPT=y
+CONFIG_PMTIMER=y
+
+#
+# BIOS interfaces
+#
+CONFIG_DRIVES=y
+CONFIG_CDROM_BOOT=y
+CONFIG_CDROM_EMU=y
+CONFIG_PCIBIOS=y
+CONFIG_APMBIOS=y
+CONFIG_PNPBIOS=y
+CONFIG_OPTIONROMS=y
+CONFIG_PMM=y
+CONFIG_BOOT=y
+CONFIG_KEYBOARD=y
+CONFIG_KBD_CALL_INT15_4F=y
+CONFIG_MOUSE=y
+CONFIG_S3_RESUME=y
+CONFIG_VGAHOOKS=y
+# CONFIG_DISABLE_A20 is not set
+
+#
+# VGA ROM
+#
+# CONFIG_NO_VGABIOS is not set
+# CONFIG_VGA_GEODEGX2 is not set
+# CONFIG_VGA_GEODELX is not set
+CONFIG_VGA_COREBOOT=y
+CONFIG_BUILD_VGABIOS=y
+CONFIG_VGA_EMULATE_TEXT=y
+CONFIG_VGA_FIXUP_ASM=y
+CONFIG_VGA_ALLOCATE_EXTRA_STACK=y
+CONFIG_VGA_EXTRA_STACK_SIZE=512
+CONFIG_VGA_VBE=y
+
+#
+# Debugging
+#
+CONFIG_DEBUG_LEVEL=1
+CONFIG_DEBUG_SERIAL=y
+CONFIG_DEBUG_SERIAL_PORT=0x3f8
+CONFIG_DEBUG_COREBOOT=y