target-arm queue:
* Remove duplicate 'plus1' function from Neon and SVE decode * Fix offsets for TTBCR for big-endian hosts * docs: fix copyright date * docs: add license/version info to HTML footers * docs: add an About section * docs: document some more arm boards -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmD0ImIZHHBldGVyLm1h eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3gUVEACnpfDCg8KkeNpW/HGo5EXL TFfpyc1y9d8zVFuMCP5c98kv91bmFkgh6WJdnzIwC7pHhDiD7E+JMoB151pcRQPC yCB23YDhBlVDTFWZg8GQ33e6GFoAhgVvkpFQ7JDe8CoAdo28vc7QaZpoZBryKjhJ Pde3GWU1puuihlVHoL2RAOV6j9iHSwpDy8/VeMRiZjFs/p3QhzDwgyJidaMgBN+b Avw86iN4mHgPb5/mxEb51MaSEXcKTot01PPvd7hogTytMBXVCMIcQYauC1bgFi45 zsX4MMNbyrjluu6i+Y7/I6zRwpWR0sCvLn+2Pa/+V1H4mkzsifWGeHrzkEx4qjMP rb0vNbt7juCryfrBeG9jVoQ9SyUl2ml4sW4jCQrg6gA6A42Ic+NPjR6nA0smVHQj DM8ZadK4nv7sUY92pxGT5RsJYODV1fEYXWaGApjp/jqMjGXf+TZjCFcI5cxOltGM W4ijOT9QDKw+82+HM5a0HM6XMSpYMoqcYuJpUAkXqVqs2fidsuGLBJ9R7hWN6Ovu khfxrDMfH8Q61VsKNdGNYRbTRw7a1jakBh3Bf2eYykgT/6XogbpDb/13L2FaTJ8x fM1cPF/Lc2BWbHvna42nFGg5ST1DVKxszwSF1HFnevbNRw+R7z3KAG1KTuFEEbLI Glu71a6zSZhUSVp2IvCMdA== =aAVT -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210718' into staging target-arm queue: * Remove duplicate 'plus1' function from Neon and SVE decode * Fix offsets for TTBCR for big-endian hosts * docs: fix copyright date * docs: add license/version info to HTML footers * docs: add an About section * docs: document some more arm boards # gpg: Signature made Sun 18 Jul 2021 13:45:22 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-20210718: target/arm: Remove duplicate 'plus1' function from Neon and SVE decode docs: Add skeletal documentation of highbank and midway docs: Add skeletal documentation of the emcraft-sf2 docs: Add skeletal documentation of cubieboard docs: Add QEMU version information to HTML footer docs: Add license note to the HTML page footer docs: Add some actual About text to about/index.rst docs: Move deprecation, build and license info out of system/ docs: Remove "Contents:" lines from top-level subsections docs: Stop calling the top level subsections of our manual 'manuals' docs: Fix documentation Copyright date target/arm: Fix offsets for TTBCR Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
fd79f89c76
@ -560,6 +560,7 @@ S: Odd Fixes
|
||||
F: hw/*/allwinner*
|
||||
F: include/hw/*/allwinner*
|
||||
F: hw/arm/cubieboard.c
|
||||
F: docs/system/arm/cubieboard.rst
|
||||
|
||||
Allwinner-h3
|
||||
M: Niek Linnenbank <nieklinnenbank@gmail.com>
|
||||
@ -642,6 +643,7 @@ L: qemu-arm@nongnu.org
|
||||
S: Odd Fixes
|
||||
F: hw/arm/highbank.c
|
||||
F: hw/net/xgmac.c
|
||||
F: docs/system/arm/highbank.rst
|
||||
|
||||
Canon DIGIC
|
||||
M: Antony Pavlov <antonynpavlov@gmail.com>
|
||||
@ -1023,6 +1025,7 @@ M: Peter Maydell <peter.maydell@linaro.org>
|
||||
L: qemu-arm@nongnu.org
|
||||
S: Maintained
|
||||
F: hw/arm/msf2-som.c
|
||||
F: docs/system/arm/emcraft-sf2.rst
|
||||
|
||||
ASPEED BMCs
|
||||
M: Cédric Le Goater <clg@kaod.org>
|
||||
@ -3451,6 +3454,7 @@ S: Maintained
|
||||
F: docs/conf.py
|
||||
F: docs/*/conf.py
|
||||
F: docs/sphinx/
|
||||
F: docs/_templates/
|
||||
|
||||
Miscellaneous
|
||||
-------------
|
||||
|
14
docs/_templates/footer.html
vendored
Normal file
14
docs/_templates/footer.html
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
{% extends "!footer.html" %}
|
||||
{% block extrafooter %}
|
||||
|
||||
<!-- Empty para to force a blank line after "Built with Sphinx ..." -->
|
||||
<p></p>
|
||||
|
||||
<p>This documentation is for QEMU version {{ version }}.</p>
|
||||
|
||||
{% trans path=pathto('about/license') %}
|
||||
<p><a href="{{ path }}">QEMU and this manual are released under the
|
||||
GNU General Public License, version 2.</a></p>
|
||||
{% endtrans %}
|
||||
{{ super() }}
|
||||
{% endblock %}
|
27
docs/about/index.rst
Normal file
27
docs/about/index.rst
Normal file
@ -0,0 +1,27 @@
|
||||
About QEMU
|
||||
==========
|
||||
|
||||
QEMU is a generic and open source machine emulator and virtualizer.
|
||||
|
||||
QEMU can be used in several different ways. The most common is for
|
||||
"system emulation", where it provides a virtual model of an
|
||||
entire machine (CPU, memory and emulated devices) to run a guest OS.
|
||||
In this mode the CPU may be fully emulated, or it may work with
|
||||
a hypervisor such as KVM, Xen, Hax or Hypervisor.Framework to
|
||||
allow the guest to run directly on the host CPU.
|
||||
|
||||
The second supported way to use QEMU is "user mode emulation",
|
||||
where QEMU can launch processes compiled for one CPU on another CPU.
|
||||
In this mode the CPU is always emulated.
|
||||
|
||||
QEMU also provides a number of standalone commandline utilities,
|
||||
such as the `qemu-img` disk image utility that allows you to create,
|
||||
convert and modify disk images.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
build-platforms
|
||||
deprecated
|
||||
removed-features
|
||||
license
|
@ -87,7 +87,7 @@ master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'QEMU'
|
||||
copyright = u'2020, The QEMU Project Developers'
|
||||
copyright = u'2021, The QEMU Project Developers'
|
||||
author = u'The QEMU Project Developers'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
|
@ -1,15 +1,10 @@
|
||||
.. This is the top level page for the 'devel' manual.
|
||||
|
||||
|
||||
Developer Information
|
||||
=====================
|
||||
|
||||
This manual documents various parts of the internals of QEMU.
|
||||
This section of the manual documents various parts of the internals of QEMU.
|
||||
You only need to read it if you are interested in reading or
|
||||
modifying QEMU's source code.
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:includehidden:
|
||||
|
@ -10,6 +10,7 @@ Welcome to QEMU's documentation!
|
||||
:maxdepth: 2
|
||||
:caption: Contents:
|
||||
|
||||
about/index
|
||||
system/index
|
||||
user/index
|
||||
tools/index
|
||||
|
@ -1,13 +1,8 @@
|
||||
.. This is the top level page for the 'interop' manual.
|
||||
|
||||
|
||||
System Emulation Management and Interoperability
|
||||
================================================
|
||||
|
||||
This manual contains documents and specifications that are useful
|
||||
for making QEMU interoperate with other software.
|
||||
|
||||
Contents:
|
||||
This section of the manual contains documents and specifications that
|
||||
are useful for making QEMU interoperate with other software.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
@ -44,6 +44,7 @@ if build_docs
|
||||
meson.source_root() / 'docs/sphinx/qapidoc.py',
|
||||
meson.source_root() / 'docs/sphinx/qmp_lexer.py',
|
||||
qapi_gen_depends ]
|
||||
sphinx_template_files = [ meson.source_root() / 'docs/_templates/footer.html' ]
|
||||
|
||||
have_ga = have_tools and config_host.has_key('CONFIG_GUEST_AGENT')
|
||||
|
||||
@ -76,7 +77,7 @@ if build_docs
|
||||
output: 'docs.stamp',
|
||||
input: files('conf.py'),
|
||||
depfile: 'docs.d',
|
||||
depend_files: sphinx_extn_depends,
|
||||
depend_files: [ sphinx_extn_depends, sphinx_template_files ],
|
||||
command: [SPHINX_ARGS, '-Ddepfile=@DEPFILE@',
|
||||
'-Ddepfile_stamp=@OUTPUT0@',
|
||||
'-b', 'html', '-d', private_dir,
|
||||
|
@ -1,11 +1,8 @@
|
||||
.. This is the top level page for the 'specs' manual
|
||||
|
||||
|
||||
System Emulation Guest Hardware Specifications
|
||||
==============================================
|
||||
|
||||
|
||||
Contents:
|
||||
This section of the manual contains specifications of
|
||||
guest hardware that is specific to QEMU.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
16
docs/system/arm/cubieboard.rst
Normal file
16
docs/system/arm/cubieboard.rst
Normal file
@ -0,0 +1,16 @@
|
||||
Cubietech Cubieboard (``cubieboard``)
|
||||
=====================================
|
||||
|
||||
The ``cubieboard`` model emulates the Cubietech Cubieboard,
|
||||
which is a Cortex-A8 based single-board computer using
|
||||
the AllWinner A10 SoC.
|
||||
|
||||
Emulated devices:
|
||||
|
||||
- Timer
|
||||
- UART
|
||||
- RTC
|
||||
- EMAC
|
||||
- SDHCI
|
||||
- USB controller
|
||||
- SATA controller
|
15
docs/system/arm/emcraft-sf2.rst
Normal file
15
docs/system/arm/emcraft-sf2.rst
Normal file
@ -0,0 +1,15 @@
|
||||
Emcraft SmartFusion2 SOM kit (``emcraft-sf2``)
|
||||
==============================================
|
||||
|
||||
The ``emcraft-sf2`` board emulates the SmartFusion2 SOM kit from
|
||||
Emcraft (M2S010). This is a System-on-Module from EmCraft systems,
|
||||
based on the SmartFusion2 SoC FPGA from Microsemi Corporation.
|
||||
The SoC is based on a Cortex-M4 processor.
|
||||
|
||||
Emulated devices:
|
||||
|
||||
- System timer
|
||||
- System registers
|
||||
- SPI controller
|
||||
- UART
|
||||
- EMAC
|
19
docs/system/arm/highbank.rst
Normal file
19
docs/system/arm/highbank.rst
Normal file
@ -0,0 +1,19 @@
|
||||
Calxeda Highbank and Midway (``highbank``, ``midway``)
|
||||
======================================================
|
||||
|
||||
``highbank`` is a model of the Calxeda Highbank (ECX-1000) system,
|
||||
which has four Cortex-A9 cores.
|
||||
|
||||
``midway`` is a model of the Calxeda Midway (ECX-2000) system,
|
||||
which has four Cortex-A15 cores.
|
||||
|
||||
Emulated devices:
|
||||
|
||||
- L2x0 cache controller
|
||||
- SP804 dual timer
|
||||
- PL011 UART
|
||||
- PL061 GPIOs
|
||||
- PL031 RTC
|
||||
- PL022 synchronous serial port controller
|
||||
- AHCI
|
||||
- XGMAC ethernet controllers
|
@ -1,16 +1,11 @@
|
||||
.. This is the top level page for the 'system' manual.
|
||||
|
||||
|
||||
System Emulation
|
||||
================
|
||||
|
||||
This manual is the overall guide for users using QEMU
|
||||
This section of the manual is the overall guide for users using QEMU
|
||||
for full system emulation (as opposed to user-mode emulation).
|
||||
This includes working with hypervisors such as KVM, Xen, Hax
|
||||
or Hypervisor.Framework.
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
|
||||
@ -40,7 +35,3 @@ Contents:
|
||||
targets
|
||||
security
|
||||
multi-process
|
||||
deprecated
|
||||
removed-features
|
||||
build-platforms
|
||||
license
|
||||
|
@ -85,6 +85,9 @@ undocumented; you can get a complete list by running
|
||||
arm/aspeed
|
||||
arm/sabrelite
|
||||
arm/digic
|
||||
arm/cubieboard
|
||||
arm/emcraft-sf2
|
||||
arm/highbank
|
||||
arm/musicpal
|
||||
arm/gumstix
|
||||
arm/nrf
|
||||
|
@ -1,11 +1,8 @@
|
||||
.. This is the top level page for the 'tools' manual
|
||||
|
||||
|
||||
Tools
|
||||
=====
|
||||
|
||||
|
||||
Contents:
|
||||
This section of the manual documents QEMU's "tools": its
|
||||
command line utilities and other standalone programs.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
@ -1,15 +1,10 @@
|
||||
.. This is the top level page for the 'user' manual.
|
||||
|
||||
|
||||
User Mode Emulation
|
||||
===================
|
||||
|
||||
This manual is the overall guide for users using QEMU
|
||||
This section of the manual is the overall guide for users using QEMU
|
||||
for user-mode emulation. In this mode, QEMU can launch
|
||||
processes compiled for one CPU on another CPU.
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
|
@ -4106,8 +4106,9 @@ static const ARMCPRegInfo vmsa_cp_reginfo[] = {
|
||||
.access = PL1_RW, .accessfn = access_tvm_trvm,
|
||||
.type = ARM_CP_ALIAS, .writefn = vmsa_ttbcr_write,
|
||||
.raw_writefn = vmsa_ttbcr_raw_write,
|
||||
.bank_fieldoffsets = { offsetoflow32(CPUARMState, cp15.tcr_el[3]),
|
||||
offsetoflow32(CPUARMState, cp15.tcr_el[1])} },
|
||||
/* No offsetoflow32 -- pass the entire TCR to writefn/raw_writefn. */
|
||||
.bank_fieldoffsets = { offsetof(CPUARMState, cp15.tcr_el[3]),
|
||||
offsetof(CPUARMState, cp15.tcr_el[1])} },
|
||||
REGINFO_SENTINEL
|
||||
};
|
||||
|
||||
@ -4118,8 +4119,10 @@ static const ARMCPRegInfo ttbcr2_reginfo = {
|
||||
.name = "TTBCR2", .cp = 15, .opc1 = 0, .crn = 2, .crm = 0, .opc2 = 3,
|
||||
.access = PL1_RW, .accessfn = access_tvm_trvm,
|
||||
.type = ARM_CP_ALIAS,
|
||||
.bank_fieldoffsets = { offsetofhigh32(CPUARMState, cp15.tcr_el[3]),
|
||||
offsetofhigh32(CPUARMState, cp15.tcr_el[1]) },
|
||||
.bank_fieldoffsets = {
|
||||
offsetofhigh32(CPUARMState, cp15.tcr_el[3].raw_tcr),
|
||||
offsetofhigh32(CPUARMState, cp15.tcr_el[1].raw_tcr),
|
||||
},
|
||||
};
|
||||
|
||||
static void omap_ticonfig_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||
|
@ -41,8 +41,8 @@ VLD_all_lanes 1111 0100 1 . 1 0 rn:4 .... 11 n:2 size:2 t:1 a:1 rm:4 \
|
||||
vd=%vd_dp
|
||||
|
||||
# Neon load/store single structure to one lane
|
||||
%imm1_5_p1 5:1 !function=plus1
|
||||
%imm1_6_p1 6:1 !function=plus1
|
||||
%imm1_5_p1 5:1 !function=plus_1
|
||||
%imm1_6_p1 6:1 !function=plus_1
|
||||
|
||||
VLDST_single 1111 0100 1 . l:1 0 rn:4 .... 00 n:2 reg_idx:3 align:1 rm:4 \
|
||||
vd=%vd_dp size=0 stride=1
|
||||
|
@ -38,7 +38,7 @@
|
||||
# which is 0 for fp16 and 1 for fp32 into a MO_* constant.
|
||||
# (Note that this is the reverse of the sense of the 1-bit size
|
||||
# field in the 3same_fp Neon insns.)
|
||||
%vcadd_size 20:1 !function=plus1
|
||||
%vcadd_size 20:1 !function=plus_1
|
||||
|
||||
VCMLA 1111 110 rot:2 . 1 . .... .... 1000 . q:1 . 0 .... \
|
||||
vm=%vm_dp vn=%vn_dp vd=%vd_dp size=%vcadd_size
|
||||
|
@ -22,7 +22,7 @@
|
||||
###########################################################################
|
||||
# Named fields. These are primarily for disjoint fields.
|
||||
|
||||
%imm4_16_p1 16:4 !function=plus1
|
||||
%imm4_16_p1 16:4 !function=plus_1
|
||||
%imm6_22_5 22:1 5:5
|
||||
%imm7_22_16 22:2 16:5
|
||||
%imm8_16_10 16:5 10:3
|
||||
|
@ -28,11 +28,6 @@
|
||||
#include "translate.h"
|
||||
#include "translate-a32.h"
|
||||
|
||||
static inline int plus1(DisasContext *s, int x)
|
||||
{
|
||||
return x + 1;
|
||||
}
|
||||
|
||||
static inline int neon_3same_fp_size(DisasContext *s, int x)
|
||||
{
|
||||
/* Convert 0==fp32, 1==fp16 into a MO_* value */
|
||||
|
@ -70,11 +70,6 @@ static int tszimm_shl(DisasContext *s, int x)
|
||||
return x - (8 << tszimm_esz(s, x));
|
||||
}
|
||||
|
||||
static inline int plus1(DisasContext *s, int x)
|
||||
{
|
||||
return x + 1;
|
||||
}
|
||||
|
||||
/* The SH bit is in bit 8. Extract the low 8 and shift. */
|
||||
static inline int expand_imm_sh8s(DisasContext *s, int x)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user