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
I'm trying to get a Raspberry Pi DSI display working with a custom board using a STM32MP157F. From the wiki I have the following. &dsi { status = "okay"; ports { port@0 { reg = <0>; dsi_in: endpoint { remote-endpoint = <&ltdc_ep0_out>; }; }; port@1 { reg = <1>; dsi_out: endpoint { remote-endpoint = <&bridge_in>; }; }; }; bridge@0 { compatible = "toshiba,tc358762"; reg = <0>; vddc-supply = <&reg_rpi>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; bridge_in: endpoint { remote-endpoint = <&dsi_out>; }; }; port@1 { reg = <1>; bridge_out: endpoint { remote-endpoint = <&panel_in>; }; }; }; }; }; / { panel-rgb { /* Unknown; use a reasonably similar one */ compatible = "powertip,ph800480t013-idf02"; power-supply = <&reg_rpi>; status =
I want to connect my STM32MP257 eval board to the M.2 (WiFi) slot of a mini computer. I'm having a hard time finding the correct adapter and cable setup. Any help greatly appreciated.
Hello,Thee kernel compilation fails with the yocto (mickeldore) due to patch "0001-v6.1-stm32mp-r2.patch". The issue is with this snippet of the patch:@@ -3716,6 +3718,7 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq, hprt0 &= ~HPRT0_TSTCTL_MASK; hprt0 |= (windex >> 8) << HPRT0_TSTCTL_SHIFT; dwc2_writel(hsotg, hprt0, HPRT0); + hsotg->test_mode = windex >> 8; break;Since "test_mode" is only available when CONFIG_USB_DWC2_PERIPHERAL and/or CONFIG_USB_DWC2_DUAL_ROLE are set, the build fails with the following configuration:CONFIG_USB_DWC2_HOST=yCONFIG_USB_DWC2_PERIPHERAL=nCONFIG_USB_DWC2_DUAL_ROLE=nThis is a valid configuration. The patch should be amended as follows:@@ -3715,7 +3717,14 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq, "SetPortFeature - USB_PORT_FEAT_TEST\n"); hprt0 &= ~HPRT0_TSTCTL_MASK; hprt0 |= (windex >> 8) << HPRT0_TSTCTL_SHIFT; - dwc2_writel(hsotg, hprt0, HPRT0); +
Hi all, I’m working with the STM32MP135DF board and trying to use a fully custom stack including Machine/Device Tree, Kernel, U-Boot, TF-A, and OP-TEE. Here’s my setup: Poky / Yocto version: kirkstone-4.0.27 CubeMX version: openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11 Added CubeMX generated files under: meta-st/meta-st-stm32-Addons/mx/ └── stm32mp135df-comtrol ├── kernel │ ├── Makefile │ └── stm32mp135f-stm32mp135df-comtrol-mx.dts ├── optee-os │ ├── conf.mk │ └── stm32mp135f-stm32mp135df-comtrol-mx.dts ├── tf-a │ ├── stm32mp135f-stm32mp135df-comtrol-mx.dts │ ├── stm32mp135f-stm32mp135df-comtrol-mx-fw-config.dts │ └── stm32mp13-mx.dtsi └── u-boot ├── Makefile ├── stm32mp135f-stm32mp135df-comtrol-mx.dts └── stm32mp135f-stm32mp135df-comtrol-mx-u-boot.dtsi Generated custom machine by copying stm32mp13-disco-mx.conf.sample. Successfully built the image. Problem: When I try to flash using the STM32 flashing tool Using Usb, it gets stuck after
Hello,I have developed a custom board using the STM32MP157DAA1. When I try to write the boot image, the process stops after writing fsbl-boot and does not proceed to the next step.I checked the output from the debug port and received the following log:NOTICE: CPU: STM32MP157DAA Rev.Z NOTICE: Model: STMicroelectronics custom STM32CubeMX board - openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11 INFO: PMIC version = 0x21 INFO: Reset reason (0x15): INFO: Power-on Reset (rst_por) INFO: FCONF: Reading TB_FW firmware configuration f file from: 0x2ffe2000 INFO: FCONF: Reading firmware configuration informa tion for: stm32mp_fuse INFO: FCONF: Reading firmware configuration informa tion for: stm32mp_io INFO: Using USB INFO: Instance 2 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.10-stm32mp1-r2.0(debug):() NOTICE: BL2: Built : 11:48:32, Oct 29 2025 INFO: BL2: Doing platform setup INFO: RAM: DDR3-DDR3L 16bits 533000kHz ERROR: DDR addr bus test: can't access memorPANIC at PC : 0x2ffed13d Exception
Hello, I am currently trying to bring up the STM32MP257F-EV1 development board and running into an issue. I am following the instructions provided in this link: Populate the target and boot the image - stm32mpu, but I am using UART instead of USB. When I attempt to populate the SD card with the binaries, it goes through the entire download then says "Start operation done successfully at partition 0x01" Then approximately 30 seconds later it will say "Timeout error occured while waiting for acknowledgement." and it flashes this every 30 seconds for the next 2 and a half minutes then gives an error which reads "Error: TSV flashing service failed" and another error which reads "Error Parition 0xBB not found in TSV File". I was wondering if this was because I was using UART because when I ran the batch file to get the USB driver nothing happened so I thought I might be able to continue with UART. But if it is not specifically because I am using UART and there is a solution withou
Hello ST Community, We are developing a product based on STM32MP151 which requires detecting what caused the device to wakeup from sleep. With this device, we are setting up 2 wakeup sources - RTC and 2 WKUP GPIOs and we have to execute specific functions in our C application based on which GPIO triggered wakeup (or if it was RTC). We are using latest openstlinux distribution package. Right now, we have no clue as to if it is even possible somehow, some help will be appreciated a lot from ST regarding this... Best Regards,Ayush Sharma
Cannot boot an m33 TA app from the RFS on a STM32mp257f-DK board running latest OpenSTLinux starter package image.Any assistance would be appreciated. Please see details and boot error below.STEPS USED:1) build a TA m33 application in STM32CubeIDE2) from PC ssh .elf file - 73551a82-b721-4e53-9c84-c962e172c8ad.elf to target dir /lib/firmware3) from PC ssh .ta file - 73551a82-b721-4e53-9c84-c962e172c8ad.ta to target dir /lib/optee_armtz/4) from target terminal invoke command: root@stm32mp2unknownunknown:/lib/firmware# echo 73551a82-b721-4e53-9c84-c962e172c8ad.elf > /sys/class/remoteproc/remoteproc0/firmware5) from target terminal invoke command: root@stm32mp2unknownunknown:/lib/firmware# echo start > /sys/class/remoteproc/remoteproc0/stateTARGET TERMIAL OUTPUT:root@stm32mp2unknownunknown:/lib/firmware# ls73551a82-b721-4e53-9c84-c962e172c8ad.elf DKfullTest_CM33.elf LICENCE.cypress_bcm4373 regulatory.db73551a82-b721-4e53-9c84-c962e172c8ad.stripped.elf LICENCE.cypress_bcm4343 brcm reg
Originally posted in MCUs forum; moved to MPUs, as STM32MP is an MPU - not an MCU.Hello Everyone,I am working with FreeRTOS on an STM32MP157CAA and configuring the CM4 core in engineering mode using CubeIDE. According to the documentation, it's necessary to select a timer other than SysTick for the HAL timebase. However, in CubeIDE, under the SYS settings in the Pinout tab, I only see SysTick available as an option.When I generate the code, I receive the following warning: WARNING:When RTOS is used, it is strongly recommended to use a HAL timebase source other than the SysTick. The HAL time base source can be changed from the Pinout tab under SYS. Despite this, I am unable to select any other timebase source besides SysTick.Could anyone provide guidance on how to configure a different HAL timebase source for FreeRTOS in this setup? Any advice or workaround would be greatly appreciated.Thank you!
Hi, we have a custom board using STM32MP157C that seems to be bricked and can no longer be flashed with STM32 Cube Programmer over USB (DFU) after fusing the Closed_device bit in OTP.Before that we verified our image with signed FSBL and FIP with TRUSTED_BOARD_BOOT enabled. Logs suggested that secure boot was working fine.After programming OTP with STM32PRGFW-UTIL and setting Closed_device bit the device won't boot and can also no longer be flashed successfully. I guess FSBL got overwritten by the one from STM32PRGFW-UTIL which was not signed. However I don't understand why flashing no longer works.Does STM32 Cube Programmer USB/DFU flashing rely on a signed working FSBL already on the device?From the documentation here https://www.st.com/resource/en/application_note/an5275-introduction-to-usb-dfuusart-protocols-used-in-stm32mp1-and-stm32mp2-mpu-bootloaders-stmicroelectronics.pdf in 1.7.1 Case 1 – programming from reset it sounds like that C
Hi, we are trying to enable secure boot on a custom board using STM32MP157C.We are using OpenSTLinux ecosystem v5en.SDK-x86_64-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gzen.sources-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gzWhat we already did:Generated keys using STM32_KeyGen_CLI.exe (publicKeyhash.bin, publicKey.pem, privateKey.pem)Write publicKeyhash.bin to OTP using STM32_Programmer_CLI.exeSign the TF-A (BL2) image(.stm32 file) using STM32_SigningTool_CLI.exeVerify it worked by getting serial output when booting "NOTICE: Bootrom authentication succeeded"Next step was embedding certificates in the FIP binary. Until then we built the FIP binary using Makefile.sdk in sources\arm-ostl-linux-gnueabi\tf-a-stm32mp-v2.8.6-stm32mp-r1-r0. If we understand the documentation correctly (https://wiki.st.com/stm32mpu-ecosystem-v5/wiki/TF-A_BL2_Trusted_Board_Boot) generating a FIP with all certificates has to be done usi
Description:When attempting to compile a GStreamer "Hello World" example (basic-tutorial-1.c) using the cross-compiler toolchain on STM32MP1 with OpenSTLinux, a fatal error occurs indicating that the limits.h header file is missing.https://gstreamer.freedesktop.org/documentation/tutorials/basic/hello-world.html?gi-language=c Steps to Reproduce:Source the environment setup script: source /opt/st/stm32mp1/5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi Check the cross-compiler: echo $CC 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=/opt/st/stm32mp1/5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi Attempt to compile the program: arm-ostl-linux-gnueabi-gcc -Wall basic-tutorial-1.c -o helloworld $(pkg-config --cflags --libs gstreamer-1.0) Error Message:/opt/st/
Hello, I'm currently testing the security features of OP-TEE and need to use the HUK function of SAES(CFG_STM32_SAES ?= y). However, I've found that after enabling OP-TEE, the optee-examples cannot run. May I ask what could be the reason for this? optee_example_secure_storage Prepare session with the TA E/LD: copy_section_headers:1124 sys_copy_from_ta_bin E/TC:? 1 ldelf_init_with_ldelf:152 ldelf failed with res: 0xffff0008 optee_example_secure_storage: TEEC_Opensession failed with code 0xffff0008 origin 0x3ST OpenSTLinux - Weston - (A Yocto Project Based Distro) 5.0.3-snapshot linux6.6.48
Hello. I'm trying to configure the otm8009a 800x480 display panel from the stm32mp157f-dk2 dev kit on the Seeed Studio's stm32mp157c-odyssey board.The issue is that by probing display with modetest -M stm I'm getting:failed to open device 'stm': No such file or directoryBut with modetest -M simpledrm I'm getting this output:Encoders: id crtc type possible crtcs possible clones 34 0 none 0x00000001 0x00000001 Connectors: id encoder status name size (mm) modes encoders 35 0 connected Unknown-1 127x211 1 34 modes: index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot #0 480x800 60.00 480 480 480 480 800 800 800 800 23040 flags: ; type: preferred, driver props: 1 EDID: flags: immutable blob blobs: value: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 3 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: CRT
Hi,We are using a display with the Sitronix ST7701S IC. We received the initialization parameters from the vendor and updated our display driver accordingly. After these changes, the psplash screen appears correctly when the driver loads from kernel. However, once psplash exits and Weston starts, the display goes blank and nothing is shown.We are using custom image with custom board with mickeldore yocto branch .Regards,Adnan
Hello everyone,I am currently using the ADV7280A-M with an STM32MP2 YOCTO system. I found the related driver adv7180.c and successfully loaded the driver. Following the instructions in [1], I conducted tests, but I keep encountering the following errors, or the process gets stuck at "New Clock: GstSystemClock". I would like to ask if anyone has experienced similar issues?Below is the output from running the gst-launch command:media-ctl -d platform:48030000.dcmipp -r media-ctl -d platform:48030000.dcmipp -l '"48020000.csi":1->"dcmipp_input":0[1]' media-ctl -d platform:48030000.dcmipp -l "'dcmipp_input':2->'dcmipp_main_isp':0[1]" media-ctl -d platform:48030000.dcmipp --set-v4l2 "'adv7180 2-0021':0[fmt:UYVY8_1X16/720x480]" media-ctl -d platform:48030000.dcmipp --set-v4l2 "'48020000.csi':1[fmt:UYVY8_1X16/720x480]" media-ctl -d platform:48030000.dcmipp --set-v4l2 "'dcmipp_input':2[fmt:UYVY8_1X16/720x480 field:none]" media-ctl -d platform:48030000.dcmipp --set-v4l2 "'dcmipp_main_isp':1
Hi,I'm working on enabling USB 3.0 support for the STM32MP257 in U-Boot and need a suitable driver. I’ve attempted to modify the U-Boot kernel driver to support USB 3.0, but I’m running into issues with the PLL configuration.The problem seems to stem from setting up the correct clocking for the USB3 PHY. Despite adjusting the PLL parameters, I’m not getting stable operation, and the PHY doesn't initialize correctly. If you have any insights on configuring the PLLs for USB3 in U-Boot on STM32MP257, or if there's an existing implementation I could reference, I’d really appreciate your guidance.Thanks in advance!Here is my function.static int stm32_combophy_pll_init(struct stm32_combophy *combophy) { int ret = 0; u32 refclksel = 0, pllmult = 0, propcntrl = 0, sr = 0; unsigned long clk_rate = 0; int retry; const int max_retries = 5; /* get reference clock rate */ if (combophy->pad_clk) { clk_rate = clk_get_rate(combophy->pad_clk); printf("PADCLK rate: %lu\n", clk_rate); } else { clk
I am connecting my STM32MP257F-EV1 board to rpi Hailo 8 board via Mini Pcie to M.2 key M adapter. The board is not getting detected even though clock and reset signals are coming properly.I am using the stm32mp257f-ev1.dts (default device tree) and also sharing my device tree pci node below&pcie_rc {pinctrl-names = "default", "sleep";pinctrl-0 = <&pcie_init_pins_a>;pinctrl-1 = <&pcie_sleep_pins_a>;reset-gpios = <&gpioj 8 GPIO_ACTIVE_LOW>;wakeup-source;wake-gpios = <&gpioh 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;status = "okay";};I am getting this error as given below:-root@stm32mp2:~# lspci00:00.0 PCI bridge: Synopsys, Inc. Device 0550 (rev 01)root@stm32mp2:~# dmesg | grep pci[ 1.561630] stm32-pcie 48400000.pcie: host bridge /soc@0/rifsc@42080000/pcie@48400000 ranges:[ 1.570082] stm32-pcie 48400000.pcie: IO 0x0010010000..0x001001ffff -> 0x0010010000[ 1.586511] stm32-pcie 48400000.pcie: MEM 0x0010020000..0x0017ffffff -> 0x0010020000[ 1.60301
Hello everyone,I'm trying to build X-LINUX-AI, but I'm running into some errors. I'd be grateful for any help with fixing them. Here’s an example of the error message:../git/touch-event-gtk-player/meson.build:25:18: ERROR: Dependency "gstreamer-wayland-1.0" not found, tried pkgconfig Here is my build environment:- Ubuntu 20.04 (wsl)- OpenSTLinux Distribution Package V6.1.1- X-LINUX-AI V6.1.1 Here are the steps I followed:(Installing the OpenSTLinux distribution)$ repo init -u https://github.com/STMicroelectronics/oe-manifest -b refs/tags/openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27$ repo sync(Install X-LINUX-AI environment)$ cd layers/meta-st/$ git clone https://github.com/STMicroelectronics/meta-st-x-linux-ai.git -b v6.1.1$ cd ../..$ DISTRO=openstlinux-weston MACHINE=stm32mp2 BSP_DEPENDENCY='layers/meta-st/meta-st-x-linux-ai' source layers/meta-st/scripts/envsetup.sh(build the image)$ bitbake st-image-ai Here is the resulting log:$ bitbake st-image-ai NOTE: Starte
Hello all, I am following the following guide: https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32MP25_Discovery_kits_-_Starter_Package In order to bring up a STM32MP257F-DK board and am running into a problem when I try to use the Programmer to flash the board. It gets to Partition 0x3 and at 31% fails saying it failed to download sector[0]. Specifically this is the output in the terminal:-------------------------------------------------------------------STM32CubeProgrammer v2.20.0------------------------------------------------------------------- USB speed : High Speed (480MBit/s)Manuf. ID : STMicroelectronicsProduct ID : DFU in HS Mode @Device ID /0x505, @Revision ID /0x2000SN : 003700494236501700363847DFU protocol: 1.1Board : --Device ID : 0x0505Device name : STM32MP23xx/25xxDevice type : MPURevision ID : --Device CPU : Cortex-A35Start Embedded Flashing service Opening and parsing file: tf-a-stm32mp257f-dk-optee-programmer-usb.stm32Memory Programming ...File : tf-
I'm trying to perform ADC using PA3 (adc1_in15) and PF11(adc1_in2) pins of stm32mp157c-ev1 board but I keep getting "stm32-adc adc@0: Failed to enable vreg: -110"In arch/arm/dts/stm32mp157c-ev1-u-boot.dtsi I added the following:&adc { /* ANA0, ANA1 are dedicated pins and don't need pinctrl: only in6. */ pinctrl-0 = <&adc1_ain_pins_a>; pinctrl-names = "default"; vdd-supply = <&vdd>; vdda-supply = <&vdda>; vref-supply = <&vdda>; status = "okay"; adc1: adc@0 { status = "okay"; /delete-node/ channel@0; /delete-node/ channel@1; /delete-node/ channel@6; channel@2 { reg = <2>; /* 16.5 ck_cycles samp
Hello everyone,I’m currently developing a custom board based on STM32MP151A, and I’ve successfully built my Open ST Linux (Yocto Scarthgap / v6.6) image using my own Device Tree generated from STM32CubeMX and further customized for our hardware.The build process completes successfully — both U-Boot and Linux kernel compile without errors, and the final image is correctly produced.However, when I try to flash the image to the target using STM32CubeProgrammer, the upload fails and I get the error log attached below.12:56:16:446 : USB speed : High Speed (480MBit/s)12:56:16:446 : Manuf. ID : STMicroelectronics12:56:16:446 : Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x000012:56:16:446 : SN : 003E00273030510D3434343712:56:16:446 : DFU protocol: 1.112:56:16:446 : Board : --12:56:16:446 : Device ID : 0x050012:56:17:452 : Start Embedded Flashing service12:56:17:452 : sending a set alternate setting request with index: 512:56:17:453 : receiving packet12:56:17:454 : DFU s
Hi.I'm trying to develop some SW on the M4 core of STM32MP157FAD1 on custom board with custom Linux.After 2 days of fighting I'm finally able to run the tty echo example on it.But I still struggle with connection to the board.Why CubeIDE Debugger requires Serial port?We have the SSH accessible through the USB ETH over IP, that should be enough.The Debugger resolve wrongly IP of the board:We have pppd interface in the Linux. The debugger wrongly detects it's IP as the debugger IP.It results with this error:I'm also getting this error in console, it looks like the script/commands are interpreted wrongly:I'm still not able to get the ST-Link to work. It always ends with this error: Thank youP.S.For others who also struggle to get it to work, check your device tree, CubeMX doesn't generate proper mbox m4_rproc. Add to end of the dts to the user section this:&m4_rproc { mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>; mbox-names =
Hi ST Community,I’m using the STM32MP257F-DK board and successfully followed this guide: Modify, rebuild and reload the firmware Everything worked fine during the initial setup and firmware modification. Now I’m trying to flash a new image to the SD card and connect to the board again, but I’m unable to establish a connection via ST-LINK. Here’s the error I get:ST-LINK SN : 003E004A3234510636303532 ST-LINK FW : V3J16M8B5S1 Board : STM32MP257F-DK Voltage : 3.29V Error: Unable to get core ID Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug AuthenticationI’ve set the boot switches to the OFF position (boot from UART/USB), and I suspect that during the previous steps, Secure Boot may have been enabled or modified without me realizing it. Could this be preventing me from accessing the board now?I’ve already tried:Updating ST-LINK firmware“Connect under reset” modeChecking physical connections and voltageIs there
Hello,we have product based on a STM32MP157 running Linux. The distribution is based on Yocto kirkstone and we are using a 6.1.82 Kernel. For the MP1s' GPU we use the open source entaviv driver that ships with this kernel. The device has a graphical user interface that is displayed on 4" display. The device can be operated remotely via a webbrowser as well.The visualization of our application is handled by a web gui so that we can provide a uniform user interface to users independet whether they log in via a browser on a host PC to the device or operate the device with the display. For this reason the GUI on the local device is in fact our web gui running in a browser in kiosk mode. For this local browser in kiosk mode we use the Cog browser from the webkit project (version 0.18.2 with wpewebkit 2.42.5).Long story short: With this setup we are struggeling with performance issuses when operating the device locally with the cog browser. From my understanding webkit currently suppor
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.