qemu/pc-bios
Alexander Graf f16408dfb0 Multiboot support v5
This patch implements support for Multiboot on x86 for -kernel.
Multiboot is a "new" approach to get rid of different bootloaders, providing
a unified interface for the kernel. It supports command line options and
kernel modules.

The two probably best known projects using multiboot are Xen and GNU Hurd.

This implementation should be mostly feature-complete. It is missing VBE
extensions, but as no system uses them currently it does not really hurt.

To use multiboot, specify the kernel as -kernel option. Modules should be given
as -initrd options, seperated by a comma (,). -append also works.

Please bear in mind that grub also does gzip decompression, which qemu does
not do yet. To run existing images, please ungzip them first.

The guest multiboot loader code is implemented as option rom using int 19.
Parts of the work are based on efforts by Rene Rebe, who originally ported
my code to int 19.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-06-29 13:52:12 -05:00
..
bios-pq bios: Use the correct mask to size the PCI option ROM BAR 2009-05-22 10:50:37 -05:00
keymaps Move keymaps into pc-bios 2009-05-28 02:14:56 -05:00
optionrom Multiboot support v5 2009-06-29 13:52:12 -05:00
vgabios-pq Update VGA BIOS 2008-12-17 22:29:37 +00: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 bios: Use the correct mask to size the PCI option ROM BAR 2009-05-22 10:50:37 -05: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
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 r482 2009-03-31 15:46:09 +00:00
openbios-sparc32 Update OpenBIOS images to r482 2009-03-31 15:46:09 +00:00
openbios-sparc64 Update OpenBIOS images to r482 2009-03-31 15:46:09 +00: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 Add e1000 etherboot ROM from http://www.rom-o-matic.net 2008-07-26 16:53:22 +00:00
pxe-ne2k_pci.bin Add new Etherboot ROMs for PXE boot. 2007-01-05 23:48:51 +00:00
pxe-pcnet.bin Add new Etherboot ROMs for PXE boot. 2007-01-05 23:48:51 +00:00
pxe-rtl8139.bin Add new Etherboot ROMs for PXE boot. 2007-01-05 23:48:51 +00:00
README Update OpenBIOS images to r482 2009-03-31 15:46:09 +00:00
vgabios-cirrus.bin Update VGA BIOS 2008-12-17 22:29:37 +00:00
vgabios.bin Update VGA BIOS 2008-12-17 22:29:37 +00:00
video.x VGA bios support for PowerPC 2005-07-03 14:00:51 +00:00

- The PC BIOS comes from the Bochs project (http://bochs.sourceforge.net/).
  The patches in bios-pq have been applied. The binary is based on the revision
  in bios-pq/HEAD with the patches in bios-pq/series applied.  The git repo
  that HEAD refers to is located at
  git://git.kernel.org/pub/scm/virt/bochs/bochs.git

  To build these use the following instructions:
  using guilt:
  $ export QEMUSRC=/path/to/qemu/svn
  $ git clone git://git.kernel.org/pub/scm/virt/bochs/bochs.git
  $ cd bochs
  $ git checkout -b qemu-bios $(cat $QEMUSRC/pc-bios/bios-pq/HEAD)

  $ mkdir -p .git/patches
  $ ln -s $QEMUSRC/pc-bios/bios-pq .git/patches/qemu-bios
  $ touch .git/patches/qemu-bios/status
  $ guilt push -a
  $ ./configure
  $ cd bios
  $ make
  $ cp BIOS-bochs-latest $QEMUSRC/pc-bios/bios.bin

  or alternatively (after the git checkout):
  $ for p in $(cat $QEMUSRC/pc-bios/bios-pq/series); do git am $p; done
  $ ./configure
  $ make bios

- The VGA BIOS and the Cirrus VGA BIOS come from the LGPL VGA bios
  project (http://www.nongnu.org/vgabios/).  The binary is based on the revision
  in vgabios-pq/HEAD with the patches in vgabios-pq/series applied.  The git
  repo that HEAD refers to is located at
  git://git.kernel.org/pub/scm/virt/vgabios/vgabios.git

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

- video.x is a PowerMac NDRV compatible driver for a VGA frame
  buffer. It comes from the Mac-on-Linux project
  (http://www.maconlinux.org/).

- 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 images for Sparc32, Sparc64 and PowerPC (for 32 and 64 bit
  PPC CPUs) are built from OpenBIOS SVN revision 482.

- The PXE roms come from Rom-o-Matic etherboot 5.4.2.
  pcnet32:pcnet32 -- [0x1022,0x2000]
  ns8390:winbond940 -- [0x1050,0x0940]
  rtl8139:rtl8139 -- [0x10ec,0x8139]
  http://rom-o-matic.net/