- 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 505.

- 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/
