aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2016-05-14 19:50:51 +0100
committerGerd Hoffmann <kraxel@redhat.com>2016-07-04 11:28:58 +0200
commit4e04ab6a63ebe9fb4305e7e8e49cc8b0095db8fb (patch)
tree6fcaea70111ca3916c712b8fca9b0b69e5473785
parent8692aa29798e0f2cb5069f2460bbe19ff538fc71 (diff)
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>
-rw-r--r--Makefile3
-rw-r--r--roms/Makefile4
-rw-r--r--roms/config.seabios-fast27
3 files changed, 32 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 9d12dc614f..7bfb8b4e90 100644
--- a/Makefile
+++ b/Makefile
@@ -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 \
diff --git a/roms/Makefile b/roms/Makefile
index 7bd1252737..26b058659a 100644
--- a/roms/Makefile
+++ b/roms/Makefile
@@ -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))
diff --git a/roms/config.seabios-fast b/roms/config.seabios-fast
new file mode 100644
index 0000000000..045693ea59
--- /dev/null
+++ b/roms/config.seabios-fast
@@ -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