STM32MP2

1. What is STM32MP25x in Simple Terms
The STM32MP25x is a multi-core 64-bit microprocessor designed for high-end industrial applications that demand AI, advanced graphics, multiple displays, and real-time control simultaneously .

Unlike the MP21x (entry-level) and MP23x (cost-optimized with AI), the MP25x is the full-featured powerhouse . It adds a GPU, video encoder/decoder, PCIe, USB 3.0, and more display interfaces.

Think of the MP2 family as a car lineup:

 
Model
Analogy
Best For
STM32MP21x
Economy car
Basic Linux tasks
STM32MP23x
Mid-range with AI
Cost-sensitive AI applications
STM32MP25x
Luxury SUV
High-performance AI + graphics + connectivity
2. The "Orchestra" — What Cores Does It Have?
The STM32MP25x has four processing units (yes, four!) working together :

 
"Musician"
Clock Speed
Role
Dual Cortex-A35
Up to 1.5 GHz each
Run Linux, handle networking, complex apps
Cortex-M33
Up to 400 MHz
Real-time control, safety tasks
Cortex-M0+
Up to 200 MHz
Ultra-low-power tasks (can run while others sleep)
NPU
1.35 TOPS
AI acceleration (object detection, voice recognition)
GPU (select models)
900 MHz
3D graphics, display rendering
Why so many cores? Each does what it does best:

The dual A35 cores provide raw compute power for Linux applications
The M33 handles critical real-time I/O with deterministic timing
The M0+ manages low-power sensors while the rest of the chip sleeps
The NPU accelerates AI models without loading the CPU
The GPU (3D, OpenGL ES 3.1) renders smooth graphics for HMI displays 
The total NPU performance is 1.35 TOPS (trillion operations per second) .

3. The Product Line — STM32MP251 / 253 / 255 / 257
The STM32MP25x family has four main variants. The number tells you what's included :

 
Part Number
A35 Cores
GPU
NPU
H.264 Enc/Dec
Ethernet Ports
STM32MP251
Single
No
No
No
2
STM32MP253
Dual
No
No
No
2
STM32MP255
Dual
Yes
Yes
Decode only
2
STM32MP257
Dual
Yes
Yes
Encode + Decode
3 (2+1 switch)
What this means for you:

MP251/253: For applications needing more CPU but not graphics/AI
MP255: Adds GPU and NPU for AI + display applications
MP257: The full package — can record videos (encode) and has an extra Ethernet switch port
Security Options (Letter Codes) 
 
Letter
Security Features
A35 Frequency
A/D
Basic
1.2 GHz / 1.5 GHz
C/F
Secure boot + Cryptography
1.2 GHz / 1.5 GHz
So STM32MP257F = fully loaded: dual A35 @ 1.5 GHz, GPU, NPU, H.264 encode/decode, and full security features .

4. Interfaces and Connectivity — What Can You Connect?
The MP25x has industrial-grade connectivity that sets it apart :

 
Interface
What It's For
3x Gigabit Ethernet (2+1 switch)
Industrial networking with TSN (time-sensitive networking)
3x CAN-FD
Real-time vehicle/factory communication
PCIe
High-speed peripherals (NVMe SSDs, GPUs, FPGAs)
USB 3.0
High-speed data transfer (5 Gbps)
LVDS / DSI / RGB
Display interfaces — support up to 1080p60
CSI / Parallel camera
Camera input with ISP (image signal processor)
H.264 encoder/decoder
Video recording and playback
TSN (Time-Sensitive Networking) is particularly important: it guarantees Ethernet packets arrive within a precise time window — critical for synchronized industrial robots .

5. The Boot Sequence (Power-On to Linux)
The boot process follows the standard Arm TrustZone architecture :

text
Step 1: Power ON


Step 2: ROM Code (in-chip, read-only memory)
├─ First code executed
├─ Minimal clock initialization
├─ Scans boot devices (eMMC, SD card, NAND, UART, USB)
├─ Loads FSBL (TF-A) from selected device
└─ Authenticates FSBL if secure boot enabled


Step 3: FSBL (First Stage Boot Loader = TF-A)
├─ Initializes DDR memory controller
├─ Configure complete clock tree
├─ Loads OP-TEE (Secure Monitor) - BL31
├─ Loads SSBL (U-Boot) - BL32
└─ Authenticates next stages (chain of trust)


Step 4: OP-TEE (Secure Monitor)
├─ Runs in secure world
├─ Manages cryptographic engines, secure storage
└─ Provides secure services to non-secure Linux


Step 5: U-Boot (SSBL - Second Stage Boot Loader)
├─ Complex peripherals (USB, Ethernet, network boot)
├─ Loads Linux kernel from storage or network
├─ Passes device tree to kernel
└─ Can load M33/M0+ firmware (via remoteproc)


Step 6: Linux Kernel
├─ Initializes all drivers
├─ Mounts root filesystem
├─ Starts /init process
└─ Manages M33/M0+ as remote processors


Step 7: Linux Userspace
└─ Your applications run here
Boot Device Options
The ROM code can boot from :

Flash memory boot: eMMC, SD card, NAND flash, NOR flash
Serial boot: UART (USART2, UART5, USART6, UART8, UART9) or USB
Engineering mode: For development and debugging
6. The Two Development Boards: EV1 vs DK
ST provides two main boards for the STM32MP257 :

 
Feature
STM32MP257F-EV1 (Evaluation Board)
STM32MP257F-DK (Discovery Kit)
Target User
Professional engineers, full evaluation
Beginners, hobbyists, prototyping
Size
Full-size board
Compact
Connectivity
All interfaces broken out
Essential interfaces
Display
Often included or high-end
Small touchscreen typically included
Expansion
Multiple expansion headers
Arduino-compatible headers
Price
High ($500+)
Affordable ($150-250)
Best For
Hardware validation, driver development
Learning, proof-of-concept
Which should you choose as a beginner?

Start with the DK (Discovery Kit) — it's more affordable and has everything you need to learn
Move to EV1 when you need to validate custom hardware designs or access all interfaces
7. Resource Isolation Framework (RIF) — A Key Security Feature
The MP25x introduces a Resource Isolation Framework (RIF) :

What it does: Lets you assign which core (A35 secure, A35 non-secure, M33 secure, M33 non-secure, or M0+) controls each peripheral.

Why it matters: Prevents Linux (running on A35 non-secure) from accidentally interfering with a critical safety peripheral managed by M33.

Visual example:

text
[Emergency Stop GPIO] ──→ Assigned to M33 Secure ONLY
[Motor Control PWM] ──→ Assigned to M33 Non-Secure
[Display Controller] ──→ Assigned to A35 Non-Secure
[Encryption Engine] ──→ Assigned to A35 Secure ONLY (OP-TEE)
The diagram shows the assignment possibilities — peripherals can be fixed, shared, or RIF-protected .

8. Power Management — The M0+ Advantage
The STM32MP25x includes a Cortex-M0+ in a separate power domain called the "smart run domain" :

What it can do:

Run at up to 200 MHz (or 16 MHz from backup regulator)
Stay active while the A35, M33, GPU, and NPU are powered off
Monitor sensors, I2C/SPI peripherals, and wake up the main system
Example use case: A battery-powered IoT device that:

Sleeps with only M0+ running (microamps of current)
M0+ wakes when a sensor threshold is crossed
M0+ powers up the A35 to process data and send to cloud
This is ultra-low-power operation not possible with most Linux MPUs.

9. Comparison: MP21x vs MP23x vs MP25x
 
Feature
MP21x
MP23x
MP25x
Cortex-A35 cores
1 @ 1.2 GHz
2 @ 1.5 GHz
2 @ 1.5 GHz
Cortex-M33 cores
1
1
1 @ 400 MHz (faster)
Cortex-M0+
No
No
Yes (200 MHz)
NPU
No
0.6 TOPS
1.35 TOPS
GPU
No
No
Yes (900 MHz, 3D)
H.264
No
Decode only
Encode + Decode
Ethernet
2 ports
2 ports
3 ports (with switch)
PCIe / USB3
No
No
Yes
Display interfaces
TFT only
TFT only
LVDS + DSI + RGB
Target
Entry Linux
Cost AI
High-end AI + Graphics
10. Typical Applications
The STM32MP25x is designed for demanding use cases :

 
Application
Why MP25x?
Industrial HMI with AI
GPU for smooth touchscreen + NPU for defect detection
Smart cameras (security)
H.264 encode to record + NPU to detect people
Medical devices
Low-power M0+ for continuous monitoring + A35 for display
EV charging stations
3x Ethernet + PCIe + CAN-FD for vehicle communication + screen
Factory automation PLC
TSN Ethernet for synchronized motion + M33 for safety loop
11. Practical Next Steps for a Beginner
To start your journey with STM32MP25x:

Buy the STM32MP257F-DK Discovery Kit (the affordable option)
Boot the preloaded Linux (connect HDMI, Ethernet, USB)
Run the AI demos — ST provides examples for the NPU
Test the GPU — run a 3D demo or video playback (H.264 decode)
Explore the M0+ low-power demo — see how to wake from deep sleep
Study the RIF configuration — understand how peripherals are assigned
Final Analogy
STM32MP25x is like a modern smartphone's processor (but for industrial use):

Two big cores (A35) = Handle the main operating system and apps
Small core (M33) = Manages real-time radio/sensor communication
Tiny core (M0+) = Stays awake for "always-on" voice detection
NPU = Accelerates camera face detection and scene recognition
GPU = Renders smooth animations and video playback
Just like your phone can record video, run apps, listen for "Hey Google", and stay cool, the MP25x can handle multiple tasks without compromising real-time response or power consumption.
If you want, I can explain the boot process in even more detail or provide a code example for running an AI model on the NPU.
 

Upcoming Course
Upcoming Course
Learn More
Instructor Tips
Instructor Tips
View Tips
Join Community
Join Community
Join Now