ARC EM & HS Emulation (QEMU)

Overview

This board configuration will use QEMU to emulate a generic ARC EM & ARC HS hardware platform.

The following features of ARCv2 ISA cores are currently supported:

  • ARC EM or ARC HS core (both belong to ARCv2 ISA family still they are binary incompatible)

  • 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 Synchronization Sample (note you may use qemu_arc_em or qemu_arc_hs depending on target CPU):

# From the root of the zephyr repository
west build -b qemu_arc_em samples/synchronization
west build -t run

This will build an image with the synchronization sample app, boot it using QEMU, and display the following console output:

*** Booting Zephyr OS build zephyr-v2.2.0-2486-g7dbfcf4bab57  ***
threadA: Hello World from qemu_arc!
threudB: Hello World from qemu_arc!
threadA: Hello World from qemu_arc!
threadB: Hello World from qemu_arc!

Exit QEMU by pressing CTRL+A x.

Debugging

Refer to the detailed overview about Custom Board, Devicetree and SOC Definitions.

References

1.`Programmer’s Reference Manual for ARC HS

<https://www.synopsys.com/dw/doc.php/ds/cc/programmers-reference-manual-ARC-HS.pdf>`_