aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2021-07-18 13:46:39 +0100
committerPeter Maydell <peter.maydell@linaro.org>2021-07-18 13:46:39 +0100
commitfd79f89c76c8e2f409dd9db5d7a367b1f64b6dc6 (patch)
treee67b50f02591b71681d33d2c5ba6964a29776458
parenta97fca4ceb9d9b10aa8b582e817a5ee6c42ffbaf (diff)
parent8fe612a183dec4c63afdc57537079bc742d024ca (diff)
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>
-rw-r--r--MAINTAINERS4
-rw-r--r--docs/_templates/footer.html14
-rw-r--r--docs/about/build-platforms.rst (renamed from docs/system/build-platforms.rst)0
-rw-r--r--docs/about/deprecated.rst (renamed from docs/system/deprecated.rst)0
-rw-r--r--docs/about/index.rst27
-rw-r--r--docs/about/license.rst (renamed from docs/system/license.rst)0
-rw-r--r--docs/about/removed-features.rst (renamed from docs/system/removed-features.rst)0
-rw-r--r--docs/conf.py2
-rw-r--r--docs/devel/index.rst7
-rw-r--r--docs/index.rst1
-rw-r--r--docs/interop/index.rst9
-rw-r--r--docs/meson.build3
-rw-r--r--docs/specs/index.rst7
-rw-r--r--docs/system/arm/cubieboard.rst16
-rw-r--r--docs/system/arm/emcraft-sf2.rst15
-rw-r--r--docs/system/arm/highbank.rst19
-rw-r--r--docs/system/index.rst11
-rw-r--r--docs/system/target-arm.rst3
-rw-r--r--docs/tools/index.rst7
-rw-r--r--docs/user/index.rst7
-rw-r--r--target/arm/helper.c11
-rw-r--r--target/arm/neon-ls.decode4
-rw-r--r--target/arm/neon-shared.decode2
-rw-r--r--target/arm/sve.decode2
-rw-r--r--target/arm/translate-neon.c5
-rw-r--r--target/arm/translate-sve.c5
26 files changed, 122 insertions, 59 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 9100f9a043..4256ad1adb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -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
-------------
diff --git a/docs/_templates/footer.html b/docs/_templates/footer.html
new file mode 100644
index 0000000000..977053b541
--- /dev/null
+++ b/docs/_templates/footer.html
@@ -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 %}
diff --git a/docs/system/build-platforms.rst b/docs/about/build-platforms.rst
index 692323609e..692323609e 100644
--- a/docs/system/build-platforms.rst
+++ b/docs/about/build-platforms.rst
diff --git a/docs/system/deprecated.rst b/docs/about/deprecated.rst
index 6d438f1c8d..6d438f1c8d 100644
--- a/docs/system/deprecated.rst
+++ b/docs/about/deprecated.rst
diff --git a/docs/about/index.rst b/docs/about/index.rst
new file mode 100644
index 0000000000..689a9861dc
--- /dev/null
+++ b/docs/about/index.rst
@@ -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
diff --git a/docs/system/license.rst b/docs/about/license.rst
index cde3d2d25d..cde3d2d25d 100644
--- a/docs/system/license.rst
+++ b/docs/about/license.rst
diff --git a/docs/system/removed-features.rst b/docs/about/removed-features.rst
index 28bb035043..28bb035043 100644
--- a/docs/system/removed-features.rst
+++ b/docs/about/removed-features.rst
diff --git a/docs/conf.py b/docs/conf.py
index 42729e22bb..ff6e92c6e2 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -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
diff --git a/docs/devel/index.rst b/docs/devel/index.rst
index 40a7e2ee6f..153979caf4 100644
--- a/docs/devel/index.rst
+++ b/docs/devel/index.rst
@@ -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:
diff --git a/docs/index.rst b/docs/index.rst
index 763e3d0426..5f7eaaa632 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -10,6 +10,7 @@ Welcome to QEMU's documentation!
:maxdepth: 2
:caption: Contents:
+ about/index
system/index
user/index
tools/index
diff --git a/docs/interop/index.rst b/docs/interop/index.rst
index 219a5e5fc5..b1bab81e2e 100644
--- a/docs/interop/index.rst
+++ b/docs/interop/index.rst
@@ -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
diff --git a/docs/meson.build b/docs/meson.build
index 855e3916e9..300b134329 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -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,
diff --git a/docs/specs/index.rst b/docs/specs/index.rst
index 7b08314d33..b7b08ea30d 100644
--- a/docs/specs/index.rst
+++ b/docs/specs/index.rst
@@ -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
diff --git a/docs/system/arm/cubieboard.rst b/docs/system/arm/cubieboard.rst
new file mode 100644
index 0000000000..344ff8cef9
--- /dev/null
+++ b/docs/system/arm/cubieboard.rst
@@ -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
diff --git a/docs/system/arm/emcraft-sf2.rst b/docs/system/arm/emcraft-sf2.rst
new file mode 100644
index 0000000000..377e248720
--- /dev/null
+++ b/docs/system/arm/emcraft-sf2.rst
@@ -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
diff --git a/docs/system/arm/highbank.rst b/docs/system/arm/highbank.rst
new file mode 100644
index 0000000000..bb4965b367
--- /dev/null
+++ b/docs/system/arm/highbank.rst
@@ -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
diff --git a/docs/system/index.rst b/docs/system/index.rst
index 6092eb2d91..fda4b1b705 100644
--- a/docs/system/index.rst
+++ b/docs/system/index.rst
@@ -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
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
index 705b8835e4..c0c2585c0a 100644
--- a/docs/system/target-arm.rst
+++ b/docs/system/target-arm.rst
@@ -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
diff --git a/docs/tools/index.rst b/docs/tools/index.rst
index d923834a73..ef6041a490 100644
--- a/docs/tools/index.rst
+++ b/docs/tools/index.rst
@@ -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
diff --git a/docs/user/index.rst b/docs/user/index.rst
index a5b47459ec..9faa4badd7 100644
--- a/docs/user/index.rst
+++ b/docs/user/index.rst
@@ -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
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 910ace4274..0c07ca9837 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -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,
diff --git a/target/arm/neon-ls.decode b/target/arm/neon-ls.decode
index 0a2a0e15db..c5f364cbc0 100644
--- a/target/arm/neon-ls.decode
+++ b/target/arm/neon-ls.decode
@@ -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
diff --git a/target/arm/neon-shared.decode b/target/arm/neon-shared.decode
index df80e6ebf6..8e6bd0b61f 100644
--- a/target/arm/neon-shared.decode
+++ b/target/arm/neon-shared.decode
@@ -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
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index a62c169f1a..c60b9f0fec 100644
--- a/target/arm/sve.decode
+++ b/target/arm/sve.decode
@@ -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
diff --git a/target/arm/translate-neon.c b/target/arm/translate-neon.c
index a45616cb63..c53ab20fa4 100644
--- a/target/arm/translate-neon.c
+++ b/target/arm/translate-neon.c
@@ -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 */
diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c
index 35d838aa06..bc91a64171 100644
--- a/target/arm/translate-sve.c
+++ b/target/arm/translate-sve.c
@@ -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)
{