Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
Go to file
Peter Maydell 73c8bf4ccf target-arm queue:
* more MVE instructions
  * hw/gpio/gpio_pwr: use shutdown function for reboot
  * target/arm: Check NaN mode before silencing NaN
  * tests: Boot and halt a Linux guest on the Raspberry Pi 2 machine
  * hw/arm: Add basic power management to raspi.
  * docs/system/arm: Add quanta-gbs-bmc, quanta-q7l1-bmc
 -----BEGIN PGP SIGNATURE-----
 
 iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmDfDacZHHBldGVyLm1h
 eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3hLREACwXLyfUWdqWpbW2wAHU4n9
 SlNJjaKval707CBYQL03xvQyrSGinjaLmbljjE4Y3KV+XK/cRWXe/1bimBokk9Xt
 8blX2OlEkBViqyTqPcSLU0AMMzoTYCRHMlR9tVbz4h39Z/yfcxzDKvWjjpor/vtw
 +0G8N/Z/O3TL2gSDAb7fQcdhS4pwsTBFOkOgGv06WxWUAidHxuguJOn0DF+mr1Tl
 hroz8fivG2RfQL/OVE6GJgD+VIlw+Ea4Znnuue+gdoCCvY4TE79K6kGSV9RZVg4d
 VGtzNd5m9UGFaeU+jof/45hD4ex4x+c5ggH6fDwx6pJhKpxYwsJBMvE8U4I2TfsG
 Hf7EjODxvJ5I78/qCyYJ+be2ZnqMcfqPVhU3MwqBwGMIuYMJRWH2b4eD3PmRWPBf
 fxrlEZ9PvzaONzwFDHJ06XiMhxByVF+kK4XNtBZZMWH0Jte8e1TPnY26PfNtvnfE
 lQYf4qETx3A2aYIG5zjXiIhGrH5/OevIBOkVKWvdEHXbVN0dt0JcjUbZee6MG9Q1
 BN0xXlRQ2btsgYTvGVg08mkMi6LWl55j0CK/sx1qZPjnbgEyPq90kk6FKyflJhR5
 fUdW1qCn+xRERMH+m8xIvkGzYTlmPal86BRwxBxyGrVRHpXDgWE3sw/m6p6wMsQZ
 Szx8eMJEAX5GNbF7M+KmCg==
 =mvVV
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210702' into staging

target-arm queue:
 * more MVE instructions
 * hw/gpio/gpio_pwr: use shutdown function for reboot
 * target/arm: Check NaN mode before silencing NaN
 * tests: Boot and halt a Linux guest on the Raspberry Pi 2 machine
 * hw/arm: Add basic power management to raspi.
 * docs/system/arm: Add quanta-gbs-bmc, quanta-q7l1-bmc

# gpg: Signature made Fri 02 Jul 2021 13:59:19 BST
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "peter.maydell@linaro.org"
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [ultimate]
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20210702: (24 commits)
  target/arm: Implement MVE shifts by register
  target/arm: Implement MVE shifts by immediate
  target/arm: Implement MVE long shifts by register
  target/arm: Implement MVE long shifts by immediate
  target/arm: Implement MVE VADDLV
  target/arm: Implement MVE VSHLC
  target/arm: Implement MVE saturating narrowing shifts
  target/arm: Implement MVE VSHRN, VRSHRN
  target/arm: Implement MVE VSRI, VSLI
  target/arm: Implement MVE VSHLL
  target/arm: Implement MVE vector shift right by immediate insns
  target/arm: Implement MVE vector shift left by immediate insns
  target/arm: Implement MVE logical immediate insns
  target/arm: Use dup_const() instead of bitfield_replicate()
  target/arm: Use asimd_imm_const for A64 decode
  target/arm: Make asimd_imm_const() public
  target/arm: Fix bugs in MVE VRMLALDAVH, VRMLSLDAVH
  target/arm: Fix MVE widening/narrowing VLDR/VSTR offset calculation
  hw/gpio/gpio_pwr: use shutdown function for reboot
  target/arm: Check NaN mode before silencing NaN
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2021-07-03 22:34:37 +01:00
.github Update documentation to refer to new location for issues 2021-06-21 05:43:11 +02:00
.gitlab/issue_templates GitLab: Add "Feature Request" issue template. 2021-06-25 10:08:37 +01:00
.gitlab-ci.d python: rename 'venv-check' target to 'check-pipenv' 2021-06-30 21:54:04 -04:00
accel tcg: Use correct trap number for page faults on *BSD systems 2021-06-29 10:04:57 -07:00
audio coreaudio: Lock only the buffer 2021-06-23 14:16:48 +02:00
authz configure, meson: convert pam detection to meson 2021-06-25 10:54:10 +02:00
backends vhost: Add Error parameter to vhost_dev_init() 2021-06-30 13:15:44 +02:00
block Block layer patches 2021-07-02 11:46:32 +01:00
bsd-user accel/tcg: Merge tcg_exec_init into tcg_init_machine 2021-06-11 09:26:28 -07:00
capstone@f8b1b83301 capstone: Update to upstream "next" branch 2020-10-03 04:23:14 -05:00
chardev chardev/socket: Use qcrypto_tls_creds_check_endpoint() 2021-06-29 18:30:17 +01:00
contrib vhost-user-gpu: reorder free calls. 2021-06-15 07:16:25 +02:00
crypto crypto: Make QCryptoTLSCreds* structures private 2021-06-29 18:30:24 +01:00
default-configs hw/mem/nvdimm: Use Kconfig 'imply' instead of 'depends on' 2021-05-26 14:49:45 +02:00
disas disas/libvixl: Protect C system header for C++ compiler 2021-05-25 16:01:43 +01:00
docs docs/system/arm: Add quanta-gbs-bmc reference 2021-07-02 11:48:36 +01:00
dtc@85e5d83984 Makefile: dtc: update, build the libfdt target 2020-06-16 14:49:05 +01:00
dump Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
ebpf ebpf: Added eBPF RSS loader. 2021-06-04 15:25:46 +08:00
fpu softfloat: Use _Generic instead of QEMU_GENERIC 2021-06-16 15:03:26 +02:00
fsdev meson: Declare have_virtfs_proxy_helper in main meson.build 2021-01-23 15:55:04 -05:00
gdb-xml target/riscv: Remove built-in GDB XML files for CSRs 2021-01-16 10:57:21 -08:00
hw target-arm queue: 2021-07-03 22:34:37 +01:00
include target-arm queue: 2021-07-03 22:34:37 +01:00
io sockets: Support multipath TCP 2021-06-08 19:36:22 +01:00
libdecnumber qemu/: fix some comment spelling errors 2020-09-17 20:35:43 +02:00
linux-headers Update Linux headers to 5.13-rc4 2021-06-17 14:11:06 -04:00
linux-user Linux-user pull request 20210621 2021-06-22 16:07:53 +01:00
meson@776acd2a80 submodules: bump meson to 0.55.3 2020-10-17 10:45:42 -04:00
migration migration/tls: Use qcrypto_tls_creds_check_endpoint() 2021-06-29 18:30:20 +01:00
monitor tpm: Return QMP error when TPM is disabled in build 2021-06-15 10:59:02 -04:00
nbd nbd/client-connection: add option for non-blocking connection attempt 2021-06-18 12:21:22 -05:00
net Fixed calculation error of pkt->header_size in fill_pkt_tcp_info() 2021-06-11 10:30:13 +08:00
pc-bios pc-bios: Update the palcode-clipper image 2021-06-28 07:27:32 -07:00
plugins plugins/api: expose symbol lookup to plugins 2021-06-25 10:08:37 +01:00
po configure: move gettext detection to meson.build 2021-01-02 21:03:09 +01:00
python python: Fix broken ReST docstrings 2021-06-30 21:57:08 -04:00
qapi block/ssh: add support for sha256 host key fingerprints 2021-06-30 12:45:32 +02:00
qga qga: fix guest-get-disks regression 2021-04-20 16:27:45 +01:00
qobject qobject: braces {} are necessary for all arms of this statement 2021-02-04 13:20:29 +01:00
qom docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
replay replay: notify CPU on event 2021-04-01 10:37:20 +02:00
roms pc-bios: Update the palcode-clipper image 2021-06-28 07:27:32 -07:00
scripts scripts/checkpatch: roll diff tweaking into checkpatch itself 2021-06-25 10:08:33 +01:00
scsi docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
semihosting Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
slirp@8f43a99191 slirp: update to fix CVE-2020-29129 CVE-2020-29130 2020-11-27 20:57:11 +04:00
softmmu ui: Make the DisplayType enum entries conditional 2021-06-23 14:42:30 +02:00
storage-daemon qsd: Document FUSE exports 2021-03-29 18:28:33 +02:00
stubs async: the main AioContext is only "current" if under the BQL 2021-06-18 10:59:52 -05:00
subprojects/libvhost-user build-sys: add libvhost-user missing dependencies 2021-01-23 09:26:41 -05:00
target target/arm: Implement MVE shifts by register 2021-07-02 11:48:38 +01:00
tcg tcg/riscv: Remove MO_BSWAP handling 2021-06-29 10:04:57 -07:00
tests target-arm queue: 2021-07-03 22:34:37 +01:00
tools -----BEGIN PGP SIGNATURE----- 2021-06-04 13:38:49 +01:00
trace trace: fix "-trace file=..." 2021-03-06 11:42:57 +01:00
ui ui/vnc: Use qcrypto_tls_creds_check_endpoint() 2021-06-29 18:30:22 +01:00
util co-shared-resource: protect with a mutex 2021-06-25 14:24:24 +03:00
.cirrus.yml cirrus.yml: Fix the MSYS2 task 2021-05-14 13:11:48 +02:00
.dir-locals.el Add .dir-locals.el file to configure emacs coding style 2015-10-08 19:46:01 +03:00
.editorconfig .editorconfig: update the automatic mode setting for Emacs 2021-03-10 15:34:11 +00:00
.exrc
.gdbinit .gdbinit: load QEMU sub-commands when gdb starts 2017-06-07 14:38:45 +01:00
.gitattributes maint: Tell git that *.py files should use python diff hunks 2021-02-15 22:13:34 -05:00
.gitignore Makefile: add GNU global tags support 2021-01-18 10:04:31 +00:00
.gitlab-ci.yml gitlab: Run Avocado tests manually (except mainstream CI) 2021-05-27 16:39:23 +02:00
.gitmodules gitmodules: use GitLab repos instead of qemu.org 2021-02-09 20:53:56 +00:00
.gitpublish Add a git-publish configuration file 2018-03-05 09:03:17 +00:00
.mailmap MAINTAINERS: chenhc@lemote.com -> chenhuacai@kernel.org 2020-12-13 16:00:58 +01:00
.patchew.yml scripts/checkpatch: roll diff tweaking into checkpatch itself 2021-06-25 10:08:33 +01:00
.readthedocs.yml readthedocs: build with Python 3.6 2020-10-05 16:30:45 +01:00
.travis.yml travis.yml: Limit simultaneous jobs to 3 2021-02-19 06:31:40 +01:00
block.c block: Allow changing bs->file on reopen 2021-06-29 16:51:00 +02:00
blockdev-nbd.c block/nbd: Use qcrypto_tls_creds_check_endpoint() 2021-06-29 18:29:47 +01:00
blockdev.c block: drop BlockBackendRootState::read_only 2021-06-02 14:23:20 +02:00
blockjob.c progressmeter: protect with a mutex 2021-06-25 14:24:24 +03:00
configure configure, meson: convert libusbredir detection to meson 2021-06-25 10:54:12 +02:00
COPYING
COPYING.LIB COPYING.LIB: Synchronize the LGPL 2.1 with the version from gnu.org 2019-01-30 11:01:22 +01:00
cpu.c cpu: Move CPUClass::vmsd to SysemuCPUOps 2021-05-26 15:33:59 -07:00
cpus-common.c overall/alpha tcg cpus|hppa: Fix Lesser GPL version number 2020-11-15 16:43:54 +01:00
disas.c Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
gdbstub.c gdbstub: tidy away reverse debugging check into function 2021-05-25 16:52:50 +01:00
gitdm.config contrib: gitdm: add a mapping for Janus Technologies 2019-03-12 19:31:29 +00:00
hmp-commands-info.hx hmp: Add "calc_dirty_rate" and "info dirty_rate" cmds 2021-06-08 20:18:26 +01:00
hmp-commands.hx netdev: add more commands to preconfig mode 2021-06-11 10:30:13 +08:00
iothread.c async: the main AioContext is only "current" if under the BQL 2021-06-18 10:59:52 -05:00
job-qmp.c progressmeter: protect with a mutex 2021-06-25 14:24:24 +03:00
job.c progressmeter: protect with a mutex 2021-06-25 14:24:24 +03:00
Kconfig semihosting: Move hw/semihosting/ -> semihosting/ 2021-03-10 15:34:12 +00:00
Kconfig.host multi-process: Add config option for multi-process QEMU 2021-02-09 20:53:56 +00:00
LICENSE tcg/LICENSE: Remove out of date claim about TCG subdirectory licensing 2019-11-11 15:11:21 +01:00
MAINTAINERS FDC Pull request 2021-06-28 14:22:04 +01:00
Makefile configure: simplify assignment to GIT_SUBMODULES 2021-05-26 14:49:45 +02:00
memory_ldst.c.inc exec/memory_ldst: Use correct type sizes 2021-05-26 08:35:51 -07:00
meson_options.txt configure, meson: convert libusbredir detection to meson 2021-06-25 10:54:12 +02:00
meson.build * Some Meson test conversions 2021-06-28 21:04:22 +01:00
module-common.c all: Clean up includes 2016-02-04 17:41:30 +00:00
os-posix.c remove qemu-options* from root directory 2021-05-26 14:49:46 +02:00
os-win32.c remove qemu-options* from root directory 2021-05-26 14:49:46 +02:00
page-vary-common.c exec: Build page-vary-common.c with -fno-lto 2021-03-23 19:36:47 -06:00
page-vary.c exec: Build page-vary-common.c with -fno-lto 2021-03-23 19:36:47 -06:00
qemu-bridge-helper.c qemu-bridge-helper: relocate path to default ACL 2020-09-30 19:11:36 +02:00
qemu-edid.c qemu-edid: use qemu_edid_size() 2021-05-10 11:41:02 +02:00
qemu-img-cmds.hx qemu-img: add support for rate limit in qemu-img convert 2020-10-27 15:26:20 +01:00
qemu-img.c progressmeter: protect with a mutex 2021-06-25 14:24:24 +03:00
qemu-io-cmds.c qemu-io-cmds: assert that we don't have .perm requested in no-blk case 2021-06-02 14:23:20 +02:00
qemu-io.c monitor: hmp_qemu_io: acquire aio contex, fix crash 2021-05-14 16:14:10 +02:00
qemu-keymap.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-nbd.c qemu-nbd: Use qcrypto_tls_creds_check_endpoint() 2021-06-29 18:29:49 +01:00
qemu-options.hx Add display suboptions to man pages 2021-06-23 14:34:25 +02:00
qemu.nsi nsis: adjust for new MinGW paths 2021-01-23 15:55:05 -05:00
qemu.sasl sasl: remove comment about obsolete kerberos versions 2021-06-14 13:28:50 +01:00
README.rst Update documentation to refer to new location for issues 2021-06-21 05:43:11 +02:00
replication.c replication: move include out of root directory 2021-05-26 14:49:46 +02:00
thunk.c overall usermode...: Fix Lesser GPL version number 2020-11-15 16:43:40 +01:00
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
VERSION Open 6.1 development tree 2021-04-30 11:15:40 +01:00
version.rc configure: remove CONFIG_FILEVERSION and CONFIG_PRODUCTVERSION 2021-01-02 21:03:37 +01: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.


Documentation
=============

Documentation can be found hosted online at
`<https://www.qemu.org/documentation/>`_. The documentation for the
current development version that is available at
`<https://www.qemu.org/docs/master/>`_ is generated from the ``docs/``
folder in the source tree, and is built by `Sphinx
<https://www.sphinx-doc.org/en/master/>_`.


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:


.. code-block:: shell

  mkdir build
  cd build
  ../configure
  make

Additional information can also be found online via the QEMU website:

* `<https://qemu.org/Hosts/Linux>`_
* `<https://qemu.org/Hosts/Mac>`_
* `<https://qemu.org/Hosts/W32>`_


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

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

.. code-block:: shell

   git clone https://gitlab.com/qemu-project/qemu.git

When submitting patches, one common 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 `style section
<https://www.qemu.org/docs/master/devel/style.html>` of
the Developers Guide.

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

* `<https://qemu.org/Contribute/SubmitAPatch>`_
* `<https://qemu.org/Contribute/TrivialPatches>`_

The QEMU website is also maintained under source control.

.. code-block:: shell

  git clone https://gitlab.com/qemu-project/qemu-web.git

* `<https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/>`_

A 'git-publish' utility was created to make above process less
cumbersome, and is highly recommended for making regular contributions,
or even just for sending consecutive patch series revisions. It also
requires a working 'git send-email' setup, and by default doesn't
automate everything, so you may want to go through the above steps
manually for once.

For installation instructions, please go to

*  `<https://github.com/stefanha/git-publish>`_

The workflow with 'git-publish' is:

.. code-block:: shell

  $ git checkout master -b my-feature
  $ # work on new commits, add your 'Signed-off-by' lines to each
  $ git publish

Your patch series will be sent and tagged as my-feature-v1 if you need to refer
back to it in the future.

Sending v2:

.. code-block:: shell

  $ git checkout my-feature # same topic branch
  $ # making changes to the commits (using 'git rebase', for example)
  $ git publish

Your patch series will be sent with 'v2' tag in the subject and the git tip
will be tagged as my-feature-v2.

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

The QEMU project uses GitLab issues to track bugs. Bugs
found when running code built from QEMU git or upstream released sources
should be reported via:

* `<https://gitlab.com/qemu-project/qemu/-/issues>`_

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

For additional information on bug reporting consult:

* `<https://qemu.org/Contribute/ReportABug>`_


ChangeLog
=========

For version history and release notes, please visit
`<https://wiki.qemu.org/ChangeLog/>`_ or look at the git history for
more detailed information.


Contact
=======

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

* `<mailto:qemu-devel@nongnu.org>`_
* `<https://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:

* `<https://qemu.org/Contribute/StartHere>`_