patch QEMU for raspberry4
Go to file
Peter Maydell f235538e38 ppc patch queue for 2016-03-16
Accumulated patches for target-ppc, pseries machine type and related
 devices.  As we are now in soft freeze, these are mostly fixes.
    * Fix KVM migration for several SPRs that qemu didn't handle
    * Clean up handling of SDR1, which allows a fix to the gdbstub
    * Fix a race in spapr_rng
    * Fix a bug with multifunction hotplug
 
 The exception is the 7 patches to allow EEH on spapr-pci-host-bridge
 devices (rather than the special and poorly designed
 spapr-vfio-pci-host-bridge device).  I believe these are low risk of
 breaking non-EEH cases, and EEH cases were little used in practice
 previously (since libvirt did not support the special device amongst
 other things).  It did have a draft posted before the soft freeze,
 removes a very ugly VFIO interface, and removes device we'd like to
 deprecate sooner rather than later.  So, I'm hoping we can squeeze
 these in during the soft freeze.
 
 This includes two patches to the VFIO code, which Alex Williamson has
 indicated he's ok with coming through my tree.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJW6Ol0AAoJEGw4ysog2bOSGs8QAMOnP0WTA7NXB5l5OBqM+pGI
 cud7SnDr/GazPqvh1/1Enc+5M77gomdT6VHqlZGvgU23Iduil6a9mHeE89QY/b8B
 wNM+mPvQH8TIp8Z9/GyayhgsK65LKa904Mw9C3vGh3Ecx9tAKm55IxDqZir15m2U
 D9EHJQKkR4K6H5UyHr4eK8ACCWQdwn32VByEQ8hBV3wVszWR0+AKgCV30bH38c9/
 rmAGr3VKtMUquGfVyMtvShoRmwHkLSL+Waxdqkfff6csCdAYH40N9CRCLQBdo08o
 opd8dLbjCZlnwDoDIbw92i5P7oMysrIhCqOVqkiEGgUwkOIkR21SO0/DZdTWxkan
 baFcTAYc8mcWc9fXUGHBcCBrU+ChRLI9h94x+BK8PzFDHY8SPGC3V+7lzzcooZHT
 dmvPIY/JCdUVFYFQSYOznr3nni1L8M6Ol7OKyRrtr1dssCETLfI9fMCUxURybLUy
 iolnJ8QGdcoSp620ewy4i33AKR+Y1Baby5AMK1iDGlwDlo/S7zqgIXVOyjU3ARZ6
 yf6DZO1/0iLTu8nODqPd25GWuCB3GUmB5P6naZu+rEyvchBSTL5f6LOiXOWoso5f
 Nk3oQ9GrlmIuOPemlIiO/yHbsb7GO9WYtl6fhpRp4CRdEvCj/i9xegZ+xX53VHWr
 6kOHD8SHpF4qS+POWU5l
 =7P3U
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.6-20160316' into staging

ppc patch queue for 2016-03-16

Accumulated patches for target-ppc, pseries machine type and related
devices.  As we are now in soft freeze, these are mostly fixes.
   * Fix KVM migration for several SPRs that qemu didn't handle
   * Clean up handling of SDR1, which allows a fix to the gdbstub
   * Fix a race in spapr_rng
   * Fix a bug with multifunction hotplug

The exception is the 7 patches to allow EEH on spapr-pci-host-bridge
devices (rather than the special and poorly designed
spapr-vfio-pci-host-bridge device).  I believe these are low risk of
breaking non-EEH cases, and EEH cases were little used in practice
previously (since libvirt did not support the special device amongst
other things).  It did have a draft posted before the soft freeze,
removes a very ugly VFIO interface, and removes device we'd like to
deprecate sooner rather than later.  So, I'm hoping we can squeeze
these in during the soft freeze.

This includes two patches to the VFIO code, which Alex Williamson has
indicated he's ok with coming through my tree.

# gpg: Signature made Wed 16 Mar 2016 05:04:52 GMT using RSA key ID 20D9B392
# gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>"
# gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>"
# gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-2.6-20160316:
  vfio: Eliminate vfio_container_ioctl()
  spapr_pci: Remove finish_realize hook
  spapr_pci: (Mostly) remove spapr-pci-vfio-host-bridge
  spapr_pci: Allow EEH on spapr-pci-host-bridge
  spapr_pci: Eliminate class callbacks
  spapr_pci: Switch to vfio_eeh_as_op() interface
  vfio: Start improving VFIO/EEH interface
  spapr_rng: fix race with main loop
  target-ppc: Eliminate kvmppc_kern_htab global
  target-ppc: Add helpers for updating a CPU's SDR1 and external HPT
  target-ppc: Split out SREGS get/put functions
  spapr_pci: fix multifunction hotplug
  target-ppc: Add PVR for POWER8NVL processor
  ppc: Add a few more P8 PMU SPRs
  ppc: Fix migration of the TAR SPR
  ppc: Define the PSPB register on POWER8

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-16 10:09:26 +00:00
audio all: Clean up includes 2016-02-23 12:43:05 +00:00
backends rng: switch request queue to QSIMPLEQ 2016-03-08 12:54:14 +05:30
block quorum: Fix crash in quorum_aio_cb() 2016-03-14 17:35:06 +01:00
bsd-user build: [bsd-user] Rename "syscall.h" to "target_syscall.h" in target directories 2016-02-25 16:41:08 +00:00
contrib all: Clean up includes 2016-02-23 12:43:05 +00:00
crypto crypto: ensure qcrypto_hash_digest_len is always defined 2016-02-02 13:02:56 +00:00
default-configs hw: Add support for LSI SAS1068 (mptsas) device 2016-02-09 15:45:26 +01:00
disas target-mips: implement R6 multi-threading 2016-02-26 08:59:17 +00:00
docs icount: decouple warp calls 2016-03-15 18:23:45 +01:00
dtc@65cc4d2748 dtc: Update dtc / libfdt submodule to version 1.4.0 2015-06-03 23:56:49 +02:00
fpu fpu: Use plain 'int' rather than 'int_fast16_t' for exponents 2016-02-19 16:27:22 +00:00
fsdev all: Clean up includes 2016-02-23 12:43:05 +00:00
gdb-xml target-ppc: gdbstub: Add VSX support 2016-01-30 23:37:38 +11:00
hw ppc patch queue for 2016-03-16 2016-03-16 10:09:26 +00:00
include ppc patch queue for 2016-03-16 2016-03-16 10:09:26 +00:00
io osdep: remove use of socket_error() from all code 2016-03-10 17:19:34 +00:00
libdecnumber libdecnumber: Clean up includes 2016-02-16 14:29:27 +00:00
linux-headers linux-headers: update against kvm/next 2016-03-01 12:15:28 +01:00
linux-user osdep: add wrappers for socket functions 2016-03-10 17:19:07 +00:00
migration migration: 2016-03-14 13:51:21 +00:00
nbd all: Clean up includes 2016-02-23 12:43:05 +00:00
net slirp: Adding IPv6 support to Qemu -net user mode 2016-03-15 17:09:52 +00:00
pc-bios pc-bios/s390-ccw: fix old bug in ptr increment 2016-03-10 10:37:16 +01:00
pixman@87eea99e44 pixman: update internal copy to pixman-0.32.6 2014-09-15 08:14:19 +02:00
po Update language files for QEMU 2.5.0 2015-12-10 13:50:45 +00:00
qapi qmp event: Refactor QUORUM_REPORT_BAD 2016-03-14 16:46:43 +01:00
qga qga: fix w32 breakage due to missing osdep.h includes 2016-02-25 10:54:32 -06:00
qobject qobject: Document more shortcomings in our number handling 2016-02-08 17:29:54 +01:00
qom cpu: Clean up includes 2016-02-23 12:43:04 +00:00
replay replay: character devices 2016-03-15 18:23:40 +01:00
roms seabios: update to 1.9.1 stable release 2016-03-01 09:37:07 +01:00
scripts update-linux-headers: Add userfaultfd.h 2016-03-15 18:23:33 +01:00
slirp slirp: Add IPv6 support to the TFTP code 2016-03-15 17:05:34 +01:00
stubs icount: decouple warp calls 2016-03-15 18:23:45 +01:00
target-alpha tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-arm target-arm: Only trap SRS from S-EL1 if specified mode is MON 2016-03-04 11:30:22 +00:00
target-cris tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-i386 X86 fixes 2016-03-15 11:05:37 +00:00
target-lm32 tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-m68k tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-microblaze tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-mips tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-moxie tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-openrisc tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-ppc target-ppc: Eliminate kvmppc_kern_htab global 2016-03-16 09:55:06 +11:00
target-s390x s390x/cpu: Allow hotplug of CPUs 2016-03-10 10:37:15 +01:00
target-sh4 tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-sparc tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-tilegx tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-tricore tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-unicore32 tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
target-xtensa tcg: Add type for vCPU pointers 2016-03-01 13:27:09 +00:00
tcg tcg: Move definition of type TCGv 2016-03-01 13:27:09 +00:00
tests acpi: minor fix 2016-03-16 09:27:58 +00:00
trace trace: Add 'vcpu' event property to trace guest vCPU 2016-03-01 13:27:10 +00:00
ui ui/console: add escape sequence \e[5, 6n 2016-03-09 09:35:56 +01:00
util osdep: remove use of socket_error() from all code 2016-03-10 17:19:34 +00:00
.dir-locals.el Add .dir-locals.el file to configure emacs coding style 2015-10-08 19:46:01 +03:00
.exrc qemu: add .exrc 2012-09-07 09:02:44 +03:00
.gitignore maint: Ignore ivshmem binaries 2015-11-06 15:42:38 +03:00
.gitmodules PPC: Add u-boot firmware for e500 2014-06-16 13:24:35 +02:00
.mailmap Update mailmap 2013-09-05 09:40:31 -05:00
.travis.yml .travis.yml: reduce the test matrix a little 2016-02-08 18:50:25 +00:00
accel.c all: Clean up includes 2016-02-04 17:41:30 +00:00
aio-posix.c all: Clean up includes 2016-02-04 17:41:30 +00:00
aio-win32.c all: Clean up includes 2016-02-04 17:41:30 +00:00
arch_init.c all: Clean up includes 2016-02-04 17:41:30 +00:00
async.c all: Clean up includes 2016-02-04 17:41:30 +00:00
balloon.c all: Clean up includes 2016-02-04 17:41:30 +00:00
block.c block: Move block dirty bitmap code to separate files 2016-03-14 17:35:05 +01:00
blockdev-nbd.c nbd: enable use of TLS with nbd-server-start command 2016-02-16 17:17:49 +01:00
blockdev.c hmp: Extend drive_del to delete nodes without BB 2016-03-14 16:46:43 +01:00
blockjob.c blockjob: Fix hang in block_job_finish_sync 2016-02-09 13:52:26 +00:00
bootdevice.c qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
bt-host.c all: Clean up includes 2016-02-04 17:41:30 +00:00
bt-vhci.c all: Clean up includes 2016-02-04 17:41:30 +00:00
Changelog Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
CODING_STYLE CODING_STYLE: update mixed declaration rules 2015-09-09 15:34:54 +02:00
configure configure: detect ifunc and avx2 attribute 2016-03-08 16:53:26 +05:30
COPYING COPYING: update from FSF 2008-10-12 17:54:42 +00:00
COPYING.LIB Update FSF address in GPL/LGPL boilerplate 2009-01-04 22:05:52 +00:00
cpu-exec-common.c exec: Clean up includes 2016-01-29 15:07:22 +00:00
cpu-exec.c log: do not unnecessarily include qom/cpu.h 2016-02-03 09:19:10 +00:00
cpus.c icount: decouple warp calls 2016-03-15 18:23:45 +01:00
cputlb.c memory: Drop MemoryRegion.ram_addr 2016-03-07 13:26:29 +01:00
device-hotplug.c hmp: 'drive_add -n' for creating a node without BB 2016-03-14 16:46:43 +01:00
device_tree.c device_tree: qemu_fdt_getprop_cell converted to use the error API 2016-02-19 09:42:30 -07:00
disas.c all: Clean up includes 2016-02-04 17:41:30 +00:00
dma-helpers.c all: Clean up includes 2016-02-04 17:41:30 +00:00
dump.c dump-guest-memory: add qmp event DUMP_COMPLETED 2016-02-22 18:40:29 +01:00
exec.c exec: fix early return from ram_block_add 2016-03-15 18:23:33 +01:00
gdbstub.c replay: character devices 2016-03-15 18:23:40 +01:00
HACKING HACKING: Add a section on error handling and reporting 2016-02-09 13:19:49 +01:00
hmp-commands-info.hx Dump: add hmp command "info dump" 2016-02-22 18:40:28 +01:00
hmp-commands.hx hmp: 'drive_add -n' for creating a node without BB 2016-03-14 16:46:43 +01:00
hmp.c * Asynchronous dump-guest-memory from Peter 2016-02-25 15:30:57 +00:00
hmp.h Dump: add hmp command "info dump" 2016-02-22 18:40:28 +01:00
iohandler.c all: Clean up includes 2016-02-04 17:41:30 +00:00
ioport.c all: Clean up includes 2016-02-04 17:41:30 +00:00
iothread.c all: Clean up includes 2016-02-04 17:41:30 +00:00
kvm-all.c kvm/irqchip: use bitmap utility for gsi tracking 2016-03-07 15:18:22 +01:00
kvm-stub.c all: Clean up includes 2016-02-04 17:41:30 +00:00
LICENSE vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio 2014-12-19 15:24:06 -07:00
main-loop.c icount: decouple warp calls 2016-03-15 18:23:45 +01:00
MAINTAINERS vhost, virtio, pci, pc, acpi 2016-03-15 16:43:48 +00:00
Makefile osdep: add wrappers for socket functions 2016-03-10 17:19:07 +00:00
Makefile.objs log: move qemu-log.c into util/ directory 2016-02-03 09:19:10 +00:00
Makefile.target io: add abstract QIOChannel classes 2015-12-18 12:18:05 +00:00
memory.c trace: separate MMIO tracepoints from TB-access tracepoints 2016-03-14 09:34:30 +00:00
memory_mapping.c dump-guest-memory: add "detach" support 2016-02-22 18:40:28 +01:00
module-common.c all: Clean up includes 2016-02-04 17:41:30 +00:00
monitor.c monitor: Use QEMU_CLOCK_VIRTUAL for the event queue in qtest mode 2016-03-14 17:35:06 +01:00
numa.c qapi-dealloc: Reduce use outside of generated code 2016-03-04 17:16:32 +01:00
os-posix.c log: Redirect stderr to logfile if deamonized 2016-02-22 18:40:29 +01:00
os-win32.c all: Clean up includes 2016-02-04 17:41:30 +00:00
page_cache.c all: Clean up includes 2016-02-04 17:41:30 +00:00
qapi-schema.json qapi-schema, qemu-options & slirp: Adding Qemu options for IPv6 addresses 2016-03-15 10:35:25 +01:00
qdev-monitor.c all: Clean up includes 2016-02-04 17:41:30 +00:00
qdict-test-data.txt Introduce QDict test data file 2009-09-04 09:37:34 -05:00
qemu-bridge-helper.c all: Clean up includes 2016-02-04 17:41:30 +00:00
qemu-char.c replay: character devices 2016-03-15 18:23:40 +01:00
qemu-doc.texi qemu-options.hx: Improve documentation of chardev multiplexing mode 2016-02-19 18:27:56 +01:00
qemu-ga.texi docs: Style the command and its options in the synopsis 2016-01-26 15:58:11 +01:00
qemu-img-cmds.hx qemu-img: allow specifying image as a set of options args 2016-02-22 09:50:04 +01:00
qemu-img.c qemu-img: eliminate memory leak 2016-03-14 16:46:42 +01:00
qemu-img.texi qemu-img: allow specifying image as a set of options args 2016-02-22 09:50:04 +01:00
qemu-io-cmds.c block: Clean up includes 2016-01-20 13:36:23 +01:00
qemu-io.c qemu-io: use no_argument/required_argument constants 2016-02-22 09:50:05 +01:00
qemu-nbd.c util: Shorten references into SocketAddress 2016-03-05 10:41:52 +01:00
qemu-nbd.texi qemu-nbd: allow specifying image as a set of options args 2016-02-22 09:50:04 +01:00
qemu-options-wrapper.h vl.c: In qemu -h output, only print options for the arch we are running as 2011-12-19 10:27:33 -06:00
qemu-options.h vl.c: Move option generation logic into a wrapper file 2011-12-19 10:27:33 -06:00
qemu-options.hx qapi-schema, qemu-options & slirp: Adding Qemu options for IPv6 addresses 2016-03-15 10:35:25 +01:00
qemu-seccomp.c all: Clean up includes 2016-02-04 17:41:30 +00:00
qemu-tech.texi tcg: Rename tcg-target.c to tcg-target.inc.c 2016-02-23 08:30:38 -08:00
qemu-timer.c icount: decouple warp calls 2016-03-15 18:23:45 +01:00
qemu.nsi nsis: Add QEMU version information to Windows registry 2015-09-24 20:52:28 +02:00
qemu.sasl sasl: Avoid 'Could not find keytab file' in syslog 2014-03-15 13:54:18 +04:00
qjson.c all: Clean up includes 2016-02-04 17:41:30 +00:00
qmp-commands.hx postcopy: Remove the x- 2016-03-11 17:53:59 +05:30
qmp.c dump-guest-memory: add dump_in_progress() helper function 2016-02-22 18:40:28 +01:00
qtest.c all: Clean up includes 2016-02-04 17:41:30 +00:00
README README: fill out some useful quickstart information 2015-10-13 18:48:46 +02:00
rules.mak rules: filter out irrelevant files 2016-02-17 16:59:36 +02:00
softmmu_template.h exec.c: Pass MemTxAttrs to iotlb_to_region so it uses the right AS 2016-01-21 14:15:05 +00:00
spice-qemu-char.c chardev: Properly initialize ChardevCommon components 2016-02-25 16:11:29 +01:00
tcg-runtime.c all: Clean up includes 2016-02-04 17:41:30 +00:00
tci.c all: Clean up includes 2016-02-04 17:41:30 +00:00
thread-pool.c all: Clean up includes 2016-02-04 17:41:30 +00:00
thunk.c all: Clean up includes 2016-02-04 17:41:30 +00:00
tpm.c all: Clean up includes 2016-02-04 17:41:30 +00:00
trace-events -----BEGIN PGP SIGNATURE----- 2016-03-14 16:22:17 +00:00
translate-all.c log: do not unnecessarily include qom/cpu.h 2016-02-03 09:19:10 +00:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2015-06-05 17:09:59 +02:00
translate-common.c exec: Clean up includes 2016-01-29 15:07:22 +00:00
user-exec.c all: Clean up includes 2016-02-04 17:41:30 +00:00
VERSION Open 2.6 development tree 2015-12-17 10:17:08 +00:00
version.rc Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
vl.c input: linux evdev support 2016-03-08 12:20:11 +01:00
xen-common-stub.c xen: Clean up includes 2016-01-29 15:07:23 +00:00
xen-common.c xen: drop XenXC and associated interface wrappers 2016-02-10 12:01:24 +00:00
xen-hvm-stub.c fix MSI injection on Xen 2016-02-06 20:44:10 +02:00
xen-hvm.c xen: Drop __XEN_LATEST_INTERFACE_VERSION__ checks from prior to Xen 4.2 2016-02-10 12:01:32 +00:00
xen-mapcache.c xen: Clean up includes 2016-01-29 15:07:23 +00:00

         QEMU README
         ===========

QEMU is a generic and open source machine & userspace emulator and
virtualizer.

QEMU is capable of emulating a complete machine in software without any
need for hardware virtualization support. By using dynamic translation,
it achieves very good performance. QEMU can also integrate with the Xen
and KVM hypervisors to provide emulated hardware while allowing the
hypervisor to manage the CPU. With hypervisor support, QEMU can achieve
near native performance for CPUs. When QEMU emulates CPUs directly it is
capable of running operating systems made for one machine (e.g. an ARMv7
board) on a different machine (e.g. an x86_64 PC board).

QEMU is also capable of providing userspace API virtualization for Linux
and BSD kernel interfaces. This allows binaries compiled against one
architecture ABI (e.g. the Linux PPC64 ABI) to be run on a host using a
different architecture ABI (e.g. the Linux x86_64 ABI). This does not
involve any hardware emulation, simply CPU and syscall emulation.

QEMU aims to fit into a variety of use cases. It can be invoked directly
by users wishing to have full control over its behaviour and settings.
It also aims to facilitate integration into higher level management
layers, by providing a stable command line interface and monitor API.
It is commonly invoked indirectly via the libvirt library when using
open source applications such as oVirt, OpenStack and virt-manager.

QEMU as a whole is released under the GNU General Public License,
version 2. For full licensing details, consult the LICENSE file.


Building
========

QEMU is multi-platform software intended to be buildable on all modern
Linux platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety
of other UNIX targets. The simple steps to build QEMU are:

  mkdir build
  cd build
  ../configure
  make

Complete details of the process for building and configuring QEMU for
all supported host platforms can be found in the qemu-tech.html file.
Additional information can also be found online via the QEMU website:

  http://qemu-project.org/Hosts/Linux
  http://qemu-project.org/Hosts/W32


Submitting patches
==================

The QEMU source code is maintained under the GIT version control system.

   git clone git://git.qemu-project.org/qemu.git

When submitting patches, the preferred approach is to use 'git
format-patch' and/or 'git send-email' to format & send the mail to the
qemu-devel@nongnu.org mailing list. All patches submitted must contain
a 'Signed-off-by' line from the author. Patches should follow the
guidelines set out in the HACKING and CODING_STYLE files.

Additional information on submitting patches can be found online via
the QEMU website

  http://qemu-project.org/Contribute/SubmitAPatch
  http://qemu-project.org/Contribute/TrivialPatches


Bug reporting
=============

The QEMU project uses Launchpad as its primary upstream bug tracker. Bugs
found when running code built from QEMU git or upstream released sources
should be reported via:

  https://bugs.launchpad.net/qemu/

If using QEMU via an operating system vendor pre-built binary package, it
is preferable to report bugs to the vendor's own bug tracker first. If
the bug is also known to affect latest upstream code, it can also be
reported via launchpad.

For additional information on bug reporting consult:

  http://qemu-project.org/Contribute/ReportABug


Contact
=======

The QEMU community can be contacted in a number of ways, with the two
main methods being email and IRC

 - qemu-devel@nongnu.org
   http://lists.nongnu.org/mailman/listinfo/qemu-devel
 - #qemu on irc.oftc.net

Information on additional methods of contacting the community can be
found online via the QEMU website:

  http://qemu-project.org/Contribute/StartHere

-- End