aboutsummaryrefslogtreecommitdiffstats
path: root/roms/qboot/README
diff options
context:
space:
mode:
Diffstat (limited to 'roms/qboot/README')
-rw-r--r--roms/qboot/README47
1 files changed, 47 insertions, 0 deletions
diff --git a/roms/qboot/README b/roms/qboot/README
new file mode 100644
index 000000000..c91335709
--- /dev/null
+++ b/roms/qboot/README
@@ -0,0 +1,47 @@
+A simple x86 firmware that can boot Linux.
+
+Most of QEMU's startup time is spent:
+
+* in the dynamic linker. This can be reduced by 150 ms simply by
+ compiling a stripped down QEMU:
+
+ ./configure --disable-libssh2 --disable-tcmalloc --disable-glusterfs \
+ --disable-seccomp --disable-{bzip2,snappy,lzo} --disable-usb-redir \
+ --disable-libusb --disable-smartcard-nss --disable-libnfs \
+ --disable-libiscsi --disable-rbd --disable-spice --disable-attr \
+ --disable-cap-ng --disable-linux-aio --disable-brlapi \
+ --disable-vnc-{jpeg,tls,sasl,png,ws} --disable-rdma --disable-bluez \
+ --disable-fdt --disable-curl --disable-curses --disable-sdl \
+ --disable-gtk --disable-tpm --disable-vte --disable-vnc \
+ --disable-xen --disable-opengl --target-list=x86_64-softmmu
+
+* in the BIOS. qboot saves another 150 ms.
+
+* until QEMU 2.7+, in fw_cfg. qboot uses the DMA interface which is pretty
+ much instantaneous.
+
+Compile qboot
+=============
+
+Clone the source:
+
+ $ git clone https://github.com/bonzini/qboot.git
+
+Compile the qboot firmware (you may need to install the relevant build
+time dependancies):
+
+ $ meson build && ninja -C build
+
+The result will be a 64K file named bios.bin under the build/ directory.
+
+Usage
+=====
+
+ $ qemu-kvm -bios bios.bin \
+ -kernel /boot/vmlinuz-4.0.3-300.fc22.x86_64 \
+ -serial mon:stdio -append 'console=ttyS0,115200,8n1'
+
+TODO
+====
+
+* Add the possibility to configure out PIC and PCI bridge initialization