The latest development version of this page may be more current than this released 4.2.0 version.

MPS4

Overview

The MPS4 board configuration is used by Zephyr applications that run on the MPS4 board.

Corstone-315 FVP/Corstone-320 FVP are Arm reference subsystem for secure System on Chips containing an Armv8.1-M Cortex-M85 processor, LCM, KMU and SAM IPs. Corstone-320 FVP have Ethos-U85 while Corstone-315 FVP have a Ethos-U65 neural network processor. They are available free of charge for Linux and Windows systems. The FVPs have been selected for simulation since they provide access to the Ethos-U65/Ethos-U85 NPU, which is unavailable in QEMU or other simulation platforms.

Zephyr board options

The MPS4 FVP is an SoC with Cortex-M85 architecture. Zephyr provides support for building for both Secure and Non-Secure firmware.

The BOARD options are summarized below:

BOARD

Description

mps4/corstone315/fvp

For building Secure (or Secure-only) firmware

mps4/corstone315/fvp/ns

For building Non-Secure firmware

FPGA Usage:
  • N/A.

FVP Usage:
  • To run with the FVP, first set environment variable ARMFVP_BIN_PATH before using it. Then you can run it with west build -t run.

export ARMFVP_BIN_PATH=/path/to/fvp/directory
west build -b {BOARD qualifier from table above} samples/hello_world -t run

To run the Fixed Virtual Platform simulation tool you must download “FVP model for the Corstone-315 MPS4” from Arm and install it on your host PC.

QEMU Usage:
  • N/A.

Note

  • Board qualifier must include the variant name as mentioned above. mps4/corstone315/ mps4/corstone320 without the variant name is not a valid qualifier.

  • mps4/corstone315/fvp/ns/ mps4/corstone320/fvp/ns variant needs latest upstream TF-M release since Zephyr’s current TF-M doesn’t support Corstone-315 FVP yet.

Hardware

No H/W available yet, only ARMFVP simulated board variants are supported for now.

Supported Features

The mps4 board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

mps4/corstone315/fvp target

Type

Location

Description

Compatible

CPU

on-board

ARM Cortex-M85 CPU1

arm,cortex-m85

ARM architecture

on-board

The Arm Ethos-U is a micro NPU that enables neural networks to be hardware accelerated on embedded devices1

arm,ethos-u

Clock control

on-board

Generic fixed-rate clock provider1

fixed-clock

Ethernet

on-board

SMSC (now Microchip) LAN9220 Ethernet controller1

smsc,lan9220

GPIO & Headers

on-board

ARM CMSDK GPIO4

arm,cmsdk-gpio

on-board

ARM MMIO32 GPIO3

arm,mmio32-gpio

I2C

on-board

ARM SBCon two-wire serial bus interface5

arm,versatile-i2c

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv8.1-M NVIC (Nested Vectored Interrupt Controller)1

arm,v8.1m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MMU / MPU

on-board

ARMv8.1-M MPU (Memory Protection Unit)1

arm,armv8.1m-mpu

Pin control

on-board

The Arm Mps4 pin controller is a node responsible for controlling pin function selection and pin properties, such as routing a UART3 TX to pin 11

arm,mps4-pinctrl

Serial controller

on-board

ARM CMSDK UART5 1

arm,cmsdk-uart

SPI

on-board

ARM PL022 SPI3

arm,pl022

Timer

on-chip

ARMv8.1-M System Tick1

arm,armv8.1m-systick

mps4/corstone320/fvp target

Type

Location

Description

Compatible

CPU

on-board

ARM Cortex-M85 CPU1

arm,cortex-m85

ARM architecture

on-board

The Arm Ethos-U is a micro NPU that enables neural networks to be hardware accelerated on embedded devices1

arm,ethos-u

Clock control

on-board

Generic fixed-rate clock provider1

fixed-clock

Ethernet

on-board

SMSC (now Microchip) LAN9220 Ethernet controller1

smsc,lan9220

GPIO & Headers

on-board

ARM CMSDK GPIO4

arm,cmsdk-gpio

on-board

ARM MMIO32 GPIO3

arm,mmio32-gpio

I2C

on-board

ARM SBCon two-wire serial bus interface5

arm,versatile-i2c

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv8.1-M NVIC (Nested Vectored Interrupt Controller)1

arm,v8.1m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MMU / MPU

on-board

ARMv8.1-M MPU (Memory Protection Unit)1

arm,armv8.1m-mpu

Pin control

on-board

The Arm Mps4 pin controller is a node responsible for controlling pin function selection and pin properties, such as routing a UART3 TX to pin 11

arm,mps4-pinctrl

Serial controller

on-board

ARM CMSDK UART5 1

arm,cmsdk-uart

SPI

on-board

ARM PL022 SPI3

arm,pl022

Timer

on-chip

ARMv8.1-M System Tick1

arm,armv8.1m-systick

Serial Port

The MPS4 has six UARTs. The Zephyr console output by default, uses UART0.

Serial port 0 on the Debug USB interface is the MCC board control console.

Serial port 1 on the Debug USB interface is connected to UART 0.

Serial port 2 on the Debug USB interface is connected to UART 1.

Serial port 3 on the Debug USB interface is connected to UART 2.

Programming and Debugging

Flashing

  • N/A since the only support available is FVP.

Building an application with Corstone-315

You can build applications in the usual way. Here is an example for the Hello World application with Corstone-315.

# From the root of the zephyr repository
west build -b mps4/corstone315/fvp samples/hello_world
west build -t run

Run with FVP and you should see the following message:

Hello World! mps4

Building an application with Corstone-320

You can build applications in the usual way. Here is an example for the Hello World application with Corstone-320.

# From the root of the zephyr repository
west build -b mps4/corstone320/fvp samples/hello_world
west build -t run

Run with FVP and you should see the following message:

Hello World! mps4
For more details refer to: