|
| 1 | +.. _qemu_cortex_r5: |
| 2 | + |
| 3 | +ARM Cortex-R5 Emulation (QEMU) |
| 4 | +############################## |
| 5 | + |
| 6 | +Overview |
| 7 | +******** |
| 8 | + |
| 9 | +This board configuration will use QEMU to emulate the Xilinx Zynq UltraScale+ |
| 10 | +(ZynqMP) platform. |
| 11 | + |
| 12 | +.. figure:: qemu_cortex_r5.png |
| 13 | + :width: 600px |
| 14 | + :align: center |
| 15 | + :alt: Qemu |
| 16 | + |
| 17 | + Qemu (Credit: qemu.org) |
| 18 | + |
| 19 | +This configuration provides support for an ARM Cortex-R5 CPU and these devices: |
| 20 | + |
| 21 | +* ARM PL-390 Generic Interrupt Controller |
| 22 | +* Xilinx Zynq TTC (Cadence TTC) |
| 23 | +* Xilinx Zynq UART |
| 24 | + |
| 25 | +.. note:: |
| 26 | + This board configuration makes no claims about its suitability for use |
| 27 | + with an actual ZCU102 hardware system, or any other hardware system. |
| 28 | + |
| 29 | +Hardware |
| 30 | +******** |
| 31 | +Supported Features |
| 32 | +================== |
| 33 | + |
| 34 | +The following hardware features are supported: |
| 35 | + |
| 36 | ++--------------+------------+----------------------+ |
| 37 | +| Interface | Controller | Driver/Component | |
| 38 | ++==============+============+======================+ |
| 39 | +| GIC | on-chip | generic interrupt | |
| 40 | +| | | controller | |
| 41 | ++--------------+------------+----------------------+ |
| 42 | +| TTC | on-chip | system timer | |
| 43 | ++--------------+------------+----------------------+ |
| 44 | +| UART | on-chip | serial port | |
| 45 | ++--------------+------------+----------------------+ |
| 46 | + |
| 47 | +The kernel currently does not support other hardware features on this platform. |
| 48 | + |
| 49 | +Devices |
| 50 | +======== |
| 51 | +System Timer |
| 52 | +------------ |
| 53 | + |
| 54 | +This board configuration uses a system timer tick frequency of 1000 Hz. |
| 55 | + |
| 56 | +Serial Port |
| 57 | +----------- |
| 58 | + |
| 59 | +This board configuration uses a single serial communication channel with the |
| 60 | +on-chip UART0. |
| 61 | + |
| 62 | +Known Problems or Limitations |
| 63 | +============================== |
| 64 | + |
| 65 | +The following platform features are unsupported: |
| 66 | + |
| 67 | +* Dual-redundant Core Lock-step (DCLS) execution is not emulated. |
| 68 | +* Xilinx Zynq TTC driver does not support tickless mode operation. |
| 69 | + |
| 70 | +Programming and Debugging |
| 71 | +************************* |
| 72 | + |
| 73 | +Use this configuration to run basic Zephyr applications and kernel tests in the |
| 74 | +QEMU emulated environment, for example, with the :ref:`synchronization_sample`: |
| 75 | + |
| 76 | +.. zephyr-app-commands:: |
| 77 | + :zephyr-app: samples/synchronization |
| 78 | + :host-os: unix |
| 79 | + :board: qemu_cortex_r5 |
| 80 | + :goals: run |
| 81 | + |
| 82 | +This will build an image with the synchronization sample app, boot it using |
| 83 | +QEMU, and display the following console output: |
| 84 | + |
| 85 | +.. code-block:: console |
| 86 | +
|
| 87 | + *** Booting Zephyr OS build v2.2.0 *** |
| 88 | + threadA: Hello World from qemu_cortex_r5! |
| 89 | + threadB: Hello World from qemu_cortex_r5! |
| 90 | + threadA: Hello World from qemu_cortex_r5! |
| 91 | + threadB: Hello World from qemu_cortex_r5! |
| 92 | + threadA: Hello World from qemu_cortex_r5! |
| 93 | + threadB: Hello World from qemu_cortex_r5! |
| 94 | + threadA: Hello World from qemu_cortex_r5! |
| 95 | + threadB: Hello World from qemu_cortex_r5! |
| 96 | + threadA: Hello World from qemu_cortex_r5! |
| 97 | + threadB: Hello World from qemu_cortex_r5! |
| 98 | +
|
| 99 | +Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`. |
| 100 | + |
| 101 | +Debugging |
| 102 | +========= |
| 103 | + |
| 104 | +Refer to the detailed overview about :ref:`application_debugging`. |
| 105 | + |
| 106 | +References |
| 107 | +********** |
| 108 | + |
| 109 | +1. ARMv7-A and ARMv7-R Architecture Reference Manual (ARM DDI 0406C ID051414) |
| 110 | +2. Cortex-R5 and Cortex-R5F Technical Reference Manual (ARM DDI 0460C ID021511) |
| 111 | +3. Zynq UltraScale+ Device Technical Reference Manual (UG1085) |
0 commit comments