qemu/pc-bios
David Gibson a9f8ad8f2a 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>
2011-04-01 18:34:57 +02:00
..
keymaps add bepo (french dvorak) keyboard layout 2011-01-20 12:37:21 +01:00
optionrom fix linuxboot.bin and multiboot.bin to not hijack int19 2011-03-22 07:00:58 +01:00
spapr-rtas Implement hcall based RTAS for pSeries machines 2011-04-01 18:34:56 +02:00
bamboo.dtb Add bamboo.dtb compiled from bamboo.dts 2008-12-17 00:03:01 +00:00
bamboo.dts target-ppc: IBM PowerPC 440EP Bamboo reference board emulation 2008-12-16 10:44:14 +00:00
bios.bin seabios: update to latest git 2011-03-21 17:41:52 -05:00
gpxe-eepro100-80861209.rom eepro100: Support gpxe boot for all eepro100 devices 2010-03-03 13:33:52 +02:00
linuxboot.bin pc-bios: update linuxboot.bin and multiboot.bin 2011-03-22 07:03:15 +01:00
Makefile pc-bios/Makefile: add a rule to produce dtb files 2009-03-07 04:56:06 +00:00
mpc8544ds.dtb kvm/powerpc: flat device tree files for MPC8544DS 2009-03-02 16:42:49 +00:00
mpc8544ds.dts kvm/powerpc: flat device tree files for MPC8544DS 2009-03-02 16:42:49 +00:00
multiboot.bin pc-bios: update linuxboot.bin and multiboot.bin 2011-03-22 07:03:15 +01:00
ohw.diff specific mac-io PCI device_id for paddington/heathrow - fixed atapi requests - reset IDE drives in quiesce - added heathrow nvram OF description 2005-07-07 22:38:00 +00:00
openbios-ppc Update OpenBIOS images to r1018 2011-01-30 13:10:10 +00:00
openbios-sparc32 Update OpenBIOS images to r1018 2011-01-30 13:10:10 +00:00
openbios-sparc64 Update OpenBIOS images to r1018 2011-01-30 13:10:10 +00:00
petalogix-ml605.dtb microblaze: Add PetaLogix ml605 MMU little-endian ref design 2011-03-16 15:18:58 +01:00
petalogix-s3adsp1800.dtb microblaze: Fix loading of petalogix s3adsp1800 dtb. 2009-06-03 21:54:31 +02:00
ppc_rom.bin Quickly hack PowerPC BIOS able to boot on CDROM again. 2007-10-01 06:44:33 +00:00
pxe-e1000.bin Update gpxe roms to have BANNER_TIMEOUT=0 2009-10-30 16:44:26 -05:00
pxe-ne2k_pci.bin Update gpxe roms to have BANNER_TIMEOUT=0 2009-10-30 16:44:26 -05:00
pxe-pcnet.bin Update gpxe roms to have BANNER_TIMEOUT=0 2009-10-30 16:44:26 -05:00
pxe-rtl8139.bin Update gpxe roms to have BANNER_TIMEOUT=0 2009-10-30 16:44:26 -05:00
pxe-virtio.bin Update gpxe roms to have BANNER_TIMEOUT=0 2009-10-30 16:44:26 -05:00
README Add SLOF-based partition firmware for pSeries machine, allowing more boot options 2011-04-01 18:34:57 +02:00
s390-zipl.rom target-s390: add firmware code 2010-05-18 21:12:48 +02:00
slof.bin Add SLOF-based partition firmware for pSeries machine, allowing more boot options 2011-04-01 18:34:57 +02:00
spapr-rtas.bin Implement hcall based RTAS for pSeries machines 2011-04-01 18:34:56 +02:00
vgabios-cirrus.bin Add new vgabios binaries to blobs list. 2010-11-16 08:39:52 -06:00
vgabios-qxl.bin spice: add qxl vgabios binary. 2010-12-09 14:23:24 +01:00
vgabios-stdvga.bin Add new vgabios binaries to blobs list. 2010-11-16 08:39:52 -06:00
vgabios-vmware.bin Add new vgabios binaries to blobs list. 2010-11-16 08:39:52 -06:00
vgabios.bin Add new vgabios binaries to blobs list. 2010-11-16 08:39:52 -06:00

- SeaBIOS (bios.bin) is the successor of pc bios.
  See http://www.seabios.org/ for more information.

- The VGA BIOS and the Cirrus VGA BIOS come from the LGPL VGA bios
  project (http://www.nongnu.org/vgabios/).

- The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is
  available at http://perso.magic.fr/l_indien/OpenHackWare/index.htm.

- OpenBIOS (http://www.openbios.org/) is a free (GPL v2) portable
  firmware implementation. The goal is to implement a 100% IEEE
  1275-1994 (referred to as Open Firmware) compliant firmware.
  The included image for PowerPC (for 32 and 64 bit PPC CPUs), Sparc32
  and Sparc64 are built from OpenBIOS SVN revision 1018.

- SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
  implementation for certain IBM POWER hardware.  The sources are at
  https://github.com/dgibson/SLOF, and the image currently in qemu is
  built from git tag qemu-slof-20110323.

- The PXE roms come from Rom-o-Matic gPXE 0.9.9 with BANNER_TIMEOUT=0

  e1000 8086:100E
  eepro100 8086:1209 (also used for 8086:1229 and 8086:2449)
  ns8390 1050:0940
  pcnet32 1022:2000
  rtl8139 10ec:8139
  virtio 1af4:1000

  http://rom-o-matic.net/

- The S390 zipl loader is an addition to the official IBM s390-tools
  package. That fork is maintained in its own git repository at:
  git://repo.or.cz/s390-tools.git