Who is this for?

This is an introductory topic for embedded developers who want to port Zephyr RTOS to the Arm Corstone-320 MPS4 FPGA platform.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Set up the Zephyr build environment and Arm GNU Toolchain for Corstone-320 MPS4 development
  • Create board support files, including device tree, Kconfig, and board metadata, to port Zephyr to the Corstone-320 MPS4 FPGA platform
  • Build and run the hello_world sample on the Corstone-320 MPS4 board to validate the port

Prerequisites

Before starting, you will need the following:

  • Basic familiarity with embedded C programming
  • Basic knowledge of Zephyr RTOS
  • A Corstone-320 MPS4 FPGA development board
  • A Linux development environment, for example Ubuntu 22.04 or later
  • Git and Python

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll add Zephyr board support for the Arm Corstone-320 MPS4 FPGA platform on Linux. First, you’ll prepare a Zephyr workspace, configure the Arm GNU Toolchain, and review the FPGA image documentation. Then, you’ll create the device tree, Kconfig, and board metadata, build hello_world, and confirm its console output on the MPS4 board.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
Which Corstone-320 FPGA image should I use with the MPS4 board?
Use the Arm Corstone SSE-320 FPGA Image for MPS4 (FI101). Follow the platform documentation to obtain and prepare the image.
Where can I find the output image after I build `hello_world`?
You’ll find the ELF image at build/zephyr/zephyr.elf. Use this file to create the images that you load onto the MPS4 board.
Which option enables ROM-start relocation for the MPS4 FPGA build?
Add -- -DCONFIG_ROMSTART_RELOCATION_ROM=y to the west build command. This enables the ROM-start relocation configuration used for the Corstone-320 FPGA variant.
What output should I expect when the hello_world sample runs correctly?
The program prints Hello World to the console on the Arm Corstone-320 MPS4 board.
Which files do I copy to the MPS4 SD card?
Copy vector.bin and app.bin to the \SOFTWARE\ folder. You’ll create both files from build/zephyr/zephyr.elf with arm-none-eabi-objcopy.
Next