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
Hi,We’re working with an STM32MP157DAC SoM for driver development and testing. Right now, every time we make a change, we have to rebuild the full image, which takes around 1 to 1.5 hours. I’d like to speed this up by building only the kernel separately and then copying just the updated driver file to the board for testing. Could you share any documentation or links that describe this process, or outline the steps needed for a standalone kernel build?Regards,Adnan
Hi ST,I'm working with the STM32MP257FAI3 Processor and have some concerns regarding DQ bit swapping between the SoC's DQ lines and the DDR4 RAM DQ lines.I'm already aware of the guidelines document mentioned in this solution.From my understanding of the document,DQ bits within a byte lane and DQ byte lanes are invariant in a device, allowing for appropriate swapping. However, the DqxLnSel registers should remain at their default values.This applies to DDR4, and there is no need to configure DQ bit swapping in arm-trusted-firmware. The DDR firmware and DDRCTRL internal PMU will manage DQ swapping during the initial training.Can anyone validate my understanding?Thank you in advance.
Hello,I have a stm32mp257f-dk and I would like to create an STM32Cube project for my board.To be able to use the board, I have put in the eMMC the tsv file provided in the starter pack:`en.FLASH-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.12.05/stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.12.05/images/stm32mp2/flashlayout_st-image-weston/optee/FlashLayout_emmc_stm32mp257f-dk-optee.tsv`My project aims to use the OpenAMP stack. I was able to flash the example which works very well but it does not have a .ioc file (which is necessary for my project).So I used the STM32CubeMX Board Selector to generate an empty project.First problem (screen 1), CubeMX tells me that DSIHOST, MDF1, and RCC are in conflict.Since I don't need the Digital Filter and the screen, I disabled them.I still have the RCC conflict. My code compiles but when flashing the project on the Cortex-M33, it crashes and here are the logs:```[ 34.029164] vddio3: disabling[ 34.029233] vddio4: disabling[ 34.029495] vdda18
Hi I am using Marvell Ethernet Phy(mv88q2220) in our project,i have integrated my Marvell driver into SDK and it is probing as well, we are using sxgmac driver for mac, while i am trying to initialize the eth0 interface i am facing issues related to validation of phy and phy is not able to attach.I have checked the phy-mode also it is configured correctly. I am attaching the error logs also, Can anyone suggest what could the potential cause of this issue ? Error Logs: root@sadk:~# ifconfig eth0 192.168.10.1 upSIOCSIFFLAGS: Invalid argumentSIOCSIFFLAGS: Invalid argument Dmesg Logs: [ 55.096204] sxgmac 16cc8000.ethernet eth0: validation of with support 00000000,00000000,00006000 and advertisement 00000000,00000000,00000000 failed: -EINVAL[ 55.096449] sxgmac 16cc8000.ethernet eth0: __stmmac_open: Cannot attach to PHY (error: -22)[ 55.364867] sxgmac 16cc8000.ethernet: is_dsp_running changed to true[ 55.365900] sxgmac 16cc8000.ethe
Hello, we are currently designing a STM32MP257 based custom PCB. During the PCB design of LPDDR4 interface, we realized that the excel table provided by ST includes the package pin to PCB lengths and the calculations are done based on the track lengths, not delays. Since the PCB materials may differ from one board to another, the propagation delay values are needed, rather than the pin length values in order to implement a successful time matching. Could you provide us with the package to pin propagation delay values for STM32MP257FAI3? Thanks in advance.
Hii Team,I'm working on an ISP tuning project for an IMX219 sensor on an STM32MP257F-DK board, using the X-LINUX-ISP package and the ISP IQTune tool.I am facing some errors like1. The COM port is not getting detected in the ISP IQTune tool and giving error asWaiting for board detection service2. Also when I run the python code from x-linux-isp tool it is giving a resolution errorThe board is recognized by my laptop using acm command and lsusb but it is not coming in the application.My Question is :1. What is the reason for it to get detected in the laptop but not the application?2. What other changes are required so that the board gets detected?3. Why this resolution error and how can i resolve this error?
IHello, I am using the STM32MP257 platform and the user mode system programming adopts CAN0 loopback mode for self collection. I found that there is a probability of reporting the following exception in dmesg:ifconfig:
I’m working on an STM32MP135 (STM32MP13‑DISCO) using Yocto/OpenSTLinux 5.15 and trying to get SPI5 working via the spidev interface. My device tree configures SPI5 pins and enables spidev@0 at 500 kHz (see DTS fragment below). /dev/spidev0.0 appears on boot.For testing, I have physically connected MOSI to MISO for loopback, and CS (PH11) is connected to the peripheral and can be pulled low. I run the loopback command:./spidev_test -D /dev/spidev0.0 -s 500000 -vHowever, the transfer fails with:spi mode: 0x0 bits per word: 8 max speed: 500000 Hz (500 KHz) [ 494.413391] spidev spi0.0: SPI transfer timed out [ 494.416807] spi_master spi0: failed to transfer one message from queue can't send spi message: Connection timed out Aborted (core dumped)I have confirmed:Device tree compiles without errors./dev/spidev0.0 exists and matches my DT config.Avoided “-l” (SPI_LOOP) mode, which is unsupported by STM32.Still timed out in a simple loopback.My device tree fo
Hello, I'm in the process of designing an edge computer using a MP2 processor. Due to the shortage of LPDDR4 memories, I'd like to use LPDDR4X memories. Can I use this type of DRAM for MP2 series processors? Or do you have any alternative part that I could consider for my design? Thanks in advance,Daniel
Hi,the TRM of the STM32MP257F describes different possibilities to boot the controller including the possibility to boot from eMMC or SD-card. And when looking to the EV-board, there are DIP-switches to choose eMMC or SD-card as boot-device too.But what I can't find: how does this work exactly? How do I have to format eMMC/SD-card and what do I have to place on these devices in order to let a bare-metal application being loaded? Is there a documentation available somewhere that describes this in detail?Thanks!
Hello, I want start on a project using the STM32MP157 processor.Working on an embedded Linux OS is a first time for me. I understand that there is a steep learning curve to get the OS running an embedded system. Is there any advice for a new comer? Particularly is there a board that is easy for me to experiment on.
Hello,I am designing a custom board with stm32mp257,As given in evm it is connected with 4GB eMMC on SDMMC2, But I require 32GB 0r 64GB, can you suggest some eMMC for it.Best RegardsAbhineet Ranjan
Hi, everyone. FYI:I have a board STM32MP257F-DK-C01. I flashed the latest release according to https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP2_boards/STM32MP257x-DK/Let%27s_start/Populate_the_target_and_boot_the_imageIt starts and everything looks ok, but the ethernet is absent. etho is absent if I run "ifconfig", "if up", etc. LEDs are not flashing when cable is plugged.I tried to flash it second time, no changes. I tried to use same sdcard on another STM32MP257F-DK-C01 board, but had no luck.After reverting to v24.12.05 everything works fine.Some facts that might help from v25.06.11:1) U-Boot prints message: Net: No ethernet found2) At the tenth second kernel writes a message[ 10.843936] Board is not a valid BOARD (stm32mp257f-dk, stm32mp257f-ev1)3) After console is loaded the username looks like this:
Hello,I'm following the Getting started wiki for Developing on Arm® Cortex®-M33. I already installed the IDE and the MP2 Packages. Now I'm in the section "Modify, rebuild and reload the firmware" but I'm stuck in Step 2. Software Prerequisites. Because I don't know how to install the build environment as explained in the wiki. It seems like it is for linux development, but I am using Windows, so I don't have the "sudo" and "export" options.Can someone help me to execute these lines in windows? or is there another alternative?1-Install dependencies:sudo apt-get install -y git curl wget build-essential libssl-dev python3 \ python3-pip cmake make libncurses52-Add CMake path into environment:export PATH=<CMake path>/bin:$PATH Thanks in advance,David
Is NPU of STM32MP257F capable of running inference of Transformers models like Small VLMs on this device using its NPU? what frameworks are supported like execuTorch or onnxruntime ?
Hello everyone, I'm currently exploring the STM32MP257F-DK. As recommended in the "MOOC - STM32MP2 demo workshop", I'm diving deep into the wiki. I have also watched the "MOOC - STM32MP1 workshop". Of course, I have reviewed the getting started guide before doing anything. However, I want to know how this amazing community tackles the challenges of developing a new application on this platform. Do you recommend any specific development flow (Start with the examples, port STM32MP1 lab examples to the new platform, start with the template, use STMCubeMX and generate a new device tree, etc.)? Is there any tutorial that helped you a lot? I will also try to update the post with any resources I highlight. Thank you in advance. Note: I'm new to this community, if this post is not what should be here let me know. Of course, any feedback is well received. ---ROUDMAP [LIVE]For anyone interested, I'm following the current roadmap:STM32MP257F-DK User Manual [Doc]&nb
Hello ST team,I came across issue here.The force_mode of boot_ctx is always set to 3, which force the MPU to boot over USB, rather than MMC. I tried to set TAMP_BKP20R(BOOT MODE) to 0, but the behavior is the same after reset.Aslo, I have another board (hardware is slightly different, but boot pin configuration is the same), which works well.I know it can be fixed by changing UBOOT code. My questions are:1. Is the value of this register boot_ctx set by ROM code?2. The MPU model and version of the above two board are the same, STM32MP151FAD Rev.Z. Why is their behavoir different?
Hi! I am simulating the DDR4 memory interface with the STM32MP251. Same stack-up as the reference design. Only one memory connected (point to point).I have used a Micron model for the memory but I think all the memory models are similar.I am using 53 ohm for driver and 48 ohm for receivers and 48 ohm for ODT also. 1600 MT/s simulation is pretty fine but for 2400 MT/s there are FAILS on SETUP time for readings (see image attached).I am not sure if the package delays are being considered by the Hyperlynx. On Altium all the delays are included but I don't know if this info is exported in the HYP file.Anyone with experience can confirm if the package info is included or not?Any ideas about the SETUP time FAILS?Thanks!
Hi,I am referring to the STM32MP157D-DK1 EVB (STM32MP157DAC1), specifically the "mb1272-bdp" design file, and would like to clarify the correct method for measuring DDR3L to Microprocessor (MP) trace lengths on the PCB.My question is regarding the Clock P/N signals:Should the PCB trace length be measured from the MP pin to the DDR3L chip clock pin (CK_P/N), or from the MP pin to the 100 Ω termination resistor? The reason for the question is that the termination is placed after the DDR3L chip, which adds additional trace length.After reviewing the EVB design (mb1272-bdp design file) and analyzing the trace lengths using the ST-provided length equalization Excel file, I have the following observations:When measuring trace length from the MP pin to the DDR3L chip pin:The address group signals are mostly within acceptable limits, except for A16, RAS, and A0.However, the data strobe signals (DQS P/N) are outside the required −15 mm to 0 mm range with respect to the clock signal.Address Grou
I would like to train a face detection model using the WIDER FACE dataset.I have already created the environment with Conda, and the training process ran normally. The training results are as follows:Using object_detection/stm32ai_main.py:python /home/niuke/STM32MP/Github/stm32ai-modelzoo-services/object_detection/stm32ai_main.py Are these results normal? If not, what should I change?Could you share an example of training a face detection model using the STM32 Model Zoo Services?I am using the user_config.yaml file and the UART log file (attached).The prepared WIDER FACE dataset can be found here:https://drive.google.com/file/d/1no40Mn4HTMX0Kvf0kpk8aA6IK-dIYhB8/view?usp=drive_link
Found the cause and solved. what happened was:1. Plugged the host PC only into the STLINK USB-C. with SW1 set to 1, the device booted from EMMC and debug data was shown on USB UART. Assumed based on the MPU running, it would be enough power for the DFU mode.Once the USB connection was shown in ST CueProgrammer but later on it disappeared and USB connection was never detected again.2. Bit ofcourse, DFU is not provided via STLINK hardware but via the DRD , CPU OTG USB interface. Though after connecting the USB DRD into another USB host connector there was still no DFU mode.3. After connecting the STLINK USB-C to an 5V charger and a USB-C cable from DRD to the host DFU mode came up.This particular PC might be too old to provide enough juice. but wonder why this board does need more power than a USB-A 3.0 connector can supply (0.9A) . Perhaps some may run into the same issue.Cant use DFU mode and ST-LINK at the same time, but the board works.
Hi,i want to store some flags, bytes, at the end of my SRAM. This RAM section should preserve the information in case of a Reset e.g. WWDG1 Reset.Before WWDG1 Reset is executed some program states should be stored in RAM and after Reset could be read out to get more information about what happend.I defined the section in RAM as follows:/* Memories definition */ MEMORY { RETRAM_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 32k m_ipc_shm (RW) : ORIGIN = 0x38008000, LENGTH = 32K SRAM1_FLASH (RX) : ORIGIN = 0x10000000, LENGTH = 192K SRAM2_RAM (RWX) : ORIGIN = 0x10030000, LENGTH = (192K - 256) FLAGS (RW) : ORIGIN = 0x1005FF00, LENGTH = 256 } ... .noinit (NOLOAD): { KEEP(*(.FlagSection)) /* keep my variable even if not referenced */ } > FLAGSAccessed by declaring arrayuint8_t flag_buf[256] __attribute__((section (".FlagSection")));I can move the information to flag_buf[] as desired and its there until a WWDG1 reset occurs.After CM4 firmware starts again the FLAGS sections
Board/SoC: STM32MP2Android version: AOSP Android 13 (android-13.0.0_r82)WebView: com.android.webview 109.0.5414.123 (prebuilt)Renderer: GLES Display: 1024×600 (landscape‑native) @ ~63 Hz Opening an android webview intermittently causes a blank screen. Logs look like the following:2025-07-30 11:38:13.515 1750-1750 OpenGLRenderer W Surface lost, forcing relayoutThe webview never recovers from this state.Also get the following logs if it is relevant:2025-08-12 16:16:48.810 3475-3504 OpenGLRenderer E Unable to match the desired swap behavior. I've also attached the logcat file Thanks
Hi. I am trying to connect iPhone 14 (lightning port) to OTG (CN15) on STM32MP257F-DK, but there is no connection.iPhone 14 is not charged. No USB connection is shown on iPhone.On the board:`lsusb` does not show any new connection.`dmesg` does not show any new log, like there is no new cable plugged at all.The lightning-to-C cable has been tested with other devices and works fine.iPhone 16 (type-C port) can connect to OTG to be charged and do USB tethering just fine.I am already using the newest kernel 6.6.78 from https://github.com/STMicroelectronics/linux, branch "v6.6-stm32mp".So I would like to confirm if OTG on STM32MP257F-DK support lightning connection or not. Thank you.
I am facing an issue where USB Ethernet (RNDIS/ECM) is not detected on my board using the RT version of OpenSTLinux. Previously, using the standard OpenSTLinux build:meta-st-stm32mp.git -b openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06The board was detected as a USB Ethernet (ECM) device when connected to a host PC via USB. However, when switching to the Real-Time (RT) version of the same build:meta-st-x-linux-rt.git -b openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06The USB is no longer detected as an Ethernet device. I would like to understand if any USB gadget configuration is missing in the RT build, and what changes (if any) are needed in the kernel or device tree to enable RNDIS or ECM USB functionality in this configuration.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.