1.. _qemu_cortex_a53: 2 3ARM Cortex-A53 Emulation (QEMU) 4############################### 5 6Overview 7******** 8 9This board configuration will use QEMU to emulate a generic Cortex-A53 hardware 10platform. 11 12This configuration provides support for an ARM Cortex-A53 CPU and these 13devices: 14 15* GIC-400 interrupt controller 16* ARM architected timer 17* PL011 UART controller 18 19Hardware 20******** 21Supported Features 22================== 23 24The following hardware features are supported: 25 26+--------------+------------+----------------------+ 27| Interface | Controller | Driver/Component | 28+==============+============+======================+ 29| GIC | on-chip | interrupt controller | 30+--------------+------------+----------------------+ 31| PL011 UART | on-chip | serial port | 32+--------------+------------+----------------------+ 33| ARM TIMER | on-chip | system clock | 34+--------------+------------+----------------------+ 35 36The kernel currently does not support other hardware features on this platform. 37 38Devices 39======== 40System Clock 41------------ 42 43This board configuration uses a system clock frequency of 62.5 MHz. 44 45Serial Port 46----------- 47 48This board configuration uses a single serial communication channel with the 49CPU's UART0. 50 51Known Problems or Limitations 52============================== 53 54The following platform features are unsupported: 55 56* Writing to the hardware's flash memory 57 58 59Programming and Debugging 60************************* 61 62Use this configuration to run basic Zephyr applications and kernel tests in the QEMU 63emulated environment, for example, with the :zephyr:code-sample:`synchronization` sample: 64 65.. zephyr-app-commands:: 66 :zephyr-app: samples/synchronization 67 :host-os: unix 68 :board: qemu_cortex_a53 69 :goals: run 70 71This will build an image with the synchronization sample app, boot it using 72QEMU, and display the following console output: 73 74.. code-block:: console 75 76 ***** Booting Zephyr OS build zephyr-v2.0.0-1657-g99d310da48e5 ***** 77 threadA: Hello World from qemu_cortex_a53! 78 threadB: Hello World from qemu_cortex_a53! 79 threadA: Hello World from qemu_cortex_a53! 80 threadB: Hello World from qemu_cortex_a53! 81 threadA: Hello World from qemu_cortex_a53! 82 threadB: Hello World from qemu_cortex_a53! 83 threadA: Hello World from qemu_cortex_a53! 84 threadB: Hello World from qemu_cortex_a53! 85 86Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`. 87 88Debugging 89========= 90 91Refer to the detailed overview about :ref:`application_debugging`. 92 93Networking 94========== 95 96The board supports the QEMU built-in Ethernet adapter to connect to the host 97system. See :ref:`networking_with_eth_qemu` for details. 98 99It is also possible to use SLIP networking over an emulated serial port. 100Although this board only supports a single UART, so subsystems like logging 101and shell would need to be disabled, therefore this is not directly supported. 102 103References 104********** 105 1061. (ID050815) ARM® Cortex®-A Series - Programmer’s Guide for ARMv8-A 1072. (ID070919) Arm® Architecture Reference Manual - Armv8, for Armv8-A architecture profile 1083. (ARM DAI 0527A) Application Note Bare-metal Boot Code for ARMv8-A Processors 1094. AArch64 Exception and Interrupt Handling 1105. Fundamentals of ARMv8-A 111