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 released under the BSD license
   (see license headers in files).

4) QEMU is a trademark of Fabrice Bellard.

Fabrice Bellard and the QEMU team
