ARM MPS3

Overview

The mps3 board configuration is used by Zephyr applications that run on the MPS3 board. It provides support for the following devices:

  • Nested Vectored Interrupt Controller (NVIC)

  • System Tick System Clock (SYSTICK)

  • Cortex-M System Design Kit GPIO

  • Cortex-M System Design Kit UART

  • Ethos-U55 NPU

  • AN547 and AN552 support Arm Cortex-M55 CPU

  • AN555 support Arm Cortex-M85 CPU

ARM MPS3

Corstone-300 FVP/Corstone-310 FVP (Fixed Virtual Platforms) is a complete simulations of the Arm system, including processor, memory and peripherals. 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-U55 NPU, which is unavailable in QEMU or other simulation platforms.

Zephyr board options

The MPS3+ AN547 is an SoC with Cortex-M55 architecture. Zephyr provides support for building for both Secure and Non-Secure firmware.

The BOARD options are summarized below:

BOARD

Description

mps3/corstone300/an547

For building Secure (or Secure-only) firmware

mps3/corstone300/an547/ns

For building Non-Secure firmware

FPGA Usage:
FVP Usage:
  • FVP is not supported for this variant.

QEMU Usage:
  • To run with QEMU instead of the default FVP, override the emulator selection at build time via:

$ west build -b mps3_an547 samples/hello_world -DEMU_PLATFORM=qemu -t run

Note

Board qualifier must include the board name as mentioned above. mps3/corstone300 or mps3/corstone310 without the board name is not a valid qualifier.

Hardware

ARM MPS3 provides the following hardware components:

  • CPU

    • AN547 and AN552 support Arm Cortex-M55 CPU and Soft Macro Model (SMM) implementation of SSE-300 subsystem

    • AN555 support Arm Cortex-M85 CPU and Soft Macro Model (SMM) implementation of SSE-310 subsystem

  • Memory

    • 8MB BRAM

    • 4GB DDR4 SODIMM (by default, upgradeable to 8GB)

    • 16GB eMMC

    • 8MB QSPI Flash

  • Debug

    • P‐JTAG, F-JTAG, SWD, 4-bit trace, 16-bit trace

    • Four serial ports over USB

  • Interface

    • AHB GPIO

    • UART

    • SPI

    • I2C

    • I2S

    • Color LCD serial interface

    • Ethernet

    • VGA

  • On-board Peripherals

    • Color LCD

    • 10 LEDs

    • 8 Switches

    • 2 user push buttons

Supported Features

The MPS3 board configuration 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

Other hardware features are not currently supported by the port. See the MPS3 FPGA Website for a complete list of MPS3 AN547 board hardware features.

The default configuration can be found in

Serial Port

The MPS3 has six UARTs. The Zephyr console output by default, uses UART0, which is exposed over the Debug USB interface (J8).

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

MPS3 provides:

  • A USB connection to the host computer, which exposes Mass Storage and CMSIS-DAP, and serial ports.

Building an application with AN547

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

# From the root of the zephyr repository
west build -b mps3/corstone300/an547 samples/hello_world

Open a serial terminal (minicom, putty, etc.) with the following settings:

  • Speed: 115200

  • Data: 8 bits

  • Parity: None

  • Stop bits: 1

Reset the board, and you should see the following message on the corresponding serial port:

Hello World! mps3

Uploading an application to MPS3 AN547

Applications can be in elf, hex or bin format. The binaries are flashed when the board boots up, using files stored on the on-board Micro SD card. The Motherboard Configuration Controller (MCC) is responsible for loading the FPGA image and binaries.

Connect the MPS3 to your host computer using the USB port. You should see a USB connection exposing a Mass Storage (V2M-MPS3 by default).

The update requires 3 steps:

  1. Copy application files to <MPS3 device name>/SOFTWARE/.

  2. Open <MPS3 device name>/MB/HBI0309C/AN547/images.txt.

  3. Update the images.txt file as follows:

TITLE: Versatile Express Images Configuration File

[IMAGES]
TOTALIMAGES: 1 ;Number of Images (Max: 32)

IMAGE0ADDRESS: 0x01000000 ;Please select the required executable program

IMAGE0FILE: \SOFTWARE\zephyr.elf

Reset the board, and you should see the following message on the corresponding serial port:

Hello World! mps3
For more details refer to: