diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | docs/maintain/index.html | 36 | ||||
-rw-r--r-- | resources/grub/config/menuentries/common.cfg | 4 | ||||
-rw-r--r-- | resources/scripts/helpers/build/clean/seabios | 40 | ||||
-rwxr-xr-x | resources/scripts/helpers/build/config/seabiosmodify | 38 | ||||
-rwxr-xr-x | resources/scripts/helpers/build/config/seabiosupdate | 36 | ||||
-rwxr-xr-x | resources/scripts/helpers/build/module/seabios | 49 | ||||
-rwxr-xr-x | resources/scripts/helpers/download/seabios | 59 | ||||
-rw-r--r-- | resources/seabios/config/config | 89 |
9 files changed, 352 insertions, 0 deletions
@@ -9,6 +9,7 @@ /flashrom/ /grub/ /memtest86plus/ +/seabios/ /bin/ /release/ /resources/utilities/ich9deblob/*.rom diff --git a/docs/maintain/index.html b/docs/maintain/index.html index 0dc9565..3a0da0a 100644 --- a/docs/maintain/index.html +++ b/docs/maintain/index.html @@ -60,6 +60,9 @@ <li> <a href="#updating_memtest86plus">Updating MemTest86+</a> </li> + <li> + <a href="#seabios">SeaBIOS</a> + </li> </ul> <p> @@ -596,6 +599,39 @@ </p> </div> + + <div class="section"> + + <h1 id="seabios">SeaBIOS</h1> + + <p> + Create the SeaBIOS config like so (changed from defaults):<br/> + $ <b>./build config seabiosmodify</b> + </p> +<pre> +General Features -> Build Target -> Build for coreboot (enable) +VGA ROM -> VGA Hardware Type -> coreboot linear framebuffer (enable) +Debugging -> Serial port debugging (enable) +</pre> + + <p> + When updating SeaBIOS, run the following:<br/> + $ <b>./build config seabiosupdate</b><br/> + (this will run <b>make oldconfig</b> on seabios) + </p> + + <p> + Relevant scripts: + </p> + <ul> + <li>resources/scripts/helpers/build/config/seabiosmodify</li> + <li>resources/scripts/helpers/build/config/seabiosupdate</li> + <li>resources/scripts/helpers/download/seabios (change patches used, revision, etc)</li> + <li>resources/scripts/helpers/build/clean/seabios</li> + <li>resources/scripts/helpers/build/module/seabios</li> + </ul> + + </div> <div class="section"> 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 |