From d102058e795229f53a443a58d10d8b457e96acb4 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Fri, 9 Jul 2021 16:06:21 -0700 Subject: [PATCH 01/12] target/arm: Fix offsets for TTBCR 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 Message-id: 20210709230621.938821-2-richard.henderson@linaro.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- 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 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, From 955990af736a8cb2af7839d53b26ed8bb3b0633a Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Mon, 5 Jul 2021 10:55:41 +0100 Subject: [PATCH 02/12] docs: Fix documentation Copyright date MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Markus Armbruster Reviewed-by: Daniel P. Berrangé 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 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 From b4634487c44bd1cc664f45b63c98161dfd170784 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Mon, 5 Jul 2021 10:55:42 +0100 Subject: [PATCH 03/12] docs: Stop calling the top level subsections of our manual 'manuals' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Markus Armbruster Reviewed-by: Daniel P. Berrangé 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 40a7e2ee6f..9299d2a502 100644 --- a/docs/devel/index.rst +++ b/docs/devel/index.rst @@ -1,10 +1,7 @@ -.. 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 219a5e5fc5..8b34da6f55 100644 --- a/docs/interop/index.rst +++ b/docs/interop/index.rst @@ -1,11 +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. +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 7b08314d33..4c0d2a37cb 100644 --- a/docs/specs/index.rst +++ b/docs/specs/index.rst @@ -1,9 +1,8 @@ -.. 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 6092eb2d91..2a9bd75980 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -1,10 +1,7 @@ -.. 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 d923834a73..ffb14b9690 100644 --- a/docs/tools/index.rst +++ b/docs/tools/index.rst @@ -1,9 +1,8 @@ -.. 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 a5b47459ec..6ac2ac089f 100644 --- a/docs/user/index.rst +++ b/docs/user/index.rst @@ -1,10 +1,7 @@ -.. 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. From 21b6c26d632482a6633604f8c05c89669f37441f Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Mon, 5 Jul 2021 10:55:43 +0100 Subject: [PATCH 04/12] docs: Remove "Contents:" lines from top-level subsections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Markus Armbruster Reviewed-by: Daniel P. Berrangé 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 9299d2a502..153979caf4 100644 --- a/docs/devel/index.rst +++ b/docs/devel/index.rst @@ -5,8 +5,6 @@ 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 8b34da6f55..b1bab81e2e 100644 --- a/docs/interop/index.rst +++ b/docs/interop/index.rst @@ -4,8 +4,6 @@ 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 4c0d2a37cb..b7b08ea30d 100644 --- a/docs/specs/index.rst +++ b/docs/specs/index.rst @@ -4,8 +4,6 @@ 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 2a9bd75980..058cabd36c 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -6,8 +6,6 @@ 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 ffb14b9690..ef6041a490 100644 --- a/docs/tools/index.rst +++ b/docs/tools/index.rst @@ -4,8 +4,6 @@ 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 6ac2ac089f..9faa4badd7 100644 --- a/docs/user/index.rst +++ b/docs/user/index.rst @@ -5,8 +5,6 @@ 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 From f347839258a1ace57d0b59e89bf01352b8d1c13b Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Mon, 5 Jul 2021 10:55:44 +0100 Subject: [PATCH 05/12] docs: Move deprecation, build and license info out of system/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Daniel P. Berrangé 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 0000000000..cd44456a6b --- /dev/null +++ b/docs/about/index.rst @@ -0,0 +1,10 @@ +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 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/system/index.rst b/docs/system/index.rst index 058cabd36c..fda4b1b705 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -35,7 +35,3 @@ or Hypervisor.Framework. targets security multi-process - deprecated - removed-features - build-platforms - license From 4a43fa3af926bb2ceef8f7ed188a41c70e0e8477 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Mon, 5 Jul 2021 10:55:45 +0100 Subject: [PATCH 06/12] docs: Add some actual About text to about/index.rst MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Markus Armbruster Reviewed-by: Daniel P. Berrangé 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 cd44456a6b..689a9861dc 100644 --- a/docs/about/index.rst +++ b/docs/about/index.rst @@ -1,6 +1,23 @@ 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 From 13f934e79fa72d28a2c7de584a45c646b65d524f Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Mon, 5 Jul 2021 10:55:46 +0100 Subject: [PATCH 07/12] docs: Add license note to the HTML page footer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Markus Armbruster Reviewed-by: Daniel P. Berrangé Message-id: 20210705095547.15790-7-peter.maydell@linaro.org --- MAINTAINERS | 1 + docs/_templates/footer.html | 12 ++++++++++++ docs/meson.build | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 docs/_templates/footer.html diff --git a/MAINTAINERS b/MAINTAINERS index 9100f9a043..814d103fe1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3451,6 +3451,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..4c15e17d2a --- /dev/null +++ b/docs/_templates/footer.html @@ -0,0 +1,12 @@ +{% extends "!footer.html" %} +{% block extrafooter %} + + +

+ +{% trans path=pathto('about/license') %} +

QEMU and this manual are released under the +GNU General Public License, version 2.

+{% endtrans %} +{{ super() }} +{% endblock %} 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, From 3a50c8f3067aaf344a568b8de6a68887ee55bc21 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Mon, 5 Jul 2021 10:55:47 +0100 Subject: [PATCH 08/12] docs: Add QEMU version information to HTML footer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Daniel P. Berrangé 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 4c15e17d2a..977053b541 100644 --- a/docs/_templates/footer.html +++ b/docs/_templates/footer.html @@ -4,6 +4,8 @@

+

This documentation is for QEMU version {{ version }}.

+ {% trans path=pathto('about/license') %}

QEMU and this manual are released under the GNU General Public License, version 2.

From d4a7c362fe50bbdfd0a02b1a2c1fdf57e98bba79 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Tue, 13 Jul 2021 15:22:24 +0100 Subject: [PATCH 09/12] docs: Add skeletal documentation of cubieboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add skeletal documentation of the cubieboard machine. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-id: 20210713142226.19155-2-peter.maydell@linaro.org --- MAINTAINERS | 1 + docs/system/arm/cubieboard.rst | 16 ++++++++++++++++ docs/system/target-arm.rst | 1 + 3 files changed, 18 insertions(+) create mode 100644 docs/system/arm/cubieboard.rst diff --git a/MAINTAINERS b/MAINTAINERS index 814d103fe1..1596b352b4 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 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/target-arm.rst b/docs/system/target-arm.rst index 705b8835e4..e2fcb64872 100644 --- a/docs/system/target-arm.rst +++ b/docs/system/target-arm.rst @@ -85,6 +85,7 @@ undocumented; you can get a complete list by running arm/aspeed arm/sabrelite arm/digic + arm/cubieboard arm/musicpal arm/gumstix arm/nrf From 3f65df38e8a5e75ccfd5a641d252ad8882c9e68c Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Tue, 13 Jul 2021 15:22:25 +0100 Subject: [PATCH 10/12] docs: Add skeletal documentation of the emcraft-sf2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add skeletal documentation of the emcraft-sf2 machine. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-id: 20210713142226.19155-3-peter.maydell@linaro.org --- MAINTAINERS | 1 + docs/system/arm/emcraft-sf2.rst | 15 +++++++++++++++ docs/system/target-arm.rst | 1 + 3 files changed, 17 insertions(+) create mode 100644 docs/system/arm/emcraft-sf2.rst diff --git a/MAINTAINERS b/MAINTAINERS index 1596b352b4..1504951823 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1024,6 +1024,7 @@ M: Peter Maydell 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 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/target-arm.rst b/docs/system/target-arm.rst index e2fcb64872..c52902acda 100644 --- a/docs/system/target-arm.rst +++ b/docs/system/target-arm.rst @@ -86,6 +86,7 @@ undocumented; you can get a complete list by running arm/sabrelite arm/digic arm/cubieboard + arm/emcraft-sf2 arm/musicpal arm/gumstix arm/nrf From c90df7ce4ef50f9cea3c42daea4fc167bb0d9d2e Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Tue, 13 Jul 2021 15:22:26 +0100 Subject: [PATCH 11/12] docs: Add skeletal documentation of highbank and midway MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add skeletal documentation for the highbank and midway machines. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-id: 20210713142226.19155-4-peter.maydell@linaro.org --- MAINTAINERS | 1 + docs/system/arm/highbank.rst | 19 +++++++++++++++++++ docs/system/target-arm.rst | 1 + 3 files changed, 21 insertions(+) create mode 100644 docs/system/arm/highbank.rst diff --git a/MAINTAINERS b/MAINTAINERS index 1504951823..4256ad1adb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -643,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 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/target-arm.rst b/docs/system/target-arm.rst index c52902acda..c0c2585c0a 100644 --- a/docs/system/target-arm.rst +++ b/docs/system/target-arm.rst @@ -87,6 +87,7 @@ undocumented; you can get a complete list by running arm/digic arm/cubieboard arm/emcraft-sf2 + arm/highbank arm/musicpal arm/gumstix arm/nrf From 8fe612a183dec4c63afdc57537079bc742d024ca Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Thu, 15 Jul 2021 10:53:41 +0100 Subject: [PATCH 12/12] target/arm: Remove duplicate 'plus1' function from Neon and SVE decode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé 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 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) {