Get ready for the STM32 Summit 2026 | Online, November 3
Join conversations with your peers and ST experts. Explore the full potential of STM32 microprocessors for your embedded design.
Most recent activity
We are working on a custom board based on STM32MP257F-AI3. We flashed an X-Linux RT patched image via SD card in boot mode 0001(A35-Master), and in the ST Cube Programmer flashing completed successfully with a "download successful" pop-up in when boot mode USB/UART switches configuration is 0000.After powering off, we set the boot switches to 0010 (eMMC boot, A35 master), but the board fails to boot properly from eMMC.Could you please help us identify:Whether the image correctly written to the eMMC boot partitions (FSBL, SSBL, U-Boot, etc.)?Any mandatory post-flash steps required for enabling eMMC boot on STM32MP257?The correct boot configuration (TF-A, OP-TEE, U-Boot, extlinux or boot partition flags)Any guidance on debugging or verifying the eMMC boot flow would be helpful.
Using CubeMX v6.15 on Windows 11I tried generating a project for MP257-EV1 selecting the M33-Master option"Initialize all peripherals with their default Mode = YES"Without making any changes, the Pinout tool shows an error (red encircled X) for TAMP and warnings for RCC and when trying to generate code, it issues this WARNING:- Main Config: These peripherals still have some not configured or wrong parameter values: [RCC, TAMP]How does one go about fixing these issues?
Hello,I am working on STM32MP2 using the OpenSTLinux Weston distro and I am modifying the OP-TEE/device-tree files under the external-dt workspace using devtool.I need to remove a pin definition from the CA35 OP-TEE DTS files, but even after rebuilding the image, the pin still appears in the running system: line 8: "PI8" input consumer="kernel" This means my change was not applied.Steps I followed1. Environment setup DISTRO=openstlinux-weston MACHINE=stm32mp2-rt source layers/meta-st/scripts/envsetup.sh 2. Opened the external-dt workspace cd build-openstlinuxweston-stm32mp2-rt/workspace/sources/external-dt/devtool build external-dt 3. Edited the following DTS files to remove a tamper-related pinFiles I modified and added to git:stm32mp2/a35-td/optee/stm32mp257f-ev1-ca35tdcid-ostl-m33-examples.dtsstm32mp2/a35-td/optee/stm32mp257f-dk-ca35tdcid-ostl-m33-examples.dtsstm32mp2/a35-td/optee/stm32mp257f-ev1-ca35tdcid-ostl.dtsstm32mp2/a35
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code. Hello, I am trying to set few pins as input states by default right after boot and power on state so I have written 2 nodes:- turn_latch_if { compatible = "gpio"; status = "okay"; turn_dc_dc_conv_off { label = "TURN_DC_DC_CONV_OFF"; gpios = <&gpiog 4 GPIO_ACTIVE_LOW>; /* PG4 */ status = "okay"; }; turn_bat_charge_off { label = "TURN_BAT_CHARGE_OFF"; gpios = <&gpiog 6 GPIO_ACTIVE_LOW>; /* PG6 */ status = "okay"; }; bat_charge_status { label = "BAT_CHARGE_STATUS"; gpios = <&gpiog 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PG7 */ status = "okay"; }; lrelay_status { label = "LRELAY_STATUS"; gpios = <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PA9 */ status = "okay"; }; latching_relay { label = "LATCHING_RELAY"; gpios = <&a
hello ST: I used the stm32mp257 platform for KGDB debugging and found that it always resets the watchdog. I tried to disalbe the relevant nodes in the device tree of the kernel and optee: ///kernel: &arm_wdt { /*timeout-sec = <32>; status = "okay";*/ status = "disabled"; }; //Optee: &iwdg1 { /*timeout-sec = <32>; status = "okay";*/ status = "disabled"; };Will it still cause the system to restart after a period of time? How should this be handled?and this html Open fail~
Hello ,I have developed a custom board using the STM32MP157DAA1. Its design is very similar to the STM32MP157-DK2.I am trying to build and boot TF-A and OPTEE. However, I am encountering an "I/TC: Forced system reset PSCI" error, which causes the system to enter a programming loop.Below is the CubeProgrammer log during this loop state:16:33:55 : USB speed : High Speed (480MBit/s) 16:33:55 : Manuf. ID : STMicroelectronics 16:33:55 : Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 16:33:55 : SN : 002700303532510837363531 16:33:55 : DFU protocol: 1.1 16:33:55 : Board : -- 16:33:55 : Device ID : 0x0500 16:33:56 : Start Embedded Flashing service 16:33:56 : Opening and parsing file: tf-a-stm32mp157d-a_cv2-mx-optee-programmer-usb.stm32 16:33:56 : Memory Programming ... 16:33:56 : File : tf-a-stm32mp157d-a_cv2-mx-optee-programme
Hi, I’m working on a custom board based on the STM32MP157DAC. U-Boot splash is enabled, psplash is enabled in the kernel, and we have custom display drivers in both U-Boot and Linux. The display initializes in U-Boot and shows the splash, but ~4–5 seconds after the kernel starts the screen goes blank. About 10 seconds later, when the kernel’s display driver probes and re-initializes the panel, psplash appears. We want to eliminate that blank interval—i.e., keep the U-Boot splash visible until the kernel takes over and psplash is shown. Why is this happening, and what can we do to maintain continuous display across the handoff?Note:- In discovery kit we dont see any blank screen with default image.Regards,Adnan
I want to support a couple of display panels/LCDs so I tried modifying the uboot so it loads the desired device tree overlay according to the state of the input pins (digital). However, when I'm testing it, it does not get applied.I already spent a couple of days trying to figure this one out but I did not get any luck so I tried testing this concept with RaspberryPi and it works.Do I just need to set CONFIG_OF_LIBFDT_OVERLAY to the defconfig make this one work?
Hello,I am integrating an STPMIC1x component to power my STM32MP153C-based system. This design is closely following the STM32MP157F-DK2 schematic found here. The issue comes from the fact that some of the default output voltages for STPMIC1APQR used in the design do not align with the necessary power inputs for some of the peripherals, namely the DDR3L chip. For example (in the EVK schematic), VDD_DDR on BUCK2 is by default Rank0 and set to 1.1V, which does not meet the DDR3L specification of 1.35V.The STPMIC1x datasheet implies that the A/B/D/E part numbers can provide the correct voltages for VDD and VDD_CORE by default (through Rank1, Rank2, or Rank3 outputs), and then the STPMIC1A/B/D/E can be (re)programmed by the MPU to provide the correct voltages on its other outputs such as its DDR3L peripheral. Q: Is this (re)programming of the STPMIC1x chips handled early in the boot process through OpenSTLinux and carried out on I2C4 from the MPU? If so, where does this occur
Dear Team,We are currently working with the STM32MP257F-DK board and would like to confirm whether the LPDDR4(MT53E1G32D1FW) memory mounted on this board supports inline ECC (Error Correction Code).Could you please provide details on the ECC capability and any relevant documentation regarding its configuration or usage? Thanks & Regards Akshitha Pattem
We are using a custom board with STM32MP257F using M33TD flavour, booting from QSPI SNOR. My understanding is that when reset is released, the processor runs some on-chip ROM code, which copies the FSBL from external NV storage into some on-chip RAM and then executes it in RAM. My questions are What is the default offset in the external device that the BOOT ROM code looks for the FSBL (I assume 0x00000000) Is it possible to override this by some mechanism to use another address higher in memory?
Hi, i created a basic m33 app via the default stm32mp257f-dk board project. When tring to boot the m33 app from the RFS, th m33 powers up and boot starts, however the kernal crashes with the below error. Any help understanding the nature/fix for the crash would be helpfull. Thx..root@stm32mp2unknownunknown:/lib/firmware# echo start > /sys/class/remoteproc/remoteproc0/state[ 53.569732] remoteproc remoteproc0: powering up m33[ 53.578881] remoteproc remoteproc0: Booting fw image M33_HelloNS_CM33_sign.bin, size 15796[ 53E/TC:0 stm32_iac_itr:192 IAC exceptions [159:128]: 0x10000000E/TC:0 stm32_iac_itr:197 IAC exception ID: 156E/TC:0 Panic at /usr/src/debug/optee-os-stm32mp/4.0.0-stm32mp-r2/core/drivers/firewall/stm32_iac.c:212 <stm32_iac_itr>E/TC:0 TEE load address @ 0x82000000E/TC:0 Call stack:E/TC:0 0x82007ef0E/TC:0 0x82043428E/TC:0 0x8202d54cE/TC:0 0x82040f5cE/TC:0 0x820141d0I/TC: Halting CPU 1
I’m working on a custom STM32MP257DAK3 board.In STM32CubeMX, I need both SDMMC1 (SD card) and SDMMC2 (eMMC) to be supported as possible boot devices.When I check both:SDMMC1 → Memory Boot DeviceSDMMC2 → Memory Boot DeviceThe following error appears in IPs assignment rules: Faulty state detected for SDMMC1, SDMMC2 : Only one Memory Boot Device can be assigned to TF-A simultaneously. I understand that TF-A allows only one memory boot device at a time.However, our hardware design supports dual boot options (either from eMMC or SD card). How can I fix this error?
Description of the IssueI am experiencing a configuration validation warning related to RCC when generating code in STM32CubeMX version 6.15.0 for the STM32MP257DAK3 MPU. Although the code can be generated, CubeMX reports the following RCC warning during validation: Main Config: These peripherals still have some not configured or wrong parameter values: [RCC]This warning appears even when the RCC configuration seems complete and valid.Steps to ReproduceOpen STM32CubeMX v6.15.0Create a new project for STM32MP257DAK3Navigate to System Core → RCCSet HSE to Crystal/Ceramic ResonatorClick GENERATE CODECubeMX displays the above warning during pre-generation configuration checkI've selected Pin Context Assignment from the dropdown menu, but it's empty.
I am creating a custom yocto image on a STM32MP157F-DK2. I am using the meta-stm32mp layer as apart of the bitbake build. Yocto version : Scarthgap When I run bitbake I get this failure ERROR: hydra-image-1.0-r0 do_rootfs: Postinstall scriptlets of ['busybox'] have failed. If the intention is to defer them to first boot, then please place them into pkg_postinst_ontarget:${PN} (). Deferring to first boot via 'exit 1' is no longer supported. Details of the failure are in /home/hydra/yocto/build/tmp/work/stm32mp1_brady-hydra-linux-gnueabi/hydra-image/1.0/temp/log.do_rootfs. ERROR: Logfile of failure stored in: /home/hydra/yocto/build/tmp/work/stm32mp1_brady-hydra-linux-gnueabi/hydra-image/1.0/temp/log.do_rootfs.661419 ERROR: Task (/home/hydra/yocto/layers/poky/../meta-brady/recipes-core/images/hydra-image.bb:do_rootfs) failed with exit code '1' Log file update-alternatives: Linking /home/hydra/yocto/build/tmp/work/stm32mp1_brady-hydra-linux-gnuea
I am following the "getting started" guide https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Modify,_rebuild_and_reload_the_Linux%C2%AE_kernel I am successfully able to compile and transfer the kernel on board but after giving reset command in step 5, board is constantly resetting. 5.3. Reboot the board Starting kernel ...I/TC: Secondary CI/TC: Secondary CPU 1 switching to normal world bootI/TC: Reserved shared memory is disabledI/TC: Dynamic shared memory is enabledI/TC: Normal World virtualization support is disabledI/TC: Asynchronous notifications are disabledNOTICE: CPU: STM32MP157FAC Rev.ZNOTICE: Model: STMicroelectronics STM32MP157F-DK2 Discovery BoardNOTICE: Board: MB1272 Var4.0 Rev.C-03INFO: PMIC version = 0x21NOTICE: Reset reason (0x114):INFO: IWDG1 Reset (rst_iwdg1)INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000INFO: FCONF: Reading firmware configuration informatio
Hello ST team,I’m working on a custom board based on STM32MP135F SoC, with GigaDevice GD5F4GM8UExxG (512 MiB SPI-NAND) connected on SPI1 interface.I’ve successfully integrated this NAND flash in U-Boot and Linux (Yocto build), but the board fails to boot directly from SPI-NAND. Please find the attached text file which is having the all changes.When booting from SD card, I can probe, erase, and write to the SPI-NAND successfully — data can be read back and verified. please check below logs:stm32mp13x:~# dmesg | grep spi[ 0.708654] spi-nand spi0.0: GigaDevice SPI NAND was found.[ 0.708678] spi-nand spi0.0: 512 MiB, block size: 128 KiB, page size: 2048, OOB size: 128[ 0.708944] 9 fixed-partitions partitions found on MTD device spi-nand0[ 0.708962] Creating 9 MTD partitions on "spi-nand0":I can able to flash the image to spi-nand flash successfully after configuring in the uboot and tfa.However, when I configure boot from QSPI-NAND, the boot ROM and TF-A logs indicate all blocks are bad. b
Hi everyone,I would like to ask a question regarding the LTDC rotation.In the Device Tree, I set rotation = <90>;Under the st-image-weston environment, the display rotates correctly.However, under the st-image-core environment, the rotation does not work, and the display appears abnormal.Reference article:https://wiki.st.com/stm32mpu/wiki/LTDC_device_tree_configuration
We are pleased to announce that the version 6.15.0 of STM32CubeMX is available. What is new in 6.15.0: Enhanced microprocessor support: Added the STM32MP21-A35-TD, STM32MP21-M33-TD, STM32MP25-M33-TD, and STM32MP23-M33-TD trusted domains for the STM32MP2 MPUs and their Arm® Cortex®-A35 and Cortex®-M33 processors. Integrated the STARM-Clang toolchain: The STMicroelectronics LLVM-based toolchain for Arm®, STARM-Clang, leverages Clang's modular architecture for faster compilation and enhanced support for modern language standards, expanding the build capabilities. Build process enhancements: Use of CMake for more efficient project compilation. Removal of the -Wpedantic and -Wextra options from CMake GCC toolchain template to match the build results produced by STM32CubeIDE. Updated the RIF feature implementation: Integrated the RIF feature for STM32MP2 microprocessors with the STM32MP21-A35-TD, STM32MP21-M33-TD, STM32MP25-M33-TD, and STM32MP23-M33-TD trusted domains. Updated soft
I am following getting started guide of this board STM32MP157x-DK2 https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Create_a_simple_hello-world_application When I am connecting an ethernet cable, after a while, this error message pops again and again.. "Activation of network connection failed" on Ubuntu machine. I can't see the IP address so I am stuck at this step. 4. Deploy and executescp gtk_hello_world root@<board ip address>:/usr/local
https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Create_a_simple_hello-world_application#Deploy_and_execute I am at the last step.Application is building without error and I am successfully able to send it to the board. But when I am executing it on the board, it is giving me below error. root@stm32mp1-e1-a2-8b:/usr/local# su -l weston -c "/usr/local/gtk_hello_world"/usr/local/gtk_hello_world: line 1: ELF: not found/usr/local/gtk_hello_world: line 2: �: not found/usr/local/gtk_hello_world: line 5: syntax error: unterminated quoted string Here is my make output:arm-ostl-linux-gnueabi-gcc -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 --sysroot=/home/STM32MPU_workspace/STM32MPU-Ecosystem-v6.1.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi -o gtk_hello_world gtk_hello_world.c -O2 -pipe -g -feliminate-unused-debug-typ
I'm new to STM family, we are bought STM32MP157F-DK2 Discovery kits.We need OpenSTLinux image file where we can get
Hi team, I am able to successfully use pre-build binary from this https://github.com/STMicroelectronics/STM32DDRFW-UTIL.git repo for DDR4 with stm32mp257f-evk . but the generated artifacts with stm32 header by manually compiling in stm32cubeide I am facing the issue, After flashing I am not able to enter any command in the serial monitor window. I followed the build procedure explained in the repo's README.mdAs you can see in attached image only this DDR> prompt line is printed in serial port but not accepting any input from user , when I try to enter some command it reinitialized stdin to the same DDR> prompt line.Thank you in advance...!!hoping for a quick reply.
I am trying to drive a 5 inch 800x480 touch display from waveshare using my STM32MP257F-DK development board. My Linux distro is a custom one built using Buildroot via bootlin support.When running `modetest -M stm -c`, I don't get any resolutions printed. Here's what I get:# modetest -M stm -c opened device `STMicroelectronics SoC DRM` on driver `stm` (version 1.0.0 at 20170330) [ 244.014209] EDID block 0 is all zeroes Connectors: id encoder status name size (mm) modes encoders 32 0 connected HDMI-A-1 0x0 0 31 props: 1 EDID: flags: immutable blob blobs: value: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0 5 link-status: flags: enum enums: Good=0 Bad=1 value: 0 6 non-desktop: flags: immutable range values: 0 1 value: 0 4 TILE: flags: immutable blob blobs: value: 33 dithering: flags: enum enums: Off=0 On=1 value: 0Here's what dmesg logs (Increased logging level using: `echo 4 > /sys/module/drm/parameters/debug`):[ 2
使用千问大模型询问STM32MP157使用docket +vscode开发调试方式,它说VSCODE目前(大模型只能判断到2024初的信息)只支持A7用gdb调试,而M4只能用stlink+离线版的stm32cubide,2025.10发布的这新版能支持stm32mp157(特别是M4核的)开发吗?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.