:p
atchew
Login
Last few changes before rc0: a few bug fixes, but mostly docs stuff. -- PMM The following changes since commit a97fca4ceb9d9b10aa8b582e817a5ee6c42ffbaf: Merge remote-tracking branch 'remotes/mst/tags/for_upstream3' into staging (2021-07-16 16:34:42 +0100) are available in the Git repository at: https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210718 for you to fetch changes up to 8fe612a183dec4c63afdc57537079bc742d024ca: target/arm: Remove duplicate 'plus1' function from Neon and SVE decode (2021-07-18 10:59:47 +0100) ---------------------------------------------------------------- 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 ---------------------------------------------------------------- Peter Maydell (11): docs: Fix documentation Copyright date docs: Stop calling the top level subsections of our manual 'manuals' docs: Remove "Contents:" lines from top-level subsections docs: Move deprecation, build and license info out of system/ docs: Add some actual About text to about/index.rst docs: Add license note to the HTML page footer docs: Add QEMU version information to HTML footer docs: Add skeletal documentation of cubieboard docs: Add skeletal documentation of the emcraft-sf2 docs: Add skeletal documentation of highbank and midway target/arm: Remove duplicate 'plus1' function from Neon and SVE decode Richard Henderson (1): target/arm: Fix offsets for TTBCR docs/_templates/footer.html | 14 ++++++++++++++ docs/{system => about}/build-platforms.rst | 0 docs/{system => about}/deprecated.rst | 0 docs/about/index.rst | 27 +++++++++++++++++++++++++++ docs/{system => about}/license.rst | 0 docs/{system => about}/removed-features.rst | 0 docs/conf.py | 2 +- docs/devel/index.rst | 7 +------ docs/index.rst | 1 + docs/interop/index.rst | 9 ++------- docs/meson.build | 3 ++- docs/specs/index.rst | 7 ++----- docs/system/arm/cubieboard.rst | 16 ++++++++++++++++ docs/system/arm/emcraft-sf2.rst | 15 +++++++++++++++ docs/system/arm/highbank.rst | 19 +++++++++++++++++++ docs/system/index.rst | 11 +---------- docs/system/target-arm.rst | 3 +++ docs/tools/index.rst | 7 ++----- docs/user/index.rst | 7 +------ target/arm/neon-ls.decode | 4 ++-- target/arm/neon-shared.decode | 2 +- target/arm/sve.decode | 2 +- target/arm/helper.c | 11 +++++++---- target/arm/translate-neon.c | 5 ----- target/arm/translate-sve.c | 5 ----- MAINTAINERS | 4 ++++ 26 files changed, 122 insertions(+), 59 deletions(-) create mode 100644 docs/_templates/footer.html rename docs/{system => about}/build-platforms.rst (100%) rename docs/{system => about}/deprecated.rst (100%) create mode 100644 docs/about/index.rst rename docs/{system => about}/license.rst (100%) rename docs/{system => about}/removed-features.rst (100%) create mode 100644 docs/system/arm/cubieboard.rst create mode 100644 docs/system/arm/emcraft-sf2.rst create mode 100644 docs/system/arm/highbank.rst
From: Richard Henderson <richard.henderson@linaro.org> The functions vmsa_ttbcr_write and vmsa_ttbcr_raw_write expect the offset to be for the complete TCR structure, not the offset to the low 32-bits of a uint64_t. Using offsetoflow32 in this case breaks big-endian hosts. For TTBCR2, we do want the high 32-bits of a uint64_t. Use cp15.tcr_el[*].raw_tcr as the offsetofhigh32 argument to clarify this. Buglink: https://gitlab.com/qemu-project/qemu/-/issues/187 Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210709230621.938821-2-richard.henderson@linaro.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- target/arm/helper.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index XXXXXXX..XXXXXXX 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -XXX,XX +XXX,XX @@ 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 }; @@ -XXX,XX +XXX,XX @@ 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, -- 2.20.1
In commit 6d8980a38fa we updated the copyright string we present to the user in -version output, About dialogs, etc, but we forgot that the Sphinx manuals have a separate copyright string setting. Update that one too. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20210705095547.15790-2-peter.maydell@linaro.org --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index XXXXXXX..XXXXXXX 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -XXX,XX +XXX,XX @@ # 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 -- 2.20.1
We merged our previous multiple-manual setup into a single Sphinx manual, but we left some text in the various index.rst lines that still calls the top level subsections separate 'manuals'. Update them to talk about "this section of the manual" instead, and remove now-obsolete comments about how the index.rst files are the "top level page for the 'foo' manual". Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20210705095547.15790-3-peter.maydell@linaro.org --- docs/devel/index.rst | 5 +---- docs/interop/index.rst | 7 ++----- docs/specs/index.rst | 5 ++--- docs/system/index.rst | 5 +---- docs/tools/index.rst | 5 ++--- docs/user/index.rst | 5 +---- 6 files changed, 9 insertions(+), 23 deletions(-) diff --git a/docs/devel/index.rst b/docs/devel/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/devel/index.rst +++ b/docs/devel/index.rst @@ -XXX,XX +XXX,XX @@ -.. 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. diff --git a/docs/interop/index.rst b/docs/interop/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/interop/index.rst +++ b/docs/interop/index.rst @@ -XXX,XX +XXX,XX @@ -.. 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. +This section of the manual contains documents and specifications that +are useful for making QEMU interoperate with other software. Contents: diff --git a/docs/specs/index.rst b/docs/specs/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/specs/index.rst +++ b/docs/specs/index.rst @@ -XXX,XX +XXX,XX @@ -.. This is the top level page for the 'specs' manual - - System Emulation Guest Hardware Specifications ============================================== +This section of the manual contains specifications of +guest hardware that is specific to QEMU. Contents: diff --git a/docs/system/index.rst b/docs/system/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -XXX,XX +XXX,XX @@ -.. 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. diff --git a/docs/tools/index.rst b/docs/tools/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/tools/index.rst +++ b/docs/tools/index.rst @@ -XXX,XX +XXX,XX @@ -.. This is the top level page for the 'tools' manual - - Tools ===== +This section of the manual documents QEMU's "tools": its +command line utilities and other standalone programs. Contents: diff --git a/docs/user/index.rst b/docs/user/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/user/index.rst +++ b/docs/user/index.rst @@ -XXX,XX +XXX,XX @@ -.. 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. -- 2.20.1
Since the top-level subsections aren't self-contained manuals any more, the "Contents:" lines at the top of each of their index pages look a bit odd; remove them. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20210705095547.15790-4-peter.maydell@linaro.org --- docs/devel/index.rst | 2 -- docs/interop/index.rst | 2 -- docs/specs/index.rst | 2 -- docs/system/index.rst | 2 -- docs/tools/index.rst | 2 -- docs/user/index.rst | 2 -- 6 files changed, 12 deletions(-) diff --git a/docs/devel/index.rst b/docs/devel/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/devel/index.rst +++ b/docs/devel/index.rst @@ -XXX,XX +XXX,XX @@ 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/interop/index.rst b/docs/interop/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/interop/index.rst +++ b/docs/interop/index.rst @@ -XXX,XX +XXX,XX @@ System Emulation Management and Interoperability This section of the manual contains documents and specifications that are useful for making QEMU interoperate with other software. -Contents: - .. toctree:: :maxdepth: 2 diff --git a/docs/specs/index.rst b/docs/specs/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/specs/index.rst +++ b/docs/specs/index.rst @@ -XXX,XX +XXX,XX @@ System Emulation Guest Hardware Specifications This section of the manual contains specifications of guest hardware that is specific to QEMU. -Contents: - .. toctree:: :maxdepth: 2 diff --git a/docs/system/index.rst b/docs/system/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -XXX,XX +XXX,XX @@ 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 diff --git a/docs/tools/index.rst b/docs/tools/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/tools/index.rst +++ b/docs/tools/index.rst @@ -XXX,XX +XXX,XX @@ Tools This section of the manual documents QEMU's "tools": its command line utilities and other standalone programs. -Contents: - .. toctree:: :maxdepth: 2 diff --git a/docs/user/index.rst b/docs/user/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/user/index.rst +++ b/docs/user/index.rst @@ -XXX,XX +XXX,XX @@ 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 -- 2.20.1
Now that we have a single Sphinx manual rather than multiple manuals, we can provide a better place for "common to all of QEMU" information like the deprecation notices, build platforms, license information, which we currently have in the system/ manual even though it applies to all of QEMU. Create a new directory about/ on the same level as system/, user/, etc, and move these documents there. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20210705095547.15790-5-peter.maydell@linaro.org --- docs/{system => about}/build-platforms.rst | 0 docs/{system => about}/deprecated.rst | 0 docs/about/index.rst | 10 ++++++++++ docs/{system => about}/license.rst | 0 docs/{system => about}/removed-features.rst | 0 docs/index.rst | 1 + docs/system/index.rst | 4 ---- 7 files changed, 11 insertions(+), 4 deletions(-) rename docs/{system => about}/build-platforms.rst (100%) rename docs/{system => about}/deprecated.rst (100%) create mode 100644 docs/about/index.rst rename docs/{system => about}/license.rst (100%) rename docs/{system => about}/removed-features.rst (100%) diff --git a/docs/system/build-platforms.rst b/docs/about/build-platforms.rst similarity index 100% rename from docs/system/build-platforms.rst rename to docs/about/build-platforms.rst diff --git a/docs/system/deprecated.rst b/docs/about/deprecated.rst similarity index 100% rename from docs/system/deprecated.rst rename to docs/about/deprecated.rst diff --git a/docs/about/index.rst b/docs/about/index.rst new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/docs/about/index.rst @@ -XXX,XX +XXX,XX @@ +About QEMU +========== + +.. toctree:: + :maxdepth: 2 + + build-platforms + deprecated + removed-features + license diff --git a/docs/system/license.rst b/docs/about/license.rst similarity index 100% rename from docs/system/license.rst rename to docs/about/license.rst diff --git a/docs/system/removed-features.rst b/docs/about/removed-features.rst similarity index 100% rename from docs/system/removed-features.rst rename to docs/about/removed-features.rst diff --git a/docs/index.rst b/docs/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -XXX,XX +XXX,XX @@ Welcome to QEMU's documentation! :maxdepth: 2 :caption: Contents: + about/index system/index user/index tools/index diff --git a/docs/system/index.rst b/docs/system/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -XXX,XX +XXX,XX @@ or Hypervisor.Framework. targets security multi-process - deprecated - removed-features - build-platforms - license -- 2.20.1
Add some text to About to act as a brief introduction to the QEMU manual and to make the about page a bit less of an abrupt start to it. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20210705095547.15790-6-peter.maydell@linaro.org --- docs/about/index.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/about/index.rst b/docs/about/index.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/about/index.rst +++ b/docs/about/index.rst @@ -XXX,XX +XXX,XX @@ 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 -- 2.20.1
The standard Sphinx/RTD HTML page footer gives a copyright line (based on the 'copyright' variable set in conf.py) and a line "Built with Sphinx using a theme provided by Read the Docs" (which can be disabled via the html_show_sphinx variable, but we leave it enabled). As a free software project, we'd like to also mention the license QEMU and its manual are released under. Add a template footer.html which defines the 'extrafooter' block that the RtD theme provides for this purpose. The new line of text will go below the existing copyright and sphinx-acknowledgement lines. (Unfortunately the RTD footer template does not permit putting it after the copyright but before the sphinx-acknowledgement.) We use the templating functionality to make the new text also be a hyperlink to the about/license.html page of the manual. Unlike rst files, HTML template files are not reported to our depfile plugin, so we maintain a manual list in meson.build. New template files should be rare, so not being able to auto-generate the dependency info is not too awkward. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20210705095547.15790-7-peter.maydell@linaro.org --- docs/_templates/footer.html | 12 ++++++++++++ docs/meson.build | 3 ++- MAINTAINERS | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 docs/_templates/footer.html diff --git a/docs/_templates/footer.html b/docs/_templates/footer.html new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/docs/_templates/footer.html @@ -XXX,XX +XXX,XX @@ +{% extends "!footer.html" %} +{% block extrafooter %} + +<!-- Empty para to force a blank line after "Built with Sphinx ..." --> +<p></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/meson.build b/docs/meson.build index XXXXXXX..XXXXXXX 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -XXX,XX +XXX,XX @@ 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') @@ -XXX,XX +XXX,XX @@ 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/MAINTAINERS b/MAINTAINERS index XXXXXXX..XXXXXXX 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -XXX,XX +XXX,XX @@ S: Maintained F: docs/conf.py F: docs/*/conf.py F: docs/sphinx/ +F: docs/_templates/ Miscellaneous ------------- -- 2.20.1
Add a line to the HTML document footer mentioning the QEMU version. The version information is already provided in very faint text below the QEMU logo in the sidebar, but that is rather inconspicious, so repeating it in the footer seems useful. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20210705095547.15790-8-peter.maydell@linaro.org --- docs/_templates/footer.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_templates/footer.html b/docs/_templates/footer.html index XXXXXXX..XXXXXXX 100644 --- a/docs/_templates/footer.html +++ b/docs/_templates/footer.html @@ -XXX,XX +XXX,XX @@ <!-- 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> -- 2.20.1
Add skeletal documentation of the cubieboard machine. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-id: 20210713142226.19155-2-peter.maydell@linaro.org --- docs/system/arm/cubieboard.rst | 16 ++++++++++++++++ docs/system/target-arm.rst | 1 + MAINTAINERS | 1 + 3 files changed, 18 insertions(+) create mode 100644 docs/system/arm/cubieboard.rst diff --git a/docs/system/arm/cubieboard.rst b/docs/system/arm/cubieboard.rst new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/docs/system/arm/cubieboard.rst @@ -XXX,XX +XXX,XX @@ +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/target-arm.rst b/docs/system/target-arm.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/system/target-arm.rst +++ b/docs/system/target-arm.rst @@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running arm/aspeed arm/sabrelite arm/digic + arm/cubieboard arm/musicpal arm/gumstix arm/nrf diff --git a/MAINTAINERS b/MAINTAINERS index XXXXXXX..XXXXXXX 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -XXX,XX +XXX,XX @@ 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> -- 2.20.1
Add skeletal documentation of the emcraft-sf2 machine. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-id: 20210713142226.19155-3-peter.maydell@linaro.org --- docs/system/arm/emcraft-sf2.rst | 15 +++++++++++++++ docs/system/target-arm.rst | 1 + MAINTAINERS | 1 + 3 files changed, 17 insertions(+) create mode 100644 docs/system/arm/emcraft-sf2.rst diff --git a/docs/system/arm/emcraft-sf2.rst b/docs/system/arm/emcraft-sf2.rst new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/docs/system/arm/emcraft-sf2.rst @@ -XXX,XX +XXX,XX @@ +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/target-arm.rst b/docs/system/target-arm.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/system/target-arm.rst +++ b/docs/system/target-arm.rst @@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running arm/sabrelite arm/digic arm/cubieboard + arm/emcraft-sf2 arm/musicpal arm/gumstix arm/nrf diff --git a/MAINTAINERS b/MAINTAINERS index XXXXXXX..XXXXXXX 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -XXX,XX +XXX,XX @@ 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> -- 2.20.1
Add skeletal documentation for the highbank and midway machines. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-id: 20210713142226.19155-4-peter.maydell@linaro.org --- docs/system/arm/highbank.rst | 19 +++++++++++++++++++ docs/system/target-arm.rst | 1 + MAINTAINERS | 1 + 3 files changed, 21 insertions(+) create mode 100644 docs/system/arm/highbank.rst diff --git a/docs/system/arm/highbank.rst b/docs/system/arm/highbank.rst new file mode 100644 index XXXXXXX..XXXXXXX --- /dev/null +++ b/docs/system/arm/highbank.rst @@ -XXX,XX +XXX,XX @@ +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/target-arm.rst b/docs/system/target-arm.rst index XXXXXXX..XXXXXXX 100644 --- a/docs/system/target-arm.rst +++ b/docs/system/target-arm.rst @@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running arm/digic arm/cubieboard arm/emcraft-sf2 + arm/highbank arm/musicpal arm/gumstix arm/nrf diff --git a/MAINTAINERS b/MAINTAINERS index XXXXXXX..XXXXXXX 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -XXX,XX +XXX,XX @@ 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> -- 2.20.1
The Neon and SVE decoders use private 'plus1' functions to implement "add one" for the !function decoder syntax. We have a generic "plus_1" function in translate.h, so use that instead. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-id: 20210715095341.701-1-peter.maydell@linaro.org --- target/arm/neon-ls.decode | 4 ++-- target/arm/neon-shared.decode | 2 +- target/arm/sve.decode | 2 +- target/arm/translate-neon.c | 5 ----- target/arm/translate-sve.c | 5 ----- 5 files changed, 4 insertions(+), 14 deletions(-) diff --git a/target/arm/neon-ls.decode b/target/arm/neon-ls.decode index XXXXXXX..XXXXXXX 100644 --- a/target/arm/neon-ls.decode +++ b/target/arm/neon-ls.decode @@ -XXX,XX +XXX,XX @@ 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 XXXXXXX..XXXXXXX 100644 --- a/target/arm/neon-shared.decode +++ b/target/arm/neon-shared.decode @@ -XXX,XX +XXX,XX @@ # 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 XXXXXXX..XXXXXXX 100644 --- a/target/arm/sve.decode +++ b/target/arm/sve.decode @@ -XXX,XX +XXX,XX @@ ########################################################################### # 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 XXXXXXX..XXXXXXX 100644 --- a/target/arm/translate-neon.c +++ b/target/arm/translate-neon.c @@ -XXX,XX +XXX,XX @@ #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 XXXXXXX..XXXXXXX 100644 --- a/target/arm/translate-sve.c +++ b/target/arm/translate-sve.c @@ -XXX,XX +XXX,XX @@ 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) { -- 2.20.1
v3->v4: Windows headers define an INT type which clashed with an enum value name in arm_gicv3_its.c... The following changes since commit eae587e8e3694b1aceab23239493fb4c7e1a80f5: Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2021-09-13' into staging (2021-09-13 11:00:30 +0100) are available in the Git repository at: https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210913-3 for you to fetch changes up to 28e987a7e7edaa3ca7feeac65edca26145df8814: hw/arm/mps2.c: Mark internal-only I2C buses as 'full' (2021-09-13 21:01:08 +0100) ---------------------------------------------------------------- target-arm queue: * mark MPS2/MPS3 board-internal i2c buses as 'full' so that command line user-created devices are not plugged into them * Take an exception if PSTATE.IL is set * Support an emulated ITS in the virt board * Add support for kudo-bmc board * Probe for KVM_CAP_ARM_VM_IPA_SIZE when creating scratch VM * cadence_uart: Fix clock handling issues that prevented u-boot from running ---------------------------------------------------------------- Bin Meng (6): hw/misc: zynq_slcr: Correctly compute output clocks in the reset exit phase hw/char: cadence_uart: Disable transmit when input clock is disabled hw/char: cadence_uart: Move clock/reset check to uart_can_receive() hw/char: cadence_uart: Convert to memop_with_attrs() ops hw/char: cadence_uart: Ignore access when unclocked or in reset for uart_{read, write}() hw/char: cadence_uart: Log a guest error when device is unclocked or in reset Chris Rauer (1): hw/arm: Add support for kudo-bmc board. Marc Zyngier (1): hw/arm/virt: KVM: Probe for KVM_CAP_ARM_VM_IPA_SIZE when creating scratch VM Peter Maydell (5): target/arm: Take an exception if PSTATE.IL is set qdev: Support marking individual buses as 'full' hw/arm/mps2-tz.c: Add extra data parameter to MakeDevFn hw/arm/mps2-tz.c: Mark internal-only I2C buses as 'full' hw/arm/mps2.c: Mark internal-only I2C buses as 'full' Richard Henderson (1): target/arm: Merge disas_a64_insn into aarch64_tr_translate_insn Shashi Mallela (9): hw/intc: GICv3 ITS initial framework hw/intc: GICv3 ITS register definitions added hw/intc: GICv3 ITS command queue framework hw/intc: GICv3 ITS Command processing hw/intc: GICv3 ITS Feature enablement hw/intc: GICv3 redistributor ITS processing tests/data/acpi/virt: Add IORT files for ITS hw/arm/virt: add ITS support in virt GIC tests/data/acpi/virt: Update IORT files for ITS docs/system/arm/nuvoton.rst | 1 + hw/intc/gicv3_internal.h | 188 ++++- include/hw/arm/virt.h | 2 + include/hw/intc/arm_gicv3_common.h | 13 + include/hw/intc/arm_gicv3_its_common.h | 32 +- include/hw/qdev-core.h | 24 + target/arm/cpu.h | 1 + target/arm/kvm_arm.h | 4 +- target/arm/syndrome.h | 5 + target/arm/translate.h | 2 + hw/arm/mps2-tz.c | 92 ++- hw/arm/mps2.c | 12 +- hw/arm/npcm7xx_boards.c | 34 + hw/arm/virt.c | 29 +- hw/char/cadence_uart.c | 61 +- hw/intc/arm_gicv3.c | 14 + hw/intc/arm_gicv3_common.c | 13 + hw/intc/arm_gicv3_cpuif.c | 7 +- hw/intc/arm_gicv3_dist.c | 5 +- hw/intc/arm_gicv3_its.c | 1322 ++++++++++++++++++++++++++++++++ hw/intc/arm_gicv3_its_common.c | 7 +- hw/intc/arm_gicv3_its_kvm.c | 2 +- hw/intc/arm_gicv3_redist.c | 153 +++- hw/misc/zynq_slcr.c | 31 +- softmmu/qdev-monitor.c | 7 +- target/arm/helper-a64.c | 1 + target/arm/helper.c | 8 + target/arm/kvm.c | 7 +- target/arm/translate-a64.c | 255 +++--- target/arm/translate.c | 21 + hw/intc/meson.build | 1 + tests/data/acpi/virt/IORT | Bin 0 -> 124 bytes tests/data/acpi/virt/IORT.memhp | Bin 0 -> 124 bytes tests/data/acpi/virt/IORT.numamem | Bin 0 -> 124 bytes tests/data/acpi/virt/IORT.pxb | Bin 0 -> 124 bytes 35 files changed, 2144 insertions(+), 210 deletions(-) create mode 100644 hw/intc/arm_gicv3_its.c create mode 100644 tests/data/acpi/virt/IORT create mode 100644 tests/data/acpi/virt/IORT.memhp create mode 100644 tests/data/acpi/virt/IORT.numamem create mode 100644 tests/data/acpi/virt/IORT.pxb