aboutsummaryrefslogtreecommitdiff
path: root/projects/seabios
diff options
context:
space:
mode:
Diffstat (limited to 'projects/seabios')
-rw-r--r--projects/seabios/configs/revision1
-rw-r--r--projects/seabios/configs/targets2
-rw-r--r--projects/seabios/configs/txtmode/config91
-rw-r--r--projects/seabios/configs/txtmode/install1
-rw-r--r--projects/seabios/configs/vga/config95
-rw-r--r--projects/seabios/configs/vga/install1
-rw-r--r--projects/seabios/install/bootorder1
-rw-r--r--projects/seabios/install/install1
-rwxr-xr-xprojects/seabios/seabios126
9 files changed, 319 insertions, 0 deletions
diff --git a/projects/seabios/configs/revision b/projects/seabios/configs/revision
new file mode 100644
index 00000000..f03e0556
--- /dev/null
+++ b/projects/seabios/configs/revision
@@ -0,0 +1 @@
+19fdcca467ad3436d68ef88899b4dcd78154a9c6
diff --git a/projects/seabios/configs/targets b/projects/seabios/configs/targets
new file mode 100644
index 00000000..ac8e49d0
--- /dev/null
+++ b/projects/seabios/configs/targets
@@ -0,0 +1,2 @@
+txtmode
+vga
diff --git a/projects/seabios/configs/txtmode/config b/projects/seabios/configs/txtmode/config
new file mode 100644
index 00000000..cd13ec77
--- /dev/null
+++ b/projects/seabios/configs/txtmode/config
@@ -0,0 +1,91 @@
+#
+# 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_MULTIBOOT=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_SDCARD=y
+CONFIG_MEGASAS=y
+CONFIG_FLOPPY=y
+CONFIG_FLASH_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_RTC_TIMER=y
+CONFIG_HARDWARE_IRQ=y
+CONFIG_PMTIMER=y
+CONFIG_TSC_TIMER=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
+CONFIG_TCGBIOS=y
+
+#
+# VGA ROM
+#
+CONFIG_NO_VGABIOS=y
+# CONFIG_VGA_GEODEGX2 is not set
+# CONFIG_VGA_GEODELX is not set
+# CONFIG_VGA_COREBOOT is not set
+# CONFIG_BUILD_VGABIOS is not set
+CONFIG_VGA_EXTRA_STACK_SIZE=512
+
+#
+# Debugging
+#
+CONFIG_DEBUG_LEVEL=1
+# CONFIG_DEBUG_SERIAL is not set
+# CONFIG_DEBUG_SERIAL_MMIO is not set
+CONFIG_DEBUG_COREBOOT=y
diff --git a/projects/seabios/configs/txtmode/install b/projects/seabios/configs/txtmode/install
new file mode 100644
index 00000000..9189ec8f
--- /dev/null
+++ b/projects/seabios/configs/txtmode/install
@@ -0,0 +1 @@
+bios.bin.elf:bios.bin.elf
diff --git a/projects/seabios/configs/vga/config b/projects/seabios/configs/vga/config
new file mode 100644
index 00000000..a2725409
--- /dev/null
+++ b/projects/seabios/configs/vga/config
@@ -0,0 +1,95 @@
+#
+# 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_MULTIBOOT=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_SDCARD=y
+CONFIG_MEGASAS=y
+CONFIG_FLOPPY=y
+CONFIG_FLASH_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_RTC_TIMER=y
+CONFIG_HARDWARE_IRQ=y
+CONFIG_PMTIMER=y
+CONFIG_TSC_TIMER=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
+CONFIG_TCGBIOS=y
+
+#
+# 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 is not set
+# CONFIG_DEBUG_SERIAL_MMIO is not set
+CONFIG_DEBUG_COREBOOT=y
diff --git a/projects/seabios/configs/vga/install b/projects/seabios/configs/vga/install
new file mode 100644
index 00000000..ddc1571e
--- /dev/null
+++ b/projects/seabios/configs/vga/install
@@ -0,0 +1 @@
+vgabios.bin:vgabios.bin
diff --git a/projects/seabios/install/bootorder b/projects/seabios/install/bootorder
new file mode 100644
index 00000000..b33e1295
--- /dev/null
+++ b/projects/seabios/install/bootorder
@@ -0,0 +1 @@
+/rom@img/grub2
diff --git a/projects/seabios/install/install b/projects/seabios/install/install
new file mode 100644
index 00000000..4830c5f9
--- /dev/null
+++ b/projects/seabios/install/install
@@ -0,0 +1 @@
+bootorder:bootorder
diff --git a/projects/seabios/seabios b/projects/seabios/seabios
new file mode 100755
index 00000000..818ffcfd
--- /dev/null
+++ b/projects/seabios/seabios
@@ -0,0 +1,126 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr>
+#
+# 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/>.
+
+arguments() {
+ project_arguments_targets "${project}" "$@"
+}
+
+usage() {
+ project_usage_actions "${project}"
+ project_usage_arguments "${project}" "$@"
+}
+
+download() {
+ local repository="${project}"
+
+ # Can't clone using TLS until Coreboot's cert lists the domain as a SAN
+ project_download_git "${project}" "${repository}" 'git://git.seabios.org/seabios.git' "$@"
+}
+
+download_check() {
+ local repository="${project}"
+
+ project_download_check_git "${project}" "${repository}" "$@"
+}
+
+extract() {
+ project_extract "${project}" "$@"
+}
+
+extract_check() {
+ project_extract_check "${project}" "$@"
+}
+
+update() {
+ local repository="${project}"
+
+ project_update_git "${project}" "${repository}" "$@"
+}
+
+update_check() {
+ local repository="${project}"
+
+ project_update_check_git "${project}" "${repository}" "$@"
+}
+
+build() {
+ local repository="${project}"
+
+ project_sources_directory_missing_empty_error "${project}" "${repository}" "$@"
+
+ if git_project_check "${repository}"; then
+ git_project_checkout "${project}" "${repository}" "$@"
+ fi
+
+ local project_path="$(project_path "${project}")"
+ local seabios_config_path="$(project_file_path "${project}" "${CONFIGS}" 'config' "$@")"
+ local sources_path="$(project_sources_path "${project}" "${repository}" "$@")"
+ local build_path="$(project_build_path "${project}" "$@")"
+
+ mkdir -p "${build_path}"
+
+ (
+ cd "${sources_path}"
+
+ # Copy the config file for target into working directory
+ cp "${seabios_config_path}" .config
+
+ # Compile SeaBIOS first
+ make -j"${TASKS}"
+
+ # Copy the ELF to its build directory
+ if [[ "$1" == 'txtmode' ]]; then
+ cp out/bios.bin.elf "${build_path}"
+ elif [[ "$1" == 'vga' ]]; then
+ cp out/vgabios.bin "${build_path}"
+ fi
+
+ # Tidy up
+ make distclean
+ rm -f .config
+ )
+}
+
+build_check() {
+ project_build_check "${project}" "$@"
+}
+
+install() {
+ project_install "${project}" "$@"
+}
+
+install_check() {
+ project_install_check "${project}" "$@"
+}
+
+release() {
+ local repository="${project}"
+
+ project_release_install_archive "${project}" "${IMAGES}" "$@"
+ project_release_sources_git "${project}" "${repository}" "$@"
+}
+
+release_check() {
+ local repository="${project}"
+
+ project_release_install_archive_check "${project}" "${IMAGES}" "$@"
+ project_release_check_sources_git "${project}" "${repository}" "$@"
+}
+
+clean() {
+ project_clean "${project}" "$@"
+}