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
/

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: