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_PATHbefore 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. 
 
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_PATHbefore 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-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/corstone320without the variant name is not a valid qualifier.
- mps4/corstone315/fvp/ns/- mps4/corstone320/fvp/nsvariant 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 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 | 
mps4/corstone320/fvp target
| 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