bios: Add fast variant of SeaBIOS for use with -kernel on x86.

This commit adds a fast variant of SeaBIOS called 'bios-fast.bin'.

It's designed to be the fastest (also the smallest, but that's not the
main aim) SeaBIOS that is just enough to boot a Linux kernel using the
-kernel option on i686 and x86_64.

This commit does not modify the -kernel option to use this.  You have
to specify it by doing something like this:

  -kernel vmlinuz -bios bios-fast.bin

Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
master
Richard W.M. Jones 2016-05-14 19:50:51 +01:00 committed by Gerd Hoffmann
parent 8692aa2979
commit 4e04ab6a63
3 changed files with 32 additions and 2 deletions

View File

@ -408,7 +408,8 @@ common de-ch es fo fr-ca hu ja mk nl-be pt sl tr \
bepo cz
ifdef INSTALL_BLOBS
BLOBS=bios.bin bios-256k.bin sgabios.bin vgabios.bin vgabios-cirrus.bin \
BLOBS=bios.bin bios-256k.bin bios-fast.bin \
sgabios.bin vgabios.bin vgabios-cirrus.bin \
vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin vgabios-virtio.bin \
acpi-dsdt.aml \
ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc QEMU,tcx.bin QEMU,cgthree.bin \

View File

@ -61,9 +61,11 @@ default:
@echo " slof -- update slof.bin"
@echo " u-boot.e500 -- update u-boot.e500"
bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k
bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k \
build-seabios-config-seabios-fast
cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin
cp seabios/builds/seabios-256k/bios.bin ../pc-bios/bios-256k.bin
cp seabios/builds/seabios-fast/bios.bin ../pc-bios/bios-fast.bin
seavgabios: $(patsubst %,seavgabios-%,$(vgabios_variants))

27
roms/config.seabios-fast Normal file
View File

@ -0,0 +1,27 @@
# The fastest SeaBIOS that can boot Linux using -kernel.
# NB: Since we are using -kernel, we don't need SeaBIOS itself
# to do any boot drive detection, boot ordering, etc.
# general stuff
CONFIG_QEMU=y
CONFIG_ROM_SIZE=0
CONFIG_WRITABLE_UPPERMEMORY=y
CONFIG_RELOCATE_INIT=n
# no input, no boot menu
CONFIG_MOUSE=n
CONFIG_KEYBOARD=n
CONFIG_BOOTMENU=n
CONFIG_BOOTSPLASH=n
CONFIG_BOOTORDER=n
# hardware support we don't need
CONFIG_LPT=n
CONFIG_SERIAL=n
CONFIG_USB=n
CONFIG_DRIVES=n
CONFIG_TCGBIOS=n
CONFIG_VGAHOOKS=n
# no logging
CONFIG_DEBUG_LEVEL=0