| .. _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.`Programmer’s Reference Manual for ARC HS |
| <https://www.synopsys.com/dw/doc.php/iip/dwc_arc_hs4xd/latest/doc/ARC_V2_PublicProgrammers_Reference.pdf>`_ |