The QEMU distribution includes both the QEMU emulator and
various firmware files.  These are separate programs that are
distributed together for our users' convenience, and they have
separate licenses.

The following points clarify the license of the QEMU emulator:

1) The QEMU emulator as a whole is released under the GNU General
Public License, version 2.

2) Parts of the QEMU emulator have specific licenses which are compatible
with the GNU General Public License, version 2. Hence each source file
contains its own licensing information.  Source files with no licensing
information are released under the GNU General Public License, version
2 or (at your option) any later version.

As of July 2013, contributions under version 2 of the GNU General Public
License (and no later version) are only accepted for the following files
or directories: bsd-user/, linux-user/, hw/vfio/, hw/xen/xen_pt*.

3) The Tiny Code Generator (TCG) is mostly under the BSD or MIT licenses;
   but some parts may be GPLv2 or other licenses. Again, see the
   specific licensing information in each source file.

4) QEMU is a trademark of Fabrice Bellard.

Fabrice Bellard and the QEMU team
