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 |
---|---|
|
For building Secure (or Secure-only) firmware |
|
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 withwest 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.
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 |
---|---|
|
For building Secure (or Secure-only) firmware |
|
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 withwest 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-320 MPS4” from Arm and install it on your host PC. This board has been tested with version 11.27.25 (Sep 24 2024).
- 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.
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-board |
ARM Cortex-M85 CPU1 |
|
ARM architecture |
on-board |
The Arm Ethos-U is a micro NPU that enables neural networks to be hardware accelerated on embedded devices1 |
|
Clock control |
on-board |
Generic fixed-rate clock provider1 |
|
Ethernet |
on-board |
SMSC (now Microchip) LAN9220 Ethernet controller1 |
|
GPIO & Headers |
on-board |
ARM CMSDK GPIO4 |
|
on-board |
ARM MMIO32 GPIO3 |
||
I2C |
on-board |
ARM SBCon two-wire serial bus interface5 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv8.1-M NVIC (Nested Vectored Interrupt Controller)1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
MMU / MPU |
on-board |
ARMv8.1-M MPU (Memory Protection Unit)1 |
|
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 |
|
Serial controller |
on-board |
||
SPI |
on-board |
ARM PL022 SPI3 |
|
Timer |
on-chip |
ARMv8.1-M System Tick1 |
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