| .. _qemu_malta: |
| |
| MIPS Malta Emulation (QEMU) |
| ########################### |
| |
| Overview |
| ******** |
| |
| This board configuration will use QEMU to emulate the MIPS Malta platform. |
| |
| This configuration provides support for an MIPS 4Kc/24Kc CPU cores and these devices: |
| |
| * CP0 Interrupt Controller |
| * CP0 Core Timer |
| * NS16550 UART |
| |
| |
| .. note:: |
| This board configuration makes no claims about its suitability for use |
| with an actual MIPS Malta hardware system, or any other hardware system. |
| |
| Hardware |
| ******** |
| |
| Supported Features |
| ================== |
| |
| The following hardware features are supported: |
| |
| +----------------+------------+----------------------+ |
| | Interface | Controller | Driver/Component | |
| +================+============+======================+ |
| | CP0 IntC | on-chip | interrupt controller | |
| +----------------+------------+----------------------+ |
| | CP0 Core Timer | on-chip | system clock | |
| +----------------+------------+----------------------+ |
| | NS16550 | FPGA | serial port | |
| | UART | | | |
| +----------------+------------+----------------------+ |
| |
| The kernel currently does not support other hardware features on this platform. |
| |
| Devices |
| ======== |
| System Clock |
| ------------ |
| |
| Qemu CP0 timer uses a clock frequency of 200 MHz, |
| see target/mips/cp0_timer.c in Qemu source tree for details. |
| |
| Serial Port |
| ----------- |
| |
| This board configuration uses a single serial communication channel |
| with the FPGA UART2. |
| |
| Programming and Debugging |
| ************************* |
| |
| Use this configuration to run basic Zephyr applications and kernel tests in the QEMU |
| emulated environment, for example, with the :zephyr:code-sample:`synchronization` sample: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/synchronization |
| :host-os: unix |
| :board: qemu_malta |
| :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 v2.7.99-1627-g9bea7790d620 *** |
| thread_a: Hello World from cpu 0 on qemu_malta! |
| thread_b: Hello World from cpu 0 on qemu_malta! |
| thread_a: Hello World from cpu 0 on qemu_malta! |
| thread_b: Hello World from cpu 0 on qemu_malta! |
| thread_a: Hello World from cpu 0 on qemu_malta! |
| thread_b: Hello World from cpu 0 on qemu_malta! |
| thread_a: Hello World from cpu 0 on qemu_malta! |
| thread_b: Hello World from cpu 0 on qemu_malta! |
| thread_a: Hello World from cpu 0 on qemu_malta! |
| thread_b: Hello World from cpu 0 on qemu_malta! |
| |
| |
| Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`. |
| |
| |
| Big-Endian |
| ========== |
| |
| Use this configuration to run :zephyr:code-sample:`synchronization` sample in big-endian mode: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/synchronization |
| :host-os: unix |
| :board: qemu_malta_be |
| :goals: run |
| |
| |
| References |
| ********** |
| |
| https://www.qemu.org/ |
| https://www.linux-mips.org/wiki/MIPS_Malta |