zephyr/boards/arc/qemu_arc/doc/index.rst

103 lines
2.7 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. _qemu_arc:
ARCv2 & ARCv3 Emulation (QEMU)
###############################
Overview
********
This board configuration will use QEMU to emulate set of generic
ARCv2 and ARCv3 hardware platforms.
The following features of ARC ISA cores are currently supported:
* CPU:
* ARCv2 EM
* ARCv2 HS3x
* ARCv3 HS5x
* ARCv3 HS6x
* Only little-endian configurations
* Full 32 register set
* ARC core free-running timers/counters Timer0 & Timer1
* ARC core interrupt controller with multiple priority levels
* DW UART
* 5 slots for MMIO Virtio devices
Hardware
********
Supported Features
==================
The following hardware features are supported:
+--------------+------------+----------------------+
| Interface | Controller | Driver/Component |
+==============+============+======================+
| ARCv2 INTC | on-chip | interrupt controller |
+--------------+------------+----------------------+
| DW UART | on-chip | serial port |
+--------------+------------+----------------------+
| ARC TIMER0 | on-chip | system clock |
+--------------+------------+----------------------+
The kernel currently does not support other hardware features on this platform.
Devices
========
System Clock
------------
This board configuration uses a system clock frequency of 1 MHz.
Serial Port
-----------
This board configuration uses a single serial communication channel with the
DesignWare UART.
Known Problems or Limitations
==============================
The following platform features are unsupported:
* Memory-protection unit (MPU)
* MMIO Virtio Ethernet
Programming and Debugging
*************************
Use this configuration to run basic Zephyr applications and kernel tests in the QEMU
emulated environment, for example, with the :ref:`synchronization_sample`
(note you may use ``qemu_arc_em``, ``qemu_arc_hs``, ``qemu_arc_hs5x`` or
``qemu_arc_hs6x`` depending on target CPU):
.. zephyr-app-commands::
:zephyr-app: samples/synchronization
:host-os: unix
:board: qemu_arc_em
:goals: run
This will build an image with the synchronization sample app, boot it using
QEMU, and display the following console output:
.. code-block:: console
*** Booting Zephyr OS build zephyr-v2.2.0-2486-g7dbfcf4bab57 ***
threadA: Hello World from qemu_arc!
threadB: Hello World from qemu_arc!
threadA: Hello World from qemu_arc!
threadB: Hello World from qemu_arc!
Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`.
Debugging
=========
Refer to the detailed overview about :ref:`application_debugging`.
References
**********
1.`Programmers Reference Manual for ARC HS
<https://www.synopsys.com/dw/doc.php/iip/dwc_arc_hs4xd/latest/doc/ARC_V2_PublicProgrammers_Reference.pdf>`_