Message ID | 1467624822-25974-3-git-send-email-kraxel@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Jul 04, 2016 at 11:33:40AM +0200, Gerd Hoffmann wrote: > From: "Richard W.M. Jones" <rjones@redhat.com> > > 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> Hi Gerd, I'd like to "self-" NACK this patch - ie. I withdraw it. It needs more work to benchmark any time savings, and I think also to explore other ways to fix the problem. Thanks, Rich.
On Mo, 2016-07-04 at 11:08 +0100, Richard W.M. Jones wrote:
> Hi Gerd, I'd like to "self-" NACK this patch - ie. I withdraw it.
Ok. Dropped patch, dropped binary, PULL v2 sent.
cheers,
Gerd
Hi, On 04/07/2016 11:33, Gerd Hoffmann wrote: > From: "Richard W.M. Jones" <rjones@redhat.com> > > 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 I like the idea: I'm wondering if we should do the same thing for ppc64? In fact, it is already done, if you have kvm-unit-tests, you can do: qemu-system-ppc64 ... -kernel vmlinuz \ -initrd initramfs.img \ -append .... \ -bios .../kvm-unit-tests/powerpc/boot_rom.bin and boot_rom.bin is (thanks to the power of device-tree): #define SPAPR_KERNEL_LOAD_ADDR 0x400000 .text .globl start start: b SPAPR_KERNEL_LOAD_ADDR - 0x100 It can't be faster... The question is: should we add this binary to qemu? And it can open new doors: booting with petitboot instead of SLOF. Laurent
diff --git a/Makefile b/Makefile index 9d12dc6..7bfb8b4 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 7bd1252..26b0586 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 0000000..045693e --- /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