summaryrefslogtreecommitdiff
path: root/pc-bios/slof.bin
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2011-04-01 15:15:34 +1100
committerAlexander Graf <agraf@suse.de>2011-04-01 18:34:57 +0200
commita9f8ad8f2acdb2398da5d32a5efc19cb0196d79f (patch)
treea217360c44ef60c2ad654ecd3cd4836281e29c1f /pc-bios/slof.bin
parented120055c7f9b26b5707d3ceabbe5a3f06aaf937 (diff)
downloadqemu-a9f8ad8f2acdb2398da5d32a5efc19cb0196d79f.tar.gz
qemu-a9f8ad8f2acdb2398da5d32a5efc19cb0196d79f.tar.bz2
qemu-a9f8ad8f2acdb2398da5d32a5efc19cb0196d79f.zip
Add SLOF-based partition firmware for pSeries machine, allowing more boot options
Currently, the emulated pSeries machine requires the use of the -kernel parameter in order to explicitly load a guest kernel. This means booting from the virtual disk, cdrom or network is not possible. This patch addresses this limitation by inserting a within-partition firmware image (derived from the "SLOF" free Open Firmware project). If -kernel is not specified, qemu will now load the SLOF image, which has access to the qemu boot device list through the device tree, and can boot from any of the usual virtual devices. In order to support the new firmware, an extension to the emulated machine/hypervisor is necessary. Unlike Linux, which expects multi-CPU entry to be handled kexec() style, the SLOF firmware expects only one CPU to be active at entry, and to use a hypervisor RTAS method to enable the other CPUs one by one. This patch also implements this 'start-cpu' method, so that SLOF can start the secondary CPUs and marshal them into the kexec() holding pattern ready for entry into the guest OS. Linux should, and in the future might directly use the start-cpu method to enable initially disabled CPUs, but for now it does require kexec() entry. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: David Gibson <dwg@au1.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'pc-bios/slof.bin')
-rw-r--r--pc-bios/slof.binbin0 -> 579072 bytes
1 files changed, 0 insertions, 0 deletions
diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin
new file mode 100644
index 0000000000..22c4c7f5c4
--- /dev/null
+++ b/pc-bios/slof.bin
Binary files differ