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:
Peter Maydell 2021-07-18 13:46:39 +01:00
commit fd79f89c76
26 changed files with 122 additions and 59 deletions

View File

@ -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
View 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
View 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

View File

@ -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

View File

@ -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:

View File

@ -10,6 +10,7 @@ Welcome to QEMU's documentation!
:maxdepth: 2
:caption: Contents:
about/index
system/index
user/index
tools/index

View File

@ -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

View File

@ -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,

View File

@ -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

View 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

View 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

View 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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)
{