SeaBIOS
Developer(s) | Ronald McDonald |
---|---|
Stable release | 1.9.0[1] / 17 November 2015 |
Development status | Active |
Written in | C |
Platform | x86 |
Size | 463 kB |
Available in | English |
Type | BIOS |
License | GNU LGPLv3 |
Website |
www |
SeaBIOS is an open source implementation of a 16-bit x86 BIOS, serving as a freely available firmware for x86 systems. Aiming for compatibility, it supports standard BIOS features and calling interfaces that are implemented by a typical proprietary x86 BIOS. SeaBIOS can either run on bare hardware as a coreboot payload, or can be used directly in emulators such as QEMU and Bochs.
Initially, SeaBIOS was based on the open source BIOS implementation included with the Bochs emulator. The project was created with intentions to allow native usage on x86 hardware, and to be based on an improved and more easily extendable internal source code implementation.[2]:3–5
Features
Features supported by SeaBIOS include the following:
- Graphical bootsplash screen (JPEG and BMP)
- USB keyboard and mouse support
- USB drive booting support
- Boot from USB Attached SCSI
- Support for 32-bit PCI BIOS calls
- ATA DMA and bus mastering support
- Support Universal Host Controller Interface (UHCI), Open Host Controller Interface (OHCI), Enhanced Host Controller Interface (EHCI), and Extensible Host Controller Interface (xHCI)
- Support systems with multiple VGA cards
- Boot menu that allow booting from any drive or any CD-ROM (El Torito)
- BIOS Boot Specification (BBS) calls
- Rebooting on Control-Alt-Delete key press
- Dynamic e820 map generation
- Logical block addressing (LBA) 48-bit
- POST Memory Manager (PMM)
- Paravirtualization, Xen HVM, Virtio
- Payloads (LZMA compressed)
- VESA BIOS Extensions (VBE) 3.0
- PCI Firmware Specification v3.0
- SeaBIOS as a Compatibility Support Module (CSM) for Unified Extensible Firmware Interface (UEFI) and Open Virtual Machine Firmware (OVMF)
- Virtual machine host notification of paravirtualized guests which panic via the pvpanic driver
- A patch exists to load the SLIC table from a licensed OEM Windows BIOS.[3]
- Trusted Platform Module hardware and BIOS calls
SeaBIOS has support for APM 1.2, Enhanced Disk Drive (EDD) 3.0 (INT 13H extensions), SMBIOS 2.4, MultiProcessor Specification, BIOS Boot Specification (BBS) and ACPI. It does not support ESCD.
SeaBIOS's boot device selection menu can be accessed by pressing Esc during the boot process.
Uses
SeaBIOS can run natively on x86 hardware, in which case it is loaded by coreboot as a payload; it runs on 386 and later processors, and requires a minimum of 1 MB of RAM. Compiled SeaBIOS images can be flashed into supported motherboards using flashrom.[4] SeaBIOS also runs inside an emulator; it is the default BIOS for the QEMU and KVM virtualization environments, and can be used with the Bochs emulator. It is also included in some Chromebooks, although it is not used by the Chrome OS.[5]
Development
Most of the SeaBIOS' source code is written in C, with its build system relying on the standard GNU toolchain.[2]:5–7 SeaBIOS has been tested with various bootloaders and operating systems, including GNU GRUB, LILO, SYSLINUX, Microsoft Windows, Linux, FreeDOS, FreeBSD, NetBSD and OpenBSD.
See also
References
- ↑ "SeaBIOS Releases: SeaBIOS 1.9.0". seabios.org. 2015-11-17. Retrieved 2015-08-22.
- 1 2 Kevin O'Connor (November 11, 2010). "SeaBIOS in a virtualized environment" (PDF). linuxplumbersconf.org. Retrieved December 12, 2014.
- ↑ "ghuntley/seaslic GitHub". Github.com. Retrieved 2014-02-25.
- ↑ "SeaBIOS - coreboot". Retrieved 2015-01-22.
- ↑ "3 alternatives to Chrome OS on Google’s Chromebook Pixel — Tech News and Analysis". Gigaom.com. 2013-02-26. Retrieved 2014-02-25.
External links
- Official website
- Find your way through the x86 firmware maze – covers the SeaBIOS boot sequence and memory maps
|