STM32MP257F-DK Discovery Kit
Overview
The STM32MP257F-DK Discovery kit is designed as a complete demonstration and development platform for the STMicroelectronics STM32MP257F microprocessor based on Arm® dual-core Cortex®-A35 (1.5 GHz) and Cortex®-M33 (400 MHz), and the STPMIC25 companion chip. Zephyr OS is ported to run on the Cortex®-M33 core, as a coprocessor of the Cortex®-A35 core.
Features:
STM32MP257FAI3 microprocessor featuring dual-core Arm® Cortex®-A35, a Cortex®-M33 in a VFBGA424 package
ST power management STPMIC25
32‑Gbit LPDDR4 DRAM
64-Gbit eMMC v5.1
1‑Gbit/s Ethernet (RGMII)
Two USB 2.0 high speed
USB 3.0 SuperSpeed PD (DRP/DRD)
Wi‑Fi® 802.11b/g/n
Bluetooth® LE
Four user LEDs
Two user, one tamper, and one reset push-buttons
Wake-up button
Four boot pin switches
Board connectors:
Ethernet RJ45
Two stacked USB 2.0 HS Type-A
USB 3.0 USB Type-C® PD
microSD™ card holder
Dual-lane MIPI CSI-2® camera module expansion connector
HDMI®
LVDS
GPIO expansion connector
VBAT for power backup
On-board STLINK-V3EC:
Debugger with USB re-enumeration capability: Virtual COM port and debug port
Board power source through USB Type-C®
Mainlined open-source Linux® STM32 MPU OpenSTLinux Distribution and STM32CubeMP2 software with examples
Linux® Yocto project®, Buildroot, and STM32CubeIDE as development environments
More information about the board can be found at the STM32MP257F-DK website [1].
Hardware
Cores
64-bit dual-core Arm® Cortex®-A35 with 1.5 GHz max frequency
32-bit Arm® Cortex®-M33 with FPU/MPU, Arm® TrustZone®, and 400 MHz max frequency
Memories
External DDR memory up to 4 Gbytes
808-Kbyte internal SRAM
Two octo-spi memory interfaces
Flexible external memory controller with up to 16-bit data bus
Power
STPMIC25 for voltage regulation (multiple buck/LDO regulators)
USB-C power input
Clock management
32.768 kHz LSE crystal
40 MHz HSE crystal
Internal 64 MHz HSI oscillator
Internal 4 MHz CSI oscillator
Internal 32 kHz LSI oscillator
Five separate PLLs with integer and fractional mode
Security/Safety
Secure boot, TrustZone® peripherals, active tamper, environmental monitors, display secure layers, hardware accelerators
Complete resource isolation framework
Connectivity
1x Gigabit Ethernet (RGMII)
USB 2.0 High-Speed Host (dual-port)
USB Type-C® DRP
GPIO expansion connector
Display & Camera
LVDS interface (4-lane)
Camera CSI-2 interface (2-lane)
Debug
STLINK-V3EC (onboard debugger with VCP, JTAG and SWD)
More information about STM32MP257F can be found here:
Supported Features
The stm32mp257f_dk
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.
stm32mp257f_dk/stm32mp257fxx/m33
target
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-chip |
ARM Cortex-M33 CPU1 |
|
Clock control |
on-chip |
STM32MP2 RCC (Reset and Clock controller)1 |
|
on-chip |
Generic fixed-rate clock provider2 |
||
GPIO & Headers |
on-chip |
||
I2C |
on-chip |
STM32 I2C V2 controller8 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv8-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
STM32 External Interrupt Controller1 |
||
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Pin control |
on-chip |
STM32 Pin controller1 |
|
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
Serial controller |
on-chip |
||
on-chip |
|||
SPI |
on-chip |
STM32H7 SPI controller7 |
|
SRAM |
on-chip |
Generic on-chip SRAM2 |
|
Timer |
on-chip |
ARMv8-M System Tick1 |
Connections and IOs
STM32MP257F-DK Discovery kit schematic is available here: STM32MP257F-DK Discovery kit schematics [2]
System Clock
Cortex®-A35
Not yet supported in Zephyr.
Cortex®-M33
The Cortex®-M33 Core is configured to run at a 400 MHz clock speed.
Programming and Debugging
The stm32mp257f_dk
board supports the runners and associated west commands listed below.
flash | debug | debugserver | rtt | attach | |
---|---|---|---|---|---|
openocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ |
Prerequisite
Before you can run Zephyr on the STM32MP257F-DK Discovery kit, you need to set up the Cortex®-A35 core with a Linux® environment. The Cortex®-M33 core runs Zephyr as a coprocessor, and it requires the Cortex®-A35 to load and start the firmware using remoteproc.
One way to set up the Linux environment is to use the official ST OpenSTLinux distribution, following the Starter Package [5]. (more information about the procedure can be found in the STM32MPU Wiki [6])
Loading the firmware
Once the OpenSTLinux distribution is installed on the board, the Cortex® -A35 is responsible (in the current distribution) for loading the Zephyr firmware image in DDR and/or SRAM and starting the Cortex® -M33 core. The application can be built using west, taking the Blinky as an example.
# From the root of the zephyr repository
west build -b stm32mp257f_dk/stm32mp257fxx/m33 samples/basic/blinky
The firmware can be copied to the board file system and started with the Linux remoteproc framework. (more information about the procedure can be found in the STM32MP257F boot Cortex-M33 firmware [4])
Debugging
Applications can be debugged using OpenOCD and GDB. The OpenOCD files can be found at device-stm-openocd [7]. The firmware must first be started by the Cortex®-A35. The debugger can then be attached to the running Zephyr firmware using OpenOCD.
Build the sample:
# From the root of the zephyr repository
west build -b stm32mp257f_dk/stm32mp257fxx/m33 samples/basic/blinky
Copy the firmware to the board, load it and start it with remoteproc (STM32MP257F boot Cortex-M33 firmware [4]). The orange LED should be blinking.
Attach to the target:
$ west attach