mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-09-08 16:07:39 -06:00
target-arm queue:
* Don't require 'virt' board to be compiled in for ACPI GHES code * docs: Document which architecture extensions we emulate * Fix bugs in M-profile FPCXT_NS accesses * First slice of MVE patches * Implement MTE3 * docs/system: arm: Add nRF boards description -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmDUj7QZHHBldGVyLm1h eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3jffEACAqLxGeZ9ybE9JOr6Nryxf fXCO6h2/3OR9jlixhMXMgksbjC82Z02kE/ywBUQ1OpgxlGiRcRBWNrhFBdiATXTS KhFiD+KZwiguTXgSm4VrFFWru7UOyj+kQIiNwEHYRs6iG/zZYamdQilK9gvWqR+M smXf6/tj+U5s9y53ZFSdCnZMOsdNcrwEN8VgMUwxDlB2/HsM9bg2eymSs5C4lJXF /H3ZjjmHUzeYUma5NXlDORu9ri2OxRYdXxLHeHwEmw1MZE8J8kwbnbGYdpC490o4 nCIqJJGNq9K+jw6oFWKitzjOlvZBzx4+vbX0g0BCRd3g+oviBCfKazOSBrQM1AuI iGSsdfuaNMcv07O+pAE/WPrqtR2hvTVVXX4j9f9rTDNyqNjja7t3hnsyW9+KyQrZ Rl3Ha5YBH+Upe1TF6MV7gE4z07vjjD6Xem5HNHBcOP91WnK/sw1yOtFfl6cQlLcr ukUhHu+Il5FErSityZfgx25hI2Cin2oBgnleAbe5DKaWFt5cMPwGpb0GnIjOeilr O7KzC8LejTPssBRYndpvxvhgfFTXsws4bxMal/RBLTFuLAg7D/hrTBTUzxSnq+hw b9Keewj646vfEY+g/B/B02kT8NVnial5MOqkqL1I87r2BNOjbY6R7T5UBDYl8kP8 Ph4lpz+ECQL5N04t9MhwhA== =6zaW -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210624' into staging target-arm queue: * Don't require 'virt' board to be compiled in for ACPI GHES code * docs: Document which architecture extensions we emulate * Fix bugs in M-profile FPCXT_NS accesses * First slice of MVE patches * Implement MTE3 * docs/system: arm: Add nRF boards description # gpg: Signature made Thu 24 Jun 2021 14:59:16 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-20210624: (57 commits) docs/system: arm: Add nRF boards description target/arm: Implement MTE3 target/arm: Make VMOV scalar <-> gpreg beatwise for MVE target/arm: Implement MVE VADDV target/arm: Implement MVE VHCADD target/arm: Implement MVE VCADD target/arm: Implement MVE VADC, VSBC target/arm: Implement MVE VRHADD target/arm: Implement MVE VQDMULL (vector) target/arm: Implement MVE VQDMLSDH and VQRDMLSDH target/arm: Implement MVE VQDMLADH and VQRDMLADH target/arm: Implement MVE VRSHL target/arm: Implement MVE VSHL insn target/arm: Implement MVE VQRSHL target/arm: Implement MVE VQSHL (vector) target/arm: Implement MVE VQADD, VQSUB (vector) target/arm: Implement MVE VQDMULH, VQRDMULH (vector) target/arm: Implement MVE VQDMULL scalar target/arm: Implement MVE VQDMULH and VQRDMULH (scalar) target/arm: Implement MVE VQADD and VQSUB ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
ecba223da6
27 changed files with 3578 additions and 629 deletions
103
docs/system/arm/emulation.rst
Normal file
103
docs/system/arm/emulation.rst
Normal file
|
@ -0,0 +1,103 @@
|
|||
A-profile CPU architecture support
|
||||
==================================
|
||||
|
||||
QEMU's TCG emulation includes support for the Armv5, Armv6, Armv7 and
|
||||
Armv8 versions of the A-profile architecture. It also has support for
|
||||
the following architecture extensions:
|
||||
|
||||
- FEAT_AA32BF16 (AArch32 BFloat16 instructions)
|
||||
- FEAT_AA32HPD (AArch32 hierarchical permission disables)
|
||||
- FEAT_AA32I8MM (AArch32 Int8 matrix multiplication instructions)
|
||||
- FEAT_AES (AESD and AESE instructions)
|
||||
- FEAT_BF16 (AArch64 BFloat16 instructions)
|
||||
- FEAT_BTI (Branch Target Identification)
|
||||
- FEAT_DIT (Data Independent Timing instructions)
|
||||
- FEAT_DPB (DC CVAP instruction)
|
||||
- FEAT_DotProd (Advanced SIMD dot product instructions)
|
||||
- FEAT_FCMA (Floating-point complex number instructions)
|
||||
- FEAT_FHM (Floating-point half-precision multiplication instructions)
|
||||
- FEAT_FP16 (Half-precision floating-point data processing)
|
||||
- FEAT_FRINTTS (Floating-point to integer instructions)
|
||||
- FEAT_FlagM (Flag manipulation instructions v2)
|
||||
- FEAT_FlagM2 (Enhancements to flag manipulation instructions)
|
||||
- FEAT_HPDS (Hierarchical permission disables)
|
||||
- FEAT_I8MM (AArch64 Int8 matrix multiplication instructions)
|
||||
- FEAT_JSCVT (JavaScript conversion instructions)
|
||||
- FEAT_LOR (Limited ordering regions)
|
||||
- FEAT_LRCPC (Load-acquire RCpc instructions)
|
||||
- FEAT_LRCPC2 (Load-acquire RCpc instructions v2)
|
||||
- FEAT_LSE (Large System Extensions)
|
||||
- FEAT_MTE (Memory Tagging Extension)
|
||||
- FEAT_MTE2 (Memory Tagging Extension)
|
||||
- FEAT_MTE3 (MTE Asymmetric Fault Handling)
|
||||
- FEAT_PAN (Privileged access never)
|
||||
- FEAT_PAN2 (AT S1E1R and AT S1E1W instruction variants affected by PSTATE.PAN)
|
||||
- FEAT_PAuth (Pointer authentication)
|
||||
- FEAT_PMULL (PMULL, PMULL2 instructions)
|
||||
- FEAT_PMUv3p1 (PMU Extensions v3.1)
|
||||
- FEAT_PMUv3p4 (PMU Extensions v3.4)
|
||||
- FEAT_RDM (Advanced SIMD rounding double multiply accumulate instructions)
|
||||
- FEAT_RNG (Random number generator)
|
||||
- FEAT_SB (Speculation Barrier)
|
||||
- FEAT_SEL2 (Secure EL2)
|
||||
- FEAT_SHA1 (SHA1 instructions)
|
||||
- FEAT_SHA256 (SHA256 instructions)
|
||||
- FEAT_SHA3 (Advanced SIMD SHA3 instructions)
|
||||
- FEAT_SHA512 (Advanced SIMD SHA512 instructions)
|
||||
- FEAT_SM3 (Advanced SIMD SM3 instructions)
|
||||
- FEAT_SM4 (Advanced SIMD SM4 instructions)
|
||||
- FEAT_SPECRES (Speculation restriction instructions)
|
||||
- FEAT_SSBS (Speculative Store Bypass Safe)
|
||||
- FEAT_TLBIOS (TLB invalidate instructions in Outer Shareable domain)
|
||||
- FEAT_TLBIRANGE (TLB invalidate range instructions)
|
||||
- FEAT_TTCNP (Translation table Common not private translations)
|
||||
- FEAT_TTST (Small translation tables)
|
||||
- FEAT_UAO (Unprivileged Access Override control)
|
||||
- FEAT_VHE (Virtualization Host Extensions)
|
||||
- FEAT_VMID16 (16-bit VMID)
|
||||
- FEAT_XNX (Translation table stage 2 Unprivileged Execute-never)
|
||||
- SVE (The Scalable Vector Extension)
|
||||
- SVE2 (The Scalable Vector Extension v2)
|
||||
|
||||
For information on the specifics of these extensions, please refer
|
||||
to the `Armv8-A Arm Architecture Reference Manual
|
||||
<https://developer.arm.com/documentation/ddi0487/latest>`_.
|
||||
|
||||
When a specific named CPU is being emulated, only those features which
|
||||
are present in hardware for that CPU are emulated. (If a feature is
|
||||
not in the list above then it is not supported, even if the real
|
||||
hardware should have it.) The ``max`` CPU enables all features.
|
||||
|
||||
R-profile CPU architecture support
|
||||
==================================
|
||||
|
||||
QEMU's TCG emulation support for R-profile CPUs is currently limited.
|
||||
We emulate only the Cortex-R5 and Cortex-R5F CPUs.
|
||||
|
||||
M-profile CPU architecture support
|
||||
==================================
|
||||
|
||||
QEMU's TCG emulation includes support for Armv6-M, Armv7-M, Armv8-M, and
|
||||
Armv8.1-M versions of the M-profile architucture. It also has support
|
||||
for the following architecture extensions:
|
||||
|
||||
- FP (Floating-point Extension)
|
||||
- FPCXT (FPCXT access instructions)
|
||||
- HP (Half-precision floating-point instructions)
|
||||
- LOB (Low Overhead loops and Branch future)
|
||||
- M (Main Extension)
|
||||
- MPU (Memory Protection Unit Extension)
|
||||
- PXN (Privileged Execute Never)
|
||||
- RAS (Reliability, Serviceability and Availability): "minimum RAS Extension" only
|
||||
- S (Security Extension)
|
||||
- ST (System Timer Extension)
|
||||
|
||||
For information on the specifics of these extensions, please refer
|
||||
to the `Armv8-M Arm Architecture Reference Manual
|
||||
<https://developer.arm.com/documentation/ddi0553/latest>`_.
|
||||
|
||||
When a specific named CPU is being emulated, only those features which
|
||||
are present in hardware for that CPU are emulated. (If a feature is
|
||||
not in the list above then it is not supported, even if the real
|
||||
hardware should have it.) There is no equivalent of the ``max`` CPU for
|
||||
M-profile.
|
51
docs/system/arm/nrf.rst
Normal file
51
docs/system/arm/nrf.rst
Normal file
|
@ -0,0 +1,51 @@
|
|||
Nordic nRF boards (``microbit``)
|
||||
================================
|
||||
|
||||
The `Nordic nRF`_ chips are a family of ARM-based System-on-Chip that
|
||||
are designed to be used for low-power and short-range wireless solutions.
|
||||
|
||||
.. _Nordic nRF: https://www.nordicsemi.com/Products
|
||||
|
||||
The nRF51 series is the first series for short range wireless applications.
|
||||
It is superseded by the nRF52 series.
|
||||
The following machines are based on this chip :
|
||||
|
||||
- ``microbit`` BBC micro:bit board with nRF51822 SoC
|
||||
|
||||
There are other series such as nRF52, nRF53 and nRF91 which are currently not
|
||||
supported by QEMU.
|
||||
|
||||
Supported devices
|
||||
-----------------
|
||||
|
||||
* ARM Cortex-M0 (ARMv6-M)
|
||||
* Serial ports (UART)
|
||||
* Clock controller
|
||||
* Timers
|
||||
* Random Number Generator (RNG)
|
||||
* GPIO controller
|
||||
* NVMC
|
||||
* SWI
|
||||
|
||||
Missing devices
|
||||
---------------
|
||||
|
||||
* Watchdog
|
||||
* Real-Time Clock (RTC) controller
|
||||
* TWI (i2c)
|
||||
* SPI controller
|
||||
* Analog to Digital Converter (ADC)
|
||||
* Quadrature decoder
|
||||
* Radio
|
||||
|
||||
Boot options
|
||||
------------
|
||||
|
||||
The Micro:bit machine can be started using the ``-device`` option to load a
|
||||
firmware in `ihex format`_. Example:
|
||||
|
||||
.. _ihex format: https://en.wikipedia.org/wiki/Intel_HEX
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ qemu-system-arm -M microbit -device loader,file=test.hex
|
|
@ -87,6 +87,7 @@ undocumented; you can get a complete list by running
|
|||
arm/digic
|
||||
arm/musicpal
|
||||
arm/gumstix
|
||||
arm/nrf
|
||||
arm/nseries
|
||||
arm/nuvoton
|
||||
arm/orangepi
|
||||
|
@ -99,6 +100,12 @@ undocumented; you can get a complete list by running
|
|||
arm/virt
|
||||
arm/xlnx-versal-virt
|
||||
|
||||
Emulated CPU architecture support
|
||||
=================================
|
||||
|
||||
.. toctree::
|
||||
arm/emulation
|
||||
|
||||
Arm CPU features
|
||||
================
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue