boards/st/stm32mp257f_ev1/doc/index.rst
.. zephyr:board:: stm32mp257f_ev1
Overview
The STM32MP257F-EV1 Evaluation board 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 STPMIC25APQR companion chip. Zephyr OS is ported to run on the Cortex®-M33 core, as a coprocessor of the Cortex®-A35 core.
STM32MP257FAI3 microprocessor featuring dual-core Arm® Cortex®-A35, a Cortex®-M33 and a Cortex®-M0+ in a TFBGA436 package
ST power management STPMIC25APQR
Two 16-Gbit DDR4 DRAMs
512-Mbit (64 Mbytes) S-NOR flash memory
32-Gbit (4 Gbytes) eMMC v5.0
Three 1-Gbit/s Ethernet (RGMII) with TSN switch compliant with IEEE-802.3ab
High-speed USB Host 2-port hub
High-speed USB Type-C® DRP
Four user LEDs
Two user, one tamper, and one reset push-buttons
One wake-up button
Four boot pin switches
Board connectors:
On-board STLINK-V3EC debugger/programmer with USB re-enumeration capability Two Virtual COM ports (VCPs), and debug ports (JTAG/SWD)
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-EV1 website_.
Hardware
More information about STM32MP257F can be found here:
STM32MP257F on www.st.com_.. zephyr:board-supported-hw::
STM32MP257F-EV1 Evaluation Board schematic is available here:
STM32MP257F-EV1 Evaluation board schematics_
Not yet supported in Zephyr.
The Cortex®-M33 Core is configured to run at a 400 MHz clock speed.
Programming and Debugging
.. zephyr:board-supported-runners::
Before you can run Zephyr on the STM32MP257F-EV1 Evaluation board, 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. (more information
about the procedure can be found in the STM32MPU Wiki)
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 :zephyr:code-sample:blinky as
an example.
.. zephyr-app-commands:: :zephyr-app: samples/basic/blinky :board: stm32mp257f_ev1/stm32mp257fxx/m33 :goals: build
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_)
Applications can be debugged using OpenOCD and GDB. The OpenOCD files can be
found at device-stm-openocd_.
The firmware must first be started by the Cortex®-A35. The debugger can
then be attached to the running Zephyr firmware using OpenOCD.
.. zephyr-app-commands:: :zephyr-app: samples/basic/blinky :board: stm32mp257f_ev1/stm32mp257fxx/m33 :goals: build
STM32MP257F boot Cortex-M33 firmware_). The orange LED should be blinking... code-block:: console
$ west attach
.. target-notes::
.. _STM32MP257F-EV1 website: https://www.st.com/en/evaluation-tools/stm32mp257f-ev1.html#overview
.. _STM32MP257F-EV1 Evaluation board User Manual: https://www.st.com/resource/en/user_manual/um3359-evaluation-board-with-stm32mp257f-mpu-stmicroelectronics.pdf
.. _STM32MP257F-EV1 Evaluation board schematics: https://www.st.com/resource/en/schematic_pack/mb1936-mp257f-x-d01-schematic.pdf
.. _STM32MP25xC/F Evaluation board datasheet: https://www.st.com/resource/en/datasheet/stm32mp257c.pdf
.. _STM32MP257F on www.st.com: https://www.st.com/en/microcontrollers-microprocessors/stm32mp257f.html
.. _STM32MP257F reference manual: https://www.st.com/resource/en/reference_manual/rm0457-stm32mp25xx-advanced-armbased-3264bit-mpus-stmicroelectronics.pdf
.. _STM32MP257F boot Cortex-M33 firmware: https://wiki.st.com/stm32mpu/wiki/Linux_remoteproc_framework_overview#Remote_processor_boot_through_sysfs
.. _Starter Package: https://wiki.st.com/stm32mpu/wiki/STM32MP25_Evaluation_boards_-_Starter_Package
.. _STM32MPU Wiki: https://wiki.st.com/stm32mpu/wiki/Main_Page
.. _device-stm-openocd: https://github.com/STMicroelectronics/device-stm-openocd/tree/main