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