diff options
Diffstat (limited to 'projects/seabios')
-rw-r--r-- | projects/seabios/configs/revision | 1 | ||||
-rw-r--r-- | projects/seabios/configs/targets | 2 | ||||
-rw-r--r-- | projects/seabios/configs/txtmode/config | 91 | ||||
-rw-r--r-- | projects/seabios/configs/txtmode/install | 1 | ||||
-rw-r--r-- | projects/seabios/configs/vga/config | 95 | ||||
-rw-r--r-- | projects/seabios/configs/vga/install | 1 | ||||
-rw-r--r-- | projects/seabios/install/bootorder | 1 | ||||
-rw-r--r-- | projects/seabios/install/install | 1 | ||||
-rwxr-xr-x | projects/seabios/seabios | 126 |
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}" "$@" +} |