boards: Add qemu_leon3
This board configuration can be used out-of-the-box with SPARC QEMU distributed with Zephyr SDK v0.11.2. Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>
This commit is contained in:
parent
bf28bbbcec
commit
34014deb0f
10 changed files with 154 additions and 0 deletions
|
|
@ -20,4 +20,5 @@ under :zephyr_file:`doc/templates/board.tmpl`
|
||||||
xtensa/index.rst
|
xtensa/index.rst
|
||||||
posix/index.rst
|
posix/index.rst
|
||||||
riscv/index.rst
|
riscv/index.rst
|
||||||
|
sparc/index.rst
|
||||||
shields/index.rst
|
shields/index.rst
|
||||||
|
|
|
||||||
10
boards/sparc/index.rst
Normal file
10
boards/sparc/index.rst
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
.. _boards-sparc:
|
||||||
|
|
||||||
|
SPARC Boards
|
||||||
|
############
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:glob:
|
||||||
|
|
||||||
|
**/*
|
||||||
8
boards/sparc/qemu_leon3/Kconfig.board
Normal file
8
boards/sparc/qemu_leon3/Kconfig.board
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Copyright (c) 2019-2020 Cobham Gaisler AB
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config BOARD_QEMU_LEON3
|
||||||
|
bool "QEMU LEON3 target"
|
||||||
|
depends on SOC_LEON3
|
||||||
|
select QEMU_TARGET
|
||||||
10
boards/sparc/qemu_leon3/Kconfig.defconfig
Normal file
10
boards/sparc/qemu_leon3/Kconfig.defconfig
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
# Copyright (c) 2019-2020 Cobham Gaisler AB
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
if BOARD_QEMU_LEON3
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "qemu_leon3"
|
||||||
|
|
||||||
|
endif
|
||||||
13
boards/sparc/qemu_leon3/board.cmake
Normal file
13
boards/sparc/qemu_leon3/board.cmake
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
set(EMU_PLATFORM qemu)
|
||||||
|
|
||||||
|
set(QEMU_binary_suffix sparc)
|
||||||
|
set(QEMU_CPU_TYPE_${ARCH} leon3)
|
||||||
|
|
||||||
|
set(QEMU_FLAGS_${ARCH}
|
||||||
|
-nographic
|
||||||
|
-machine leon3_generic
|
||||||
|
-icount auto
|
||||||
|
)
|
||||||
|
board_set_debugger_ifnset(qemu)
|
||||||
60
boards/sparc/qemu_leon3/doc/index.rst
Normal file
60
boards/sparc/qemu_leon3/doc/index.rst
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
.. _qemu_leon3:
|
||||||
|
|
||||||
|
LEON3 Emulation (QEMU)
|
||||||
|
######################
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The LEON3 QEMU board configuration is used to emulate the LEON3 processor.
|
||||||
|
|
||||||
|
.. figure:: qemu_leon3.png
|
||||||
|
:width: 600px
|
||||||
|
:align: center
|
||||||
|
:alt: Qemu
|
||||||
|
|
||||||
|
Qemu (Credit: qemu.org)
|
||||||
|
|
||||||
|
Programming and Debugging
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Applications for the ``qemu_leon3`` board configuration can be built and run in
|
||||||
|
the usual way for emulated boards (see :ref:`build_an_application` and
|
||||||
|
:ref:`application_run` for more details).
|
||||||
|
|
||||||
|
Flashing
|
||||||
|
========
|
||||||
|
|
||||||
|
While this board is emulated and you can't "flash" it, you can use this
|
||||||
|
configuration to run basic Zephyr applications and kernel tests in the QEMU
|
||||||
|
emulated environment. For example, with the :ref:`synchronization_sample`:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/synchronization
|
||||||
|
:host-os: unix
|
||||||
|
:board: qemu_leon3
|
||||||
|
: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 zephyr-v2.4.0-27-g7b37fdd5303b ***
|
||||||
|
threadA: Hello World from qemu_leon3!
|
||||||
|
threadB: Hello World from qemu_leon3!
|
||||||
|
threadA: Hello World from qemu_leon3!
|
||||||
|
threadB: Hello World from qemu_leon3!
|
||||||
|
threadA: Hello World from qemu_leon3!
|
||||||
|
threadB: Hello World from qemu_leon3!
|
||||||
|
threadA: Hello World from qemu_leon3!
|
||||||
|
threadB: Hello World from qemu_leon3!
|
||||||
|
threadA: Hello World from qemu_leon3!
|
||||||
|
threadB: Hello World from qemu_leon3!
|
||||||
|
|
||||||
|
Exit QEMU by pressing :kbd:`CTRL+A` :kbd:`x`.
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
|
||||||
|
Refer to the detailed overview about :ref:`application_debugging`.
|
||||||
BIN
boards/sparc/qemu_leon3/doc/qemu_leon3.png
Normal file
BIN
boards/sparc/qemu_leon3/doc/qemu_leon3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
29
boards/sparc/qemu_leon3/qemu_leon3.dts
Normal file
29
boards/sparc/qemu_leon3/qemu_leon3.dts
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 Cobham Gaisler AB
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <leon3soc.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
zephyr,console = &uart0;
|
||||||
|
zephyr,sram = &ram0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&timer0 {
|
||||||
|
interrupts = <6>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
interrupts = <3>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ram0 {
|
||||||
|
reg = <0x40000000 0x40000000>;
|
||||||
|
};
|
||||||
12
boards/sparc/qemu_leon3/qemu_leon3.yaml
Normal file
12
boards/sparc/qemu_leon3/qemu_leon3.yaml
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
identifier: qemu_leon3
|
||||||
|
name: QEMU Emulation for LEON3
|
||||||
|
type: qemu
|
||||||
|
simulation: qemu
|
||||||
|
arch: sparc
|
||||||
|
ram: 1048576
|
||||||
|
flash: 524288
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- xtools
|
||||||
|
testing:
|
||||||
|
default: true
|
||||||
11
boards/sparc/qemu_leon3/qemu_leon3_defconfig
Normal file
11
boards/sparc/qemu_leon3/qemu_leon3_defconfig
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
CONFIG_SOC_LEON3=y
|
||||||
|
CONFIG_BOARD_QEMU_LEON3=y
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_PRINTK=y
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
CONFIG_UART_APBUART=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
||||||
|
CONFIG_LEON_GPTIMER=y
|
||||||
|
CONFIG_QEMU_ICOUNT_SHIFT=6
|
||||||
Loading…
Reference in a new issue