- The PC BIOS comes from the Bochs project
  (http://bochs.sourceforge.net/). A patch from bios.diff was applied.

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

- Proll is a GPL'd boot PROM for Sparc JavaStations
  (http://people.redhat.com/zaitcev/linux/).
  Applying proll.patch allows circumventing some bugs and enables
  faster kernel load through a hack.

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