Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and find answers on STM32 microprocessors, including hardware, power, DRAM, flashing, interfacing, device tree, and peripherals.
Most recent activity
Hello,there seem to be an error in the User Manual UM3359 of the Evaluation board with STM32MP257F MPU.In the Section 8.1.1 Description"The LD11 LED turns green when the power cable is inserted into the CN2 or CN21 connector.Two general-purpose color LEDs (LD4 and LD3) are available as light indicators:• The blue LED (LD4) is used as the Linux® Heartbeat LED, which is blinking as long as Linux® is alive onthe Cortex®-A.• The orange LED (LD3) is used as a STM32Cube example verdict LED.The two indicator LEDs, the red (LD4) and green (LD7) LEDs are either connected to the STM32MP257 MPU.The LEDs (LD5 and LD6) are used as ST-LINK indicator status. Refer to Section 7.4.6."The errors are colored in red:-LD4 is blue, not read.-LD7 is not connected to the STM32MP257 MPU but to the RJ45_48F-01GYDXNL-The LEDs LD1 and LD2 are not mentioned in the description. Only in the section 8.1.3 LED interface. In the first page it says "four user LEDs", but in the block diagram there are
Hi ST,I am successfully enabled the Audio through the SAI channel I am able to detect the card for our custom board. and using gst-play-1.0 this play the video and sound very well , also with aplay command. But the thing is , whenever i use qtmultimedia, it's playing video very well , but sound not come.when i connect the HDMI , then sound works through the card cs42l51. but when i disconnected the HDMI , and reboot the custom board , then i again i try to play video through the qtmultimedia with screenoff command then it play only video , but not given the audio output. Then i plugin the HDMI , then reboot the custom board , and i try to play the video through the qtmultimedia with screenoff command then sound works very well, so i think the issues comes from the HDMI and cs42l51 card.is something i am doing wrong from initialization and configurationroot@stm32mp255-customedsce-9b-60-e5-21-77:~# aplay -l**** List of PLAYBACK Hardware Devices ****card 0: STM32MP25
Hello ST Community,I'm trying to enable SPI4 on my STM32MP157F-DK2 board to use it for a SPI-based SD card interface.In my custom device tree overlay, I’ve defined the SPI4 node like this:&spi4 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi4_pins_b>; pinctrl-1 = <&spi4_sleep_pins_b>; cs-gpios = <&gpioe 11 0>; status = "okay"; sdcard@0 { compatible = "mmc-spi-slot"; reg = <0>; spi-max-frequency = <10000000>; }; }; And in the .dtsi, the pins I’m using are:spi4_pins_b: spi4-1 { pins1 { pinmux = <STM32_PINMUX('E', 12, AF5)>, /* SPI4_SCK */ <STM32_PINMUX('E', 14, AF5)>; /* SPI4_MOSI */ bias-disable; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = <STM32_PINMUX('E', 13, AF5)>; /* SPI4_MISO */ bias-disable; }; };So, I am not using PE6 (used in spi4_pins_a). However, on boot, dmesg shows this error:stm32mp157-pinctrl soc:pin-controller@50002000: pin PE6 already requested by 5a001000.
Hi,Suppose I have an I3C target endpoint sending Hot-join request after RSTDAA, is STM32H562/3ZI capable of detecting the Hot-join and pass it on to the firmware layer ? I see Hot-join request support and sample code as an I3C Target in STM32Cube repo on GitHub and generated code. How do we deal with Hot-join request as an I3C Controller
Can I only modify the ttt-ip-init-systemd.sh script if I need to change and persist the IP address while using the STM32MP switch mode?
Hi,I am trying to boot an STM32MP257F with M33 master from SD-card (BOOT=0111).I get the following error on PH4:----------------------------------------blockingfailureS-0002031104084FFCNS-0000000000000000L-000000AE----------------------------------------What does it mean?Best regards.
I know that the HSEM has been deprecated on the MP2x family of MPUs. However, it still appears to be supported, given that there is an entire chapter (22) dedicated to it in the user manual, as well as having some space carved out for it in the CUBE setup, though those options seem to be disabled. My question is, has anyone used the HSEM on an MP2 MCU, and if so, how is this accomplished? This all came about from a need to raise a *simple* interrupt between cores, without the latency and overhead of OpenAMP, the RIF, remoteproc, etc., etc. It seems straightforward enough, but if the MP2 does not support HSEM, then why is it presented in the manual as though it does? This makes no sense. I have had a couple of people tell me that HSEM is not preferred (okay, fine) but nobody has been able to explain why the documentation at least suggests it can be used, whatever its favored status. Thanks to anyone who can shed some light. It seems unbelievable that this beast of a micro has no was to
I am trying to debug a simple application on the CM4 processor on a STM32MP157D-DK1 development board in engineering mode using Cube IDE Version: 1.18.1 The board is booted from the micro SD card and appears to be powered up and alive with various flashing LEDs. When I try to debug my simple application I get the following error. I have tried many different debug and connection options on the debug configuration but I cannot seem to get past this point. How can I fix this?Open On-Chip Debugger 0.12.0+dev-00608-gd8ed48fef (2025-02-06-11:17) [https://github.com/STMicroelectronics/OpenOCD]Licensed under GNU GPL v2For bug reports, readhttp://openocd.org/doc/doxygen/bugs.htmlsrst_only srst_pulls_trst srst_gates_jtag srst_open_drain connect_deassert_srstInfo : Listening on port 6666 for tcl connectionsInfo : Listening on port 4444 for telnet connectionsInfo : connected to stlink-serverInfo : stlink-server API v3, version 2.1.1Info : STLINK V2J46M31 (API v2) VID:PID 048
I am trying to Generate a periodic interrupts using TIMERS in STM32mp257f how should I proceed? In timer openstlinux drivers there is no specific driver mentioned for periodic interrupts? How can I achieve this?
Im trying to add firefox to the Yocto distribution package provided by STI have addded meta-clang, meta-rust, meta-lts-mixins, meta-browser/meta-firefox, meta-openembeddedFirefox needs x11 dependencies so i added x11 depds as explained by this wiki page : https://wiki.st.com/stm32mpu/wiki/How_to_install_JAVA_JDK#The_yoctoproject_meta-java While compilation im getting the following list of errors.I have attached the log file for do_compile.
Hi all,I'm working on a custom STM32MP135 SOC hosting a MMC memory.The barebone firmware creates some tasks by the osThreadNew() function and works correctly.Now I'm inserting FATFs module (moving from FileX) on the firmware to support the FAT fs on the MMC memory.Most of the times the basic funcions work correctly (open, read/write, close). I'm able to create files and list them with findfirst/findnext functions.If I add a open/read/close sequence, the read operation is done correctly but when the function returns to the caller and this one try to call other function, the firmware crashes on CDAbtHandler. This behavior is not random, it is systematic at every run. The reported address in LR parameter is useless.In my understanding it could be a stack error but I'm not able to understand what could be causing the problem.Should be the thread stack size?How can i know the correct stack size?Thanks!
Hello,I was able to make the SDL2 library works with KMSDRM with kernel 5.15 Kirkston but with kernel 6.6 Scarthgap it doesn't work. I also configured the kmsdrm to work in the .bbappend file since I am using Yocto. I can see from the log.configure that the kmsdrm is on but the application which was working with 5.15 is still not able to run with 6.6. However, KMSCube is working means KMSDRM is working from the kernel point of view. The messages that I got when debug are below:INFO: video driver in use is: (null)INFO: video driver 0: waylandINFO: video driver 1: KMSDRMINFO: video driver 2: (null)INFO: video driver 3: (null)INFO: Failed to initialize SDL: No available video device Even if I specify the driver to be kmdrm I see the followingINFO: video driver in use is: (null)INFO: video driver 0: waylandINFO: video driver 1: KMSDRMINFO: video driver 2: (null)INFO: video driver 3: (null)INFO: Failed to initialize SDL: kmsdrm not available I don't know why it is still unavailabl
Hello,We are currently working with the STM32MP257F-DK development board and encountered an unexpected behavior while accessing the Ethernet DMA Mode Register (ETH_DMAMR), located at address offset 0x1000 as per section 92.11.2 of the reference manual.According to the documentation, the reset value of this register should be 0x00000000. In particular, Bit 0 (SWR: Software Reset) is defined to be cleared (0) after the reset operation is completed.However, upon reading this register after system initialization, we consistently observe the value 0x00000001, indicating that the SWR bit remains set. This suggests the software reset is still ongoing or not completed, which is contrary to the expected default state after a successful system boot.We have verified that all required PHY clocks and Ethernet clocks are active .Could you please advise if this is a known behavior or if there are additional initialization requirements that need to be met to ensure proper reset deassertion?Best regard
Hi ST team!I need to create a gateway that will connect a web server to a variaty of nodes. The gateway will connect a few universes of DMX/RDM and DALI protocols. I also plan to add a LoraWAN and OTA feature. We are not planning on using a GUI. As far as I know, an MCU would be pretty tight to run all of this, so we are thinking about using an MPU. Can someone help me ask the right questions to choose the correct MPU? I have worked with STM32MP15 in the past, but this was for a GUI related product, so I don't have full experience to choose a non-GUI MPU. Thanks a lot in advance
Hi, I am working with STM32MP157A-DK1 board with Yocto build system.I am trying to build synchronised system, that means I want to synchronise both CortexA7 and CortexM4. Basically I want to have the same time at both of them. I want to use STGEN for that, read it's counter on both A7 and M4 and share the values to calculate difference.And here is my question, how can I enable STGEN in my own linux image (I am not using OpenSt distribution right now). My image is basing on core image minimal.When I try to read STGENR registers provided in RM0436 with that piece of code (it is executed by M4):#include "stgen_read.h" #include "openamp.h" #define STGENR_BASE_ADDR 0x5A005000UL #define STGENR_CNTCVL_OFFSET 0x000 #define STGENR_CNTCVU_OFFSET 0x004 #define STGENR_CNTCVL_REG (*(volatile uint32_t *) (STGENR_BASE_ADDR + STGENR_CNTCVL_OFFSET)) #define STGENR_CNTCVU_REG (*(volatile uint32_t *) (STGENR_BASE_ADDR + STGENR_CNTCVU_OFFSET)) #Debug purpose extern struct rpmsg_endpoint ept; uint64_t
Hi everyone,I'm currently working on the PCIe part of the STM32MP25 and would like to ask if there's anything wrong with my configuration. I’ve followed the official documentation provided by ST.Here are the documents I’ve referenced:PCIe device tree configuration - stm32mpuCOMBOPHY device tree configuration - stm32mpuBelow is my device tree configuration:/ { clocks{ /* USER CODE BEGIN clocks */ pad_clk: pad-clk { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <100000000>; }; /* USER CODE END clocks */ }; }; /*root*/ &pcie_rc { pinctrl-names = "default", "init"; pinctrl-0 = <&pcie_pins_mx>; pinctrl-1 = <&pcie_init_pins_mx>; status = "okay"; /* USER CODE BEGIN pcie_rc */ reset-gpios = <&gpioa 2 GPIO_ACTIVE_LOW>; wakeup-source; wake-gpios = <&gpiog 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* USER CODE END pcie_rc */ }; &combophy { status = "okay"; /* USER CODE BEGIN combophy */ // st,ssc-on
Hi all,I'm working on a custom STM32MP135 SOC hosting a MMC memory. The original firmware creates some tasks by the osThreadNew() function and works correctly.Now I'm inserting FileX module on the firmware to support a FAT fs on the MMC memory.The firmware lauch a mmc_init() function to setup the FileX structures: fx_system_initialize(); UINT status = fx_media_open(&mmc_disk, MMC_MEDIA_NAME, fx_stm32_mmc_driver, (VOID *) 0x00, (VOID *) media_memory, sizeof(media_memory)); printf("[mmc_init] Media open status: x%x\r\n", status); #if FORCE_MMC_FORMAT == 1 status = FX_BOOT_ERROR; // #endif if (status != FX_SUCCESS) { printf("[mmc_init] Failure: x%x\r\n", status); // Se l'errore è FX_BOOT_ERROR, proviamo a formattare il media if (status == FX_BOOT_ERROR) { printf("[mmc_init] Attempting to format media...\r\n"); status = storage_mmc_format(); if (status != FX_SUCCESS) { printf("[mmc_init] Format failed: %d\r\n", sta
I am trying to control the LTDC on the STM32MP257FAL based on the STM32MP257F-DK board, but I am unable to configure pin PH4. This pin is used as LED1 on the STM32MP257F-DK board, which is the LED near the button. However, I cannot find where this pin is configured in the kernel, OP-TEE, TF-A, or U-Boot.Below is the relevant log message:[ OK ] Reached target Local File Systems.Starting Automatic Boot Loader Update...Starting Create Volatile Files and Directories...[ OK ] Finished Coldplug All udev Devices.[ OK ] Finished Load/Save OS Random Seed.[ OK ] Finished Automatic Boot Loader Update.Starting Wait for udev To Complete Device Initialization...[ OK ] Finished Create Volatile Files and Directories.[ 6.950932] cfg80211: Loading compiled-in X.509 certificates for regulatory database[ 6.995536] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'[ 6.996629] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'[ OK ] Started Network Configuration.Starting Network Name Resolutio
I am using the STM32MP157F-DK board and attempting to connect an NXP Wi-Fi + Bluetooth module via SDIO through the 40-pin expansion header. For this, I designed a custom PCB with an SD card holder and connected the SDIO lines from the expansion header to the SD holder using jumper wires.When I insert the Wi-Fi module into this setup, it fails to get detected and throws one of the below mentioned errors, such as:mmc1: error -16 whilst initialising SDIO card mmc1: Card stuck being busy! __mmc_poll_for_busy mmci-pl18x 48004000.mmc: card claims to support voltages below defined range mmc1: error -84 whilst initialising MMC cardHowever, when a standard SD card is inserted into the same slot, it is detected correctly and works as expected.Could you please advise if any changes are required in the Device Tree (DTB) or if any hardware modifications are needed to enable proper detection and operation of the Wi-Fi module?SDMMC3 node configuration in DTB file as below :mmc@48004000 {compatib
I have created a CubeMX project for STM32MP235.I have successfully built, Flashed and able to boot it on STM32MP257-EV1 board. (I don't have my 235 custom board ready yet.)Once I switch to normal boot after flashing, it runs until kernel tries to run some process printing message on Serial "[ OK ] Started Calibrates HSI/CSI clocks." after which IAC exception handler kicks in from OPTee and system crashes.From the log what I can see that kernel is asking for access to peripheral ID 156, which I presume that is RCC. (found ID from reference manual and some online posts).Can anyone help me which setting I am missing in my cube MX project or any User entry in any of DTS that cubeMX generates?Here is the snippet of Console Log. IOC file for my project is also attached.Welcome to ST OpenSTLinux - Weston - (A Yocto Project Based Distro) 5.0.8-snapshot-20250722 (scarthgap)! [ 2.783063] systemd[1]: Hostname set to <stm32mp23-trb-235-protoa>. [ 2.812342] systemd[1]: Using hardware watchdo
I'm trying to update linux kernel on OSD32MP1-RED board to the latest kernel 6.6.78 that's provided with Developer Package using instructions in README.HOW_TO.txt.stm32mp1, but after building and installing kernel and modules on SD card booting from SD card hangs and then board goes into continuous cycle of rebooting due to watchdog. Is there a way to use latest ST kernel with this board? Here is output from the booting:NOTICE: CPU: STM32MP157F?? Rev.ZNOTICE: Model: Octavo OSD32MP1 RED boardINFO: Reset reason (0x214):INFO: IWDG2 Reset (rst_iwdg2)INFO: PMIC version = 0x21INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe3000INFO: FCONF: Reading firmware configuration information for: stm32mp_ioINFO: Using SDMMCINFO: Instance 1INFO: Boot used partition fsbl1NOTICE: BL2: v2.4-r1.0(debug):v2.4-stm32mp-r1NOTICE: BL2: Built : 23:04:23, Apr 24 2022INFO: BL2: Doing platform setupINFO: RAM: DDR3-DDR3L 16bits 533000KhzWARNING: Couldn't find property st,phy-cal in dtbINFO:
I'm currently evaluating an embedded linux system for a specific use-case with my company.What's necessary is a lot of specific interfaces, like MIPI-DSI/DisplayPort/HDMI, USB HS (+PHY) and the standard RAM and other peripherals. I've found the STM32MP257FAK3, or more specifically the Discovery Board STM32MP257F-DK from ST to be sufficient for my task and would like to keep working either with it directly or with something very similar - that's where the issue starts.In ST's license agreement, the commercial use of a DISCO board is prohibited, so buying them directly from ST and using them as components in their designated machines is not an option.Out of curiosity, I've used the publicly available BOM and manufacturing files for the DISCO board for a lower-volume quotation, just to see where a custom and perhaps reduced board would get me - let's just say a very popular pcb manufacturer would like 3.5k for 5, yes, 5 boards. The components make up for most of the cost, but buried
Hello everyone ! I use the stm32mp257f-dk with yocto for a project. To benchmark my programs, I need kinda heavy packages. To solve my IMAGE_ROOTFS_MAX issue, I followed the following topic : https://community.st.com/t5/stm32-mpus-embedded-software-and/increasing-the-rootfs-size-on-a-stm32mp157f-dk2/m-p/205665Unfortunatly, even if the distro compile, I have the following warning at the end of my compilation (see screenshot below).My configuration is the following :- local.confROOTFS_PARTITION_SIZE = "12582912"IMAGE_ROOTFS_MAXSIZE = "12582912"I tried to add the in /meta-st/meta-st-stm32mp/conf/machine/include/st-machine-common-stm32mp.inc too, but i don't have more results.I don't have any more idea to solve the issue. All the help is welcome !
Hi everyone, for learning purposes I’m trying to build meta-doom for stm32mp257 DK. I previously tried it for RPi4 and after some minor fixes I was able to do it for nanbield/mickledore poky version. What I established it is possible to run it and it still works.My setup for stm32mp2 version is that I cloned mickledore repo manifest and integrated meta-doom layer. Doom wouldn’t buil for wayland so I had to change my display manager to X11. It’s not directly supported but still possible (source: https://community.st.com/t5/stm32-mpus-embedded-software-and/how-to-setup-x11-in-the-distro-instead-of-wayland-on-stm32mp1/td-p/741125)Now gzdoom builds and I’m able to execute on target. However, after uploading proper WAD I get this error:no vulkan device found supports minimum requirements of this applicationI installed vulkan-loader and vulkan-tools into the image and vulkaninfo gives me following information:root@stm32mp25-disco:~# vulkaninfo WARNING: [Loader Message] Code 0 : loader_scanne
Hi, I'm doing a custom hardware design. I'd like to use LPDDR4 but only at 16bits of data width.Is there a list of LPDDR4 parts from Micron, ISSI, or others that are known to work with the STM32MP257?Are any parts that claim LPDDR4 ok?Thanks,John
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.