boards: arm: mps2: Add support for mps2/an500 in FVP
Added support for an500 in fvp. Qualifier to build and run is mps2/an500. Signed-off-by: Samuel Chee <samche01@arm.com>
This commit is contained in:
parent
ccd47083b5
commit
d8a1fd93e0
13 changed files with 139 additions and 311 deletions
|
@ -2,7 +2,7 @@
|
||||||
# Copyright 2024 Arm Limited and/or its affiliates <open-source-office@arm.com>
|
# Copyright 2024 Arm Limited and/or its affiliates <open-source-office@arm.com>
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
if BOARD_MPS2_AN383 || BOARD_MPS2_AN385 || BOARD_MPS2_AN386
|
if BOARD_MPS2_AN383 || BOARD_MPS2_AN385 || BOARD_MPS2_AN386 || BOARD_MPS2_AN500
|
||||||
|
|
||||||
if SERIAL
|
if SERIAL
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ config BOARD_MPS2
|
||||||
select SOC_MPS2_AN383 if BOARD_MPS2_AN383
|
select SOC_MPS2_AN383 if BOARD_MPS2_AN383
|
||||||
select SOC_MPS2_AN385 if BOARD_MPS2_AN385
|
select SOC_MPS2_AN385 if BOARD_MPS2_AN385
|
||||||
select SOC_MPS2_AN386 if BOARD_MPS2_AN386
|
select SOC_MPS2_AN386 if BOARD_MPS2_AN386
|
||||||
|
select SOC_MPS2_AN500 if BOARD_MPS2_AN500
|
||||||
select SOC_MPS2_AN521_CPU0 if BOARD_MPS2_AN521_CPU0
|
select SOC_MPS2_AN521_CPU0 if BOARD_MPS2_AN521_CPU0
|
||||||
select SOC_MPS2_AN521_CPU0 if BOARD_MPS2_AN521_CPU0_NS
|
select SOC_MPS2_AN521_CPU0 if BOARD_MPS2_AN521_CPU0_NS
|
||||||
select SOC_MPS2_AN521_CPU1 if BOARD_MPS2_AN521_CPU1
|
select SOC_MPS2_AN521_CPU1 if BOARD_MPS2_AN521_CPU1
|
||||||
|
|
|
@ -22,6 +22,9 @@ elseif(CONFIG_BOARD_MPS2_AN383)
|
||||||
elseif(CONFIG_BOARD_MPS2_AN386)
|
elseif(CONFIG_BOARD_MPS2_AN386)
|
||||||
set(SUPPORTED_EMU_PLATFORMS armfvp)
|
set(SUPPORTED_EMU_PLATFORMS armfvp)
|
||||||
set(ARMFVP_BIN_NAME FVP_MPS2_Cortex-M4)
|
set(ARMFVP_BIN_NAME FVP_MPS2_Cortex-M4)
|
||||||
|
elseif(CONFIG_BOARD_MPS2_AN500)
|
||||||
|
set(SUPPORTED_EMU_PLATFORMS armfvp)
|
||||||
|
set(ARMFVP_BIN_NAME FVP_MPS2_Cortex-M7)
|
||||||
elseif(CONFIG_BOARD_MPS2_AN521_CPU0 OR CONFIG_BOARD_MPS2_AN521_CPU0_NS OR CONFIG_BOARD_MPS2_AN521_CPU1)
|
elseif(CONFIG_BOARD_MPS2_AN521_CPU0 OR CONFIG_BOARD_MPS2_AN521_CPU0_NS OR CONFIG_BOARD_MPS2_AN521_CPU1)
|
||||||
set(SUPPORTED_EMU_PLATFORMS qemu)
|
set(SUPPORTED_EMU_PLATFORMS qemu)
|
||||||
set(QEMU_CPU_TYPE_${ARCH} cortex-m33)
|
set(QEMU_CPU_TYPE_${ARCH} cortex-m33)
|
||||||
|
|
|
@ -6,6 +6,7 @@ board:
|
||||||
- name: an383
|
- name: an383
|
||||||
- name: an385
|
- name: an385
|
||||||
- name: an386
|
- name: an386
|
||||||
|
- name: an500
|
||||||
- name: an521
|
- name: an521
|
||||||
variants:
|
variants:
|
||||||
- name: ns
|
- name: ns
|
||||||
|
|
10
boards/arm/mps2/doc/index.rst
Normal file
10
boards/arm/mps2/doc/index.rst
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
.. zephyr:board:: mps2
|
||||||
|
|
||||||
|
ARM Ltd.
|
||||||
|
########
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:glob:
|
||||||
|
|
||||||
|
*
|
|
@ -1,282 +0,0 @@
|
||||||
.. _mps2_an386_board:
|
|
||||||
|
|
||||||
ARM V2M MPS2 AN386
|
|
||||||
##################
|
|
||||||
|
|
||||||
Overview
|
|
||||||
********
|
|
||||||
|
|
||||||
The ``mps2/an386`` board target is used by Zephyr applications that run on
|
|
||||||
the V2M MPS2 board. It provides support for the ARM Cortex-M4 (an386) CPU and
|
|
||||||
the following devices:
|
|
||||||
|
|
||||||
- Nested Vectored Interrupt Controller (NVIC)
|
|
||||||
- System Tick System Clock (SYSTICK)
|
|
||||||
- Cortex-M System Design Kit UART
|
|
||||||
|
|
||||||
.. image:: img/mps2.jpg
|
|
||||||
:align: center
|
|
||||||
:alt: ARM V2M MPS2
|
|
||||||
|
|
||||||
In addition to enabling actual hardware usage, this board target can
|
|
||||||
also use `FVP`_ to emulate the AN386 platform running on the MPS2+.
|
|
||||||
|
|
||||||
More information about the board can be found at the `V2M MPS2 Website`_.
|
|
||||||
|
|
||||||
The Application Note an386 can be found at `Application Note an386`_.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
This board target makes no claims about its suitability for use
|
|
||||||
with actual MPS2 hardware systems using AN386, or any other hardware
|
|
||||||
system. It has been tested on FVP.
|
|
||||||
|
|
||||||
Hardware
|
|
||||||
********
|
|
||||||
|
|
||||||
ARM V2M MPS2 provides the following hardware components:
|
|
||||||
|
|
||||||
- ARM Cortex-M4 (an386)
|
|
||||||
- ARM IoT Subsystem for Cortex-M
|
|
||||||
- Form factor: 140x120cm
|
|
||||||
- ZBTSRAM: 8MB single cycle SRAM, 16MB PSRAM
|
|
||||||
- Audio: Audio Codec
|
|
||||||
- Debug:
|
|
||||||
|
|
||||||
- ARM JTAG20 connector
|
|
||||||
- ARM parallel trace connector (MICTOR38)
|
|
||||||
- 20 pin Cortex debug connector
|
|
||||||
- 10 pin Cortex debug connector
|
|
||||||
- ILA connector for FPGA debug
|
|
||||||
|
|
||||||
- Expansion
|
|
||||||
|
|
||||||
- GPIO
|
|
||||||
- SPI
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
4 MB of flash memory (in ZBTSRAM 1, starting at address 0x00400000) and 4 MB of RAM
|
|
||||||
(in ZBTSRAM 2 & 3, starting at address 0x20000000) are available.
|
|
||||||
|
|
||||||
Supported Features
|
|
||||||
==================
|
|
||||||
|
|
||||||
The ``mps2/an386`` board target supports the following hardware features:
|
|
||||||
|
|
||||||
+-----------+------------+-------------------------------------+
|
|
||||||
| Interface | Controller | Driver/Component |
|
|
||||||
+===========+============+=====================================+
|
|
||||||
| NVIC | on-chip | nested vector interrupt controller |
|
|
||||||
+-----------+------------+-------------------------------------+
|
|
||||||
| SYSTICK | on-chip | systick |
|
|
||||||
+-----------+------------+-------------------------------------+
|
|
||||||
| UART | on-chip | serial port-polling; |
|
|
||||||
| | | serial port-interrupt |
|
|
||||||
+-----------+------------+-------------------------------------+
|
|
||||||
| GPIO | on-chip | gpio |
|
|
||||||
+-----------+------------+-------------------------------------+
|
|
||||||
| WATCHDOG | on-chip | watchdog |
|
|
||||||
+-----------+------------+-------------------------------------+
|
|
||||||
| TIMER | on-chip | counter |
|
|
||||||
+-----------+------------+-------------------------------------+
|
|
||||||
| DUALTIMER | on-chip | counter |
|
|
||||||
+-----------+------------+-------------------------------------+
|
|
||||||
|
|
||||||
Other hardware features are not currently supported by the port.
|
|
||||||
See the `V2M MPS2 Website`_ for a complete list of V2M MPS2 board hardware
|
|
||||||
features.
|
|
||||||
|
|
||||||
The default configuration can be found in
|
|
||||||
:zephyr_file:`boards/arm/mps2/mps2_an386_defconfig`
|
|
||||||
|
|
||||||
Interrupt Controller
|
|
||||||
====================
|
|
||||||
|
|
||||||
MPS2 is a Cortex-M4 based SoC and has 15 fixed exceptions and 45 IRQs.
|
|
||||||
|
|
||||||
A Cortex-M3/4-based board uses vectored exceptions. This means each exception
|
|
||||||
calls a handler directly from the vector table.
|
|
||||||
|
|
||||||
Handlers are provided for exceptions 1-6, 11-12, and 14-15. The table here
|
|
||||||
identifies the handlers used for each exception.
|
|
||||||
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| Exc# | Name | Remarks | Used by Zephyr Kernel |
|
|
||||||
+======+============+================+==========================+
|
|
||||||
| 1 | Reset | | system initialization |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 2 | NMI | | system fatal error |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 3 | Hard fault | | system fatal error |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 4 | MemManage | MPU fault | system fatal error |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 5 | Bus | | system fatal error |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 6 | Usage | undefined | system fatal error |
|
|
||||||
| | fault | instruction, | |
|
|
||||||
| | | or switch | |
|
|
||||||
| | | attempt to ARM | |
|
|
||||||
| | | mode | |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 11 | SVC | | system calls, kernel |
|
|
||||||
| | | | run-time exceptions, |
|
|
||||||
| | | | and IRQ offloading |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 12 | Debug | | system fatal error |
|
|
||||||
| | monitor | | |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 14 | PendSV | | context switch |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
| 15 | SYSTICK | | system clock |
|
|
||||||
+------+------------+----------------+--------------------------+
|
|
||||||
|
|
||||||
Pin Mapping
|
|
||||||
===========
|
|
||||||
|
|
||||||
The ARM V2M MPS2 Board has 4 GPIO controllers. These controllers are responsible
|
|
||||||
for pin muxing, input/output, pull-up, etc.
|
|
||||||
|
|
||||||
All GPIO controller pins are exposed via the following sequence of pin numbers:
|
|
||||||
|
|
||||||
- Pins 0 - 15 are for GPIO 0
|
|
||||||
- Pins 16 - 31 are for GPIO 1
|
|
||||||
- Pins 32 - 47 are for GPIO 2
|
|
||||||
- Pins 48 - 51 are for GPIO 3
|
|
||||||
|
|
||||||
Mapping from the ARM MPS2 Board pins to GPIO controllers:
|
|
||||||
|
|
||||||
.. rst-class:: rst-columns
|
|
||||||
|
|
||||||
- D0 : EXT_0
|
|
||||||
- D1 : EXT_4
|
|
||||||
- D2 : EXT_2
|
|
||||||
- D3 : EXT_3
|
|
||||||
- D4 : EXT_1
|
|
||||||
- D5 : EXT_6
|
|
||||||
- D6 : EXT_7
|
|
||||||
- D7 : EXT_8
|
|
||||||
- D8 : EXT_9
|
|
||||||
- D9 : EXT_10
|
|
||||||
- D10 : EXT_12
|
|
||||||
- D11 : EXT_13
|
|
||||||
- D12 : EXT_14
|
|
||||||
- D13 : EXT_11
|
|
||||||
- D14 : EXT_15
|
|
||||||
- D15 : EXT_5
|
|
||||||
- D16 : EXT_16
|
|
||||||
- D17 : EXT_17
|
|
||||||
- D18 : EXT_18
|
|
||||||
- D19 : EXT_19
|
|
||||||
- D20 : EXT_20
|
|
||||||
- D21 : EXT_21
|
|
||||||
- D22 : EXT_22
|
|
||||||
- D23 : EXT_23
|
|
||||||
- D24 : EXT_24
|
|
||||||
- D25 : EXT_25
|
|
||||||
- D26 : EXT_26
|
|
||||||
- D27 : EXT_30
|
|
||||||
- D28 : EXT_28
|
|
||||||
- D29 : EXT_29
|
|
||||||
- D30 : EXT_27
|
|
||||||
- D31 : EXT_32
|
|
||||||
- D32 : EXT_33
|
|
||||||
- D33 : EXT_34
|
|
||||||
- D34 : EXT_35
|
|
||||||
- D35 : EXT_36
|
|
||||||
- D36 : EXT_38
|
|
||||||
- D37 : EXT_39
|
|
||||||
- D38 : EXT_40
|
|
||||||
- D39 : EXT_44
|
|
||||||
- D40 : EXT_41
|
|
||||||
- D41 : EXT_31
|
|
||||||
- D42 : EXT_37
|
|
||||||
- D43 : EXT_42
|
|
||||||
- D44 : EXT_43
|
|
||||||
- D45 : EXT_45
|
|
||||||
- D46 : EXT_46
|
|
||||||
- D47 : EXT_47
|
|
||||||
- D48 : EXT_48
|
|
||||||
- D49 : EXT_49
|
|
||||||
- D50 : EXT_50
|
|
||||||
- D51 : EXT_51
|
|
||||||
|
|
||||||
Peripheral Mapping:
|
|
||||||
|
|
||||||
.. rst-class:: rst-columns
|
|
||||||
|
|
||||||
- UART_3_RX : D0
|
|
||||||
- UART_3_TX : D1
|
|
||||||
- SPI_3_CS : D10
|
|
||||||
- SPI_3_MOSI : D11
|
|
||||||
- SPI_3_MISO : D12
|
|
||||||
- SPI_3_SCLK : D13
|
|
||||||
- I2C_3_SDA : D14
|
|
||||||
- I2C_3_SCL : D15
|
|
||||||
- UART_4_RX : D26
|
|
||||||
- UART_4_TX : D30
|
|
||||||
- SPI_4_CS : D36
|
|
||||||
- SPI_4_MOSI : D37
|
|
||||||
- SPI_4_MISO : D38
|
|
||||||
- SPI_4_SCK : D39
|
|
||||||
- I2C_4_SDA : D40
|
|
||||||
- I2C_4_SCL : D41
|
|
||||||
|
|
||||||
For more details please refer to `MPS2 Technical Reference Manual (TRM)`_.
|
|
||||||
|
|
||||||
System Clock
|
|
||||||
============
|
|
||||||
|
|
||||||
The V2M MPS2 main clock is 24 MHz.
|
|
||||||
|
|
||||||
Serial Port
|
|
||||||
===========
|
|
||||||
|
|
||||||
The V2M MPS2 processor has five UARTs. Both the UARTs have only two wires for
|
|
||||||
RX/TX and no flow control (CTS/RTS) or FIFO. The Zephyr console output, by
|
|
||||||
default, is utilizing UART0.
|
|
||||||
|
|
||||||
Programming and Debugging
|
|
||||||
*************************
|
|
||||||
|
|
||||||
Flashing
|
|
||||||
========
|
|
||||||
|
|
||||||
V2M MPS2 provides:
|
|
||||||
|
|
||||||
- A USB connection to the host computer, which exposes a Mass Storage and an
|
|
||||||
USB Serial Port.
|
|
||||||
- A Serial Flash device, which implements the USB flash disk file storage.
|
|
||||||
- A physical UART connection which is relayed over interface USB Serial port.
|
|
||||||
|
|
||||||
Flashing an application to V2M MPS2
|
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
Here is an example for the :zephyr:code-sample:`hello_world` application.
|
|
||||||
|
|
||||||
.. zephyr-app-commands::
|
|
||||||
:zephyr-app: samples/hello_world
|
|
||||||
:board: mps2/an386
|
|
||||||
:goals: build
|
|
||||||
|
|
||||||
Connect the V2M MPS2 to your host computer using the USB port and you should
|
|
||||||
see a USB connection which exposes a Mass Storage and a USB Serial Port.
|
|
||||||
Copy the generated zephyr.bin in the exposed drive.
|
|
||||||
Reset the board and you should be able to see on the corresponding Serial Port
|
|
||||||
the following message:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
Hello World! arm
|
|
||||||
|
|
||||||
|
|
||||||
.. _V2M MPS2 Website:
|
|
||||||
https://developer.mbed.org/platforms/ARM-MPS2/
|
|
||||||
|
|
||||||
.. _MPS2 Technical Reference Manual (TRM):
|
|
||||||
http://infocenter.arm.com/help/topic/com.arm.doc.100112_0200_05_en/versatile_express_cortex_m_prototyping_systems_v2m_mps2_and_v2m_mps2plus_technical_reference_100112_0200_05_en.pdf
|
|
||||||
|
|
||||||
.. _Application Note an386:
|
|
||||||
https://documentation-service.arm.com/static/5ed1094dca06a95ce53f8a9f
|
|
||||||
|
|
||||||
.. _FVP:
|
|
||||||
https://developer.arm.com/downloads/view/FMFVP
|
|
|
@ -1,14 +1,13 @@
|
||||||
.. _mps2_an383_board:
|
.. _mps2_armv6m_board:
|
||||||
|
|
||||||
ARM V2M MPS2 AN383
|
ARM V2M MPS2 Armv6-m (AN383)
|
||||||
##################
|
############################
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
********
|
********
|
||||||
|
|
||||||
The ``mps2/an383`` board target is used by Zephyr applications that run on
|
Currently ``mps2/an383`` is the only mps2 Armv6-m based board target supported in Zephyr.
|
||||||
the V2M MPS2 board. It provides support for the ARM Cortex-M0+ (AN383) CPU and
|
It provides support for the ARM Cortex-M0+ (AN383) CPU and the following devices:
|
||||||
the following devices:
|
|
||||||
|
|
||||||
- Nested Vectored Interrupt Controller (NVIC)
|
- Nested Vectored Interrupt Controller (NVIC)
|
||||||
- System Tick System Clock (SYSTICK)
|
- System Tick System Clock (SYSTICK)
|
||||||
|
@ -240,7 +239,7 @@ V2M MPS2 provides:
|
||||||
Flashing an application to V2M MPS2
|
Flashing an application to V2M MPS2
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
Here is an example for the :ref:`hello_world` application.
|
Here is an example for the :zephyr:code-sample:`hello_world` application.
|
||||||
|
|
||||||
.. zephyr-app-commands::
|
.. zephyr-app-commands::
|
||||||
:zephyr-app: samples/hello_world
|
:zephyr-app: samples/hello_world
|
||||||
|
@ -257,12 +256,23 @@ the following message:
|
||||||
|
|
||||||
Hello World! arm
|
Hello World! arm
|
||||||
|
|
||||||
|
Running an applicatoin with FVP
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
Here is the same example for running with FVP.
|
||||||
|
Set the ``ARMFVP_BIN_PATH`` environemnt variable to the location of your FVP you have downloaded from `here <FVP_>`_
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
export ARMFVP_BIN_PATH=/home/../FVP_MPS2/
|
||||||
|
|
||||||
|
Then build with the same command you would use normally, and run with ``west build -t run_armfvp``.
|
||||||
|
|
||||||
.. _V2M MPS2 Website:
|
.. _V2M MPS2 Website:
|
||||||
https://developer.mbed.org/platforms/ARM-MPS2/
|
https://developer.mbed.org/platforms/ARM-MPS2/
|
||||||
|
|
||||||
.. _MPS2 Technical Reference Manual (TRM):
|
.. _MPS2 Technical Reference Manual (TRM):
|
||||||
http://infocenter.arm.com/help/topic/com.arm.doc.100112_0200_05_en/versatile_express_cortex_m_prototyping_systems_v2m_mps2_and_v2m_mps2plus_technical_reference_100112_0200_05_en.pdf
|
https://developer.arm.com/documentation/100112/0200/
|
||||||
|
|
||||||
.. _Application Note AN383:
|
.. _Application Note AN383:
|
||||||
https://documentation-service.arm.com/static/5ed1051dca06a95ce53f88a1
|
https://documentation-service.arm.com/static/5ed1051dca06a95ce53f88a1
|
|
@ -1,14 +1,15 @@
|
||||||
.. _mps2_an385_board:
|
.. _mps2_armv7m_board:
|
||||||
|
|
||||||
ARM V2M MPS2 AN385
|
ARM V2M MPS2 Armv7-m (AN385/AN386/AN500)
|
||||||
##################
|
########################################
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
********
|
********
|
||||||
|
|
||||||
The ``mps2/an385`` board target is used by Zephyr applications that run on
|
The ``mps2/an385``, ``mps2/an386``, and ``mps2/an500`` board targets are three of
|
||||||
the V2M MPS2 board. It provides support for the ARM Cortex-M3 (AN385) CPU and
|
the mps2 Armv7-m based board targets supported in Zephyr. This document
|
||||||
the following devices:
|
provides details about the support provided for these three Armv7-m mps2 board targets
|
||||||
|
(**AN385**, **AN386**, **AN500**) and the following devices:
|
||||||
|
|
||||||
- Nested Vectored Interrupt Controller (NVIC)
|
- Nested Vectored Interrupt Controller (NVIC)
|
||||||
- System Tick System Clock (SYSTICK)
|
- System Tick System Clock (SYSTICK)
|
||||||
|
@ -18,25 +19,30 @@ the following devices:
|
||||||
:align: center
|
:align: center
|
||||||
:alt: ARM V2M MPS2
|
:alt: ARM V2M MPS2
|
||||||
|
|
||||||
In addition to enabling actual hardware usage, this board target can
|
In addition to enabling actual hardware usage, these board targets can
|
||||||
also use QEMU and FVP to emulate the AN385 platform running on the MPS2+.
|
also use `FVP`_ to emulate the platforms running on the MPS2+.
|
||||||
|
|
||||||
More information about the board can be found at the `V2M MPS2 Website`_.
|
More information about the board can be found at the `V2M MPS2 Website`_.
|
||||||
|
|
||||||
The Application Note AN385 can be found at `Application Note AN385`_.
|
The application note for each of the board can be found as follows:
|
||||||
|
|
||||||
|
- AN385 can be found at `Application Note AN385`_
|
||||||
|
- AN386 can be found at `Application Note AN386`_
|
||||||
|
- AN500 can be found at `Application Note AN500`_
|
||||||
|
|
||||||
|
AN385 is also supported to run with QEMU, and is set to run with QEMU by default.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
This board target makes no claims about its suitability for use
|
These board targets makes no claims about its suitability for use
|
||||||
with actual MPS2 hardware systems using AN385, or any other hardware
|
with actual MPS2 hardware systems, or any other hardware
|
||||||
system. It has been tested on actual hardware, but its primary purpose is
|
system.
|
||||||
for use with QEMU and unit tests.
|
|
||||||
|
|
||||||
Hardware
|
Hardware
|
||||||
********
|
********
|
||||||
|
|
||||||
ARM V2M MPS2 provides the following hardware components:
|
ARM V2M MPS2 provides the following hardware components:
|
||||||
|
|
||||||
- ARM Cortex-M3 (AN385)
|
- ARM Cortex-M Chip
|
||||||
- ARM IoT Subsystem for Cortex-M
|
- ARM IoT Subsystem for Cortex-M
|
||||||
- Form factor: 140x120cm
|
- Form factor: 140x120cm
|
||||||
- ZBTSRAM: 8MB single cycle SRAM, 16MB PSRAM
|
- ZBTSRAM: 8MB single cycle SRAM, 16MB PSRAM
|
||||||
|
@ -62,7 +68,7 @@ ARM V2M MPS2 provides the following hardware components:
|
||||||
Supported Features
|
Supported Features
|
||||||
==================
|
==================
|
||||||
|
|
||||||
The ``mps2/an385`` board target supports the following hardware features:
|
The ``mps2/an385``, ``mps2/an386``, and ``mps2/an500`` board targets support the following hardware features:
|
||||||
|
|
||||||
+-----------+------------+-------------------------------------+
|
+-----------+------------+-------------------------------------+
|
||||||
| Interface | Controller | Driver/Component |
|
| Interface | Controller | Driver/Component |
|
||||||
|
@ -89,13 +95,14 @@ features.
|
||||||
|
|
||||||
The default configuration can be found in
|
The default configuration can be found in
|
||||||
:zephyr_file:`boards/arm/mps2/mps2_an385_defconfig`
|
:zephyr_file:`boards/arm/mps2/mps2_an385_defconfig`
|
||||||
|
or similarly in ``mps2_anxxx_defconfig`` for the other applicable boards.
|
||||||
|
|
||||||
Interrupt Controller
|
Interrupt Controller
|
||||||
====================
|
====================
|
||||||
|
|
||||||
MPS2 is a Cortex-M3 based SoC and has 15 fixed exceptions and 45 IRQs.
|
MPS2 is a Cortex-M based SoC and has 15 fixed exceptions and 45 IRQs.
|
||||||
|
|
||||||
A Cortex-M3/4-based board uses vectored exceptions. This means each exception
|
A Cortex-M3/4/7-based board uses vectored exceptions. This means each exception
|
||||||
calls a handler directly from the vector table.
|
calls a handler directly from the vector table.
|
||||||
|
|
||||||
Handlers are provided for exceptions 1-6, 11-12, and 14-15. The table here
|
Handlers are provided for exceptions 1-6, 11-12, and 14-15. The table here
|
||||||
|
@ -253,7 +260,7 @@ V2M MPS2 provides:
|
||||||
Flashing an application to V2M MPS2
|
Flashing an application to V2M MPS2
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
Here is an example for the :zephyr:code-sample:`hello_world` application.
|
Here is an example for the :zephyr:code-sample:`hello_world` application with AN385.
|
||||||
|
|
||||||
.. zephyr-app-commands::
|
.. zephyr-app-commands::
|
||||||
:zephyr-app: samples/hello_world
|
:zephyr-app: samples/hello_world
|
||||||
|
@ -270,15 +277,32 @@ the following message:
|
||||||
|
|
||||||
Hello World! arm
|
Hello World! arm
|
||||||
|
|
||||||
|
Running an applicatoin with FVP
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
Here is the same example for running with FVP.
|
||||||
|
Set the ``ARMFVP_BIN_PATH`` environemnt variable to the location of your FVP you have downloaded from `here <FVP_>`_
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
export ARMFVP_BIN_PATH=/home/../FVP_MPS2/
|
||||||
|
|
||||||
|
Then build with the same command you would use normally, and run with ``west build -t run_armfvp``.
|
||||||
|
|
||||||
.. _V2M MPS2 Website:
|
.. _V2M MPS2 Website:
|
||||||
https://developer.mbed.org/platforms/ARM-MPS2/
|
https://developer.mbed.org/platforms/ARM-MPS2/
|
||||||
|
|
||||||
.. _MPS2 Technical Reference Manual (TRM):
|
.. _MPS2 Technical Reference Manual (TRM):
|
||||||
http://infocenter.arm.com/help/topic/com.arm.doc.100112_0200_05_en/versatile_express_cortex_m_prototyping_systems_v2m_mps2_and_v2m_mps2plus_technical_reference_100112_0200_05_en.pdf
|
https://developer.arm.com/documentation/100112/0200/
|
||||||
|
|
||||||
.. _Application Note AN385:
|
.. _Application Note AN385:
|
||||||
http://infocenter.arm.com/help/topic/com.arm.doc.dai0385c/DAI0385C_cortex_m3_on_v2m_mps2.pdf
|
https://documentation-service.arm.com/static/5ed107a5ca06a95ce53f89e3
|
||||||
|
|
||||||
|
.. _Application Note AN386:
|
||||||
|
https://documentation-service.arm.com/static/5ed1094dca06a95ce53f8a9f
|
||||||
|
|
||||||
|
.. _Application Note AN500:
|
||||||
|
https://documentation-service.arm.com/static/5ed112fcca06a95ce53f8eb3
|
||||||
|
|
||||||
.. _FVP:
|
.. _FVP:
|
||||||
https://developer.arm.com/downloads/view/FMFVP
|
https://developer.arm.com/downloads/view/FMFVP
|
24
boards/arm/mps2/mps2_an500.dts
Normal file
24
boards/arm/mps2/mps2_an500.dts
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
/* SPDX-License-Identifier: Apache-2.0 */
|
||||||
|
/* Copyright 2024 Arm Limited and/or its affiliates <open-source-office@arm.com> */
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <arm/armv7-m.dtsi>
|
||||||
|
#include <zephyr/dt-bindings/i2c/i2c.h>
|
||||||
|
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||||
|
#include "mps2_base.dtsi"
|
||||||
|
|
||||||
|
/* FVP does not support uart3 and uart4 */
|
||||||
|
/* hence we delete them for AN500 in FVP */
|
||||||
|
/delete-node/ &uart3;
|
||||||
|
/delete-node/ &uart4;
|
||||||
|
/ {
|
||||||
|
cpus {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
cpu@0 {
|
||||||
|
compatible = "arm,cortex-m7";
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
20
boards/arm/mps2/mps2_an500.yaml
Normal file
20
boards/arm/mps2/mps2_an500.yaml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
identifier: mps2/an500
|
||||||
|
name: ARM V2M MPS2-an500
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
simulation:
|
||||||
|
- name: armfvp
|
||||||
|
exec: FVP_MPS2_Cortex-M7
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- counter
|
||||||
|
- gpio
|
||||||
|
- watchdog
|
||||||
|
testing:
|
||||||
|
default: true
|
||||||
|
ignore_tags:
|
||||||
|
- net
|
||||||
|
vendor: arm
|
15
boards/arm/mps2/mps2_an500_defconfig
Normal file
15
boards/arm/mps2/mps2_an500_defconfig
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#
|
||||||
|
# Copyright 2024 Arm Limited and/or its affiliates <open-source-office@arm.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
CONFIG_RUNTIME_NMI=y
|
||||||
|
|
||||||
|
# GPIOs
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# Serial
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
||||||
|
CONFIG_SERIAL=y
|
|
@ -15,6 +15,7 @@ tests:
|
||||||
- mps2/an521/cpu0
|
- mps2/an521/cpu0
|
||||||
- mps2/an383
|
- mps2/an383
|
||||||
- mps2/an386
|
- mps2/an386
|
||||||
|
- mps2/an500
|
||||||
- neorv32
|
- neorv32
|
||||||
drivers.gpio.1pin.aw9523b:
|
drivers.gpio.1pin.aw9523b:
|
||||||
tags:
|
tags:
|
||||||
|
|
|
@ -18,6 +18,7 @@ tests:
|
||||||
- s32z2xxdc2@D/s32z270/rtu1
|
- s32z2xxdc2@D/s32z270/rtu1
|
||||||
- mps2/an383
|
- mps2/an383
|
||||||
- mps2/an386
|
- mps2/an386
|
||||||
|
- mps2/an500
|
||||||
drivers.watchdog.stm32wwdg:
|
drivers.watchdog.stm32wwdg:
|
||||||
filter: dt_compat_enabled("st,stm32-window-watchdog") or dt_compat_enabled("st,stm32-watchdog")
|
filter: dt_compat_enabled("st,stm32-window-watchdog") or dt_compat_enabled("st,stm32-watchdog")
|
||||||
extra_args: DTC_OVERLAY_FILE="boards/stm32_wwdg.overlay"
|
extra_args: DTC_OVERLAY_FILE="boards/stm32_wwdg.overlay"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue