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, I am trying to establish an interprocessor communication between the cores A7 and M4 with the with the Stm32MP157. The example from ST "OpenAMP_TTY_echo" works fine, but as soon as I change the received buffer or try to send a costomize buffer from the M4 side, it is not received correctly by the A7 anymore.This error happens even if I change only one character in the receive buffer.Does anyone have a clue what is going wrong?Thanks.
I am trying to use the USB OTG in host mode, but it kept giving me the famous HANG! Soft Reset timeout GRSTCTL_CSFTRST error.According to the datasheet, when we set the register, it should reset the core but also clear itself but the following condition checks if it is 0 or not. if ((hsotg->hw_params.snpsid & DWC2_CORE_REV_MASK) < (DWC2_CORE_REV_4_20a & DWC2_CORE_REV_MASK)) { if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 10000)) { dev_warn(hsotg->dev, "%s: HANG! Soft Reset timeout GRSTCTL_CSFTRST\n", __func__); return -EBUSY; }Here is some debugging that I have done GRSTCTL VALUE before reset: 0x80000400GRSTCTL VALUE after reset: 0x80000401GRSTCTL inside if condition: 0x80000001Here you can see, it has even cleared the 10th bit itself but did not clear the bit 0.Following is my device tree, I still consider myself a beginner, so I need help.&usbotg_hs{ u-boot,dm-pre-reloc; pinctrl-names = "default", "sleep"; pinctrl-0 = &l
I'm getting these errors on the consoles when FSBL (TF-A) is trying to download SSBL (U-Boot). What could this DFU error be? I've added the following to the U-Boot DTSI file so it ignore USB OTG VBUS and USB OTG ID. I've tried this using Linux and Windows with STProgrammer.&usbotg_hs { u-boot,force-b-session-valid; dr_mode = "peripheral"; };Console Output: NOTICE: CPU: STM32MP157AAA Rev.Z NOTICE: (a)Model: STMicroelectronics custom STM32CubeMX board - openstlinux-5.15-yocto-kirkstone-mp1-v22. 06.15 NOTICE: board_id = 0 NOTICE: Board: Board ID is zero NOTICE: Checking fixed regulator register INFO: fixed_regulator_register() is the problem INFO: Entering the loop INFO: register fixed reg regulator-vdd! INFO: Node: 10728 NOTICE: Calling stm32mp1_syscfg_init() WARNING: VDD unknown NOTICE: Watchdog refresh NOTICE: BSEC read debug configuration NOTICE: Arch security setup INFO: Reset reason (0x4): INFO: Pad Reset from NRST NOTICE: Syscfg enable IO INFO: FCONF: Reading TB_FW
Hi,I am wondering if it is possible to internally connect two GPIO pins by software, not using wires.Thank you
Hi!I am using STM32MP157C-DK2 board to create an application on the screen (using GTK library). My idea is to start coprocessor firmware from the A7 application with the following commands (system commands):int main (int argc, char **argv) { GtkApplication *app; system("su root -c 'echo core_communication_new_CM4.elf' > /sys/class/remoteproc/remoteproc0/firmware"); system("su root -c 'echo start' > /sys/class/remoteproc/remoteproc0/state"); app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (Window_info), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); return status; }With these two system commands, I want to boot the M4 firmware (core_communication_new_CM4.elf). Then, I initialize A7 program (probak_GTK) with the following command:su -l weston -c "/usr/local/probak_GTK"However, when I run the A7 application, I get the following message in the Linux
I've been validating my DDR interface with DDRUTIL through the CubeMX DDR Interactive which seems to pass the tests. When I boot TF-A it is failing both address bus testing for 1's and 0's. But I can run this same test through DDRUTIL and it passes. What am I overlooking here? As for DDR configuration in either case, the files are identical.Here are the results of doing an address bus test (which per the comments is exactly what TF-A is doing)DDR Interactive ResultsDDR test #4 (AddressBus) triggered with parameters: 4096 0xC0000000DDR test result: PassDDR test #4 (AddressBus) triggered with parameters: 67108864 0xC0000000DDR test result: PassDDR test #4 (AddressBus) triggered with parameters: 67108864 0xC2000000DDR test result: PassDDR test #4 (AddressBus) triggered with parameters: 67108864 0xC4000000DDR test result: PassDDR test #4 (AddressBus) triggered with parameters: 67108864 0xC8000000DDR test result: Pass
Hello , I followed 1 qt-wpe-simple-browserfrom here : https://wiki.st.com/stm32mpu/wiki/How_to_install_a_simple_web_browserbut getting the error in launching the browser on executing this command : qt-wpe-simple-browser http://google.com QQmlApplicationEngine failed to load components qrc:/main.qml:3:1:module "org.wpewebkit.qtwpe" is not installedwhich package i have to install?I am already connecteed to network and I am on Ecosystem 3.0regards,D
We're are trying to use BKPSRAM in application code insecurely. According to the stm32mpu BKPSRAM_internal_memory page, we need to "set BKPSRAM as non-secure and degrade low power modes support, removing Standby mode"Apart from setting the etzpc peripheral in the devicetree to non-secure [DECPROT(STM32MP1_ETZPC_BKPSRAM_ID, DECPROT_NS_RW, DECPROT_UNLOCK)]what else is necessary in TF-A?
Is it possible to run touchgfx on the STM32MP1? TouchGfx can be run on the STM32F4 with the M4 core. Is this also possible on the M4 core of the MP1? Is there any support from ST or has anyone already implemented this?
Hello,Upgrading Linux 5.4 causes SPI to fail to initiate (see boot log snippet below). Any ideas what would cause this (same DT)?Again thanks for your great support!Best RegardsChrister[ 2.782226] spi_stm32 4000c000.spi: failed to request tx dma channel[ 2.787222] spi_stm32 4000c000.spi: failed to request rx dma channel[ 2.853534] ------------[ cut here ]------------[ 2.858162] WARNING: CPU: 0 PID: 21 at drivers/spi/spi.c:2475 spi_register_controller+0x4c8/0x75c[ 2.867232] couldn't get idr[ 2.867236] Modules linked in:[ 2.873229] CPU: 0 PID: 21 Comm: kworker/0:1 Not tainted 5.4.192 #1[ 2.879606] Hardware name: STM32 (Device Tree Support)[ 2.884852] Workqueue: events deferred_probe_work_func[ 2.890102] [<c0111e98>] (unwind_backtrace) from [<c010d544>] (show_stack+0x10/0x14)[ 2.897982] [<c
Using yocto project and changed default sysvinit to systemd with below line in local.confINIT_MANAGER = "systemd" DISTRO_FEATURES += "pam vulkan opengl egl wayland" CORE_IMAGE_EXTRA_INSTALL += "wayland weston" IMAGE_INSTALL:append = " chromium-ozone-wayland libva-utils intel-media-driver mesa vulkan-loader gst-player"With above changes system boots up and can see a blank screen with cursor blink, no auto launch of weston can be seen.Please assist.
I've tried to flash STM32MP157C-DK2 SDCard like described in ST wiki with command STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv.and it didn't work! i got following error report. it seems it has trouble to reconnect the device. does anyone have an idea why it didn't work? or does anybody get similar problem? how do i get it working? Thanks a lot! ------------------------------------------------------------------- STM32CubeProgrammer v2.1.0 -------------------------------------------------------------------USB speed : Full Speed (12MBit/s)Manuf. ID : STMicroelectronicsProduct ID : DFU in HS Mode @Device I
I have a STM32MP157C-EV1 board.Can i upgrade STM32MP157C-EV1 board to STM32MP157F-EV1 only removing TM32MP157C processor and reinstaling a new TM32MP157F processor?If not, how can i upgrade MB1263 MPU subsystem daughterboard to the last microprocessor family?
Hi!We are using mdma (dma0chan20) to do "memory to memory" transfers from the FMC to (user) RAM. The FMC is used to access a FIFO buffer that is filled by an FPGA (128kB size).Between individual DMA transactions we measure a delay up to 5ms leading to a buffer overrun in the FIFO.I tried to improve this by scheduling a second DMA transfer directly after the first. I assumed that this "overlapped" transfer will automatically start when the first completes and therefore reduce the time between DMA transfers.This did not work as I assumed:I get the dma_completed callback of the first transaction, but the second (overlapped) transfer does not seem to get started. Info: I put a dev_dbg into stm32_mdma_irq_handler and it is never called by the overlapped transaction. Only by the first one.Funny fact:When I change the used dma_channel to "dma2chan0" and using the "dma" (and not "mdma" engine) it works. The overlapped transfers work and all dma_completed get called.So far so good, but:Th
Hello, teachers.I'm sorry in advance because I think I'll be talking too long.The board I use is STM32MP157D-EV1 (evaluation board).From the previous question and answer, I found that Ubuntu 18.04 and SDK could not be installed on my board, which had a starter package installed through Windows OS.I also knew that Linux, Ubuntu (22.04 or 20.04) OS (64bit) is required to install a developer package or distribution package.So I installed Ubuntu 20.04 LTS on VMWare and even installed the STM32CubeProgrammer program. (Although VMWare-Ubuntu and STM32 evaluation board are not connected yet, I think we can find and connect various information such as environmental variables. But if it doesn't work, I'll have a headache.)Next, here's my situation.I need to install Ubuntu OS and SDK on the board I use for comfortable test construction. From what I heard from the source code developer, the version doesn't matter. Only Ubuntu OS is required. They said that cross-compilation is not neces
Hello, teachers.First, The board I am using is the STM32MP157D evaluation board.I checked the article that the starter package can be installed in Windowsos, but the developer package and the distribution package are only available in the Linux environment.In addition, Ubuntu 18.04 was installed on VMware as Ubuntu 20.04 LTS because it may not be compatible. I installed the virtual environment and the STM32Cubeprogrammer Tool, and I tried to connect with virtual Linux by booting the board in USB mode, but the STM32 tool on Linux cannot find it.By installing another USB device on the PC, we confirmed that the USB driver works normally. The STM32Cubeprogrammer version is seen as API v2.12.0 | Linux-64bits.How can I connect to the STM32MP157D-EV1 board and USB in a VMWare Linux environment (Ubuntu 20.04 LTS)? Please give me a hint.
I have a board from karo-electronics, STM32MP157c based QSMP 1570 SOM over qsbase2, I am trying to configure above mentioned board for my specific application, The distribution is build using yocto by karo-electronics, I am unable to edit the dts files as there are a lot many appended layers and I am new to yocto , I was having a little bit hands on in Debian that too on RPi and BBB but yocto is new for me.So, basically i am trying to make a access controller ,using stm32mp1 MPU ,- how can i start with it, -what are the advantages of yocto -add or append dts files, mainly configuring the interrupts for various peripherals and GPIO as well
I even installed the starter package in EMMC boot mode.And I want to install a developer package.I want to install SDK, can I use STM32MP157D-EV1 board using STM32Cube Programmer in Windows OS?Ubuntu 18.04 was installed in virtualbox and STM32Cubeprogrammer was installed. However, the program cannot read the STM32 board on the USB port.I want to install Ubuntu 18.04 on the STM32MP157D-EV1 board. Is there any way?
I am using the STM32MP157D-EV1 board.The starter package is currently installed in EMMC boot mode.the version is "ST OpenSTLinux - Weston - (A Yocto Project Based Distro) 4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23 \n \l" .I need to install Ubuntu 18.04 on this board, but I don't know how. Do I have to delete the installed package now and install Ubuntu 18.04?Ah, I downloaded the ubuntu-18.04.6-desktop-amd64.iso file. I can use Windows 10 and Oracle virtualbox.I want to use Windows 10 if possible, but if it's impossible, I can also use Oracle virtualbox.
Hello community,the errata says (in combination with the missfunciton of the delay block), that only modes up to DDR50 can be used with the STM32MP1xx.Actually we now have the problem, that writing to the SD card works well but the reading through the level shifter does have errors.Now we are afraid, that because of not beeing able to use the delay block, the problems mentioned in the errata are also present with the DDR50 mode.So, we configured in the device tree the clk_in to be used from the level shifter for the SD card.Does anyone have an idea, what we can do else to get the SD card running with DDR50? Writing (sychronous delay clock and data through the level shifter) is working fine. Read is working only with errors.Any ideas what could go wrong? Any idea is welcome to be tested...Best regards,Jan-Otto
Hello,I have the stm32mp157c-dk2 board and have connected two CAN Bus transceivers to it.FDCAN1 is assigned to the A7 CPU and the FDCAN2 is assigned to the M4 CPU.Both transmitters are connected to the same CAN bus. There is also a 3rd device connected to the same can bus.When there is very low traffic on the can bus everything is fine.All messages from all 3 CAN nodes can be received correctly everywhere.When there gets little more traffic on the bus then the FDCAN2 on the M4 CPU starts to transmit wrong frames.Also when the traffic goes low again the problem stays the same until reboot of the M4 CPU.It is also hard to reproduce the issue. It sometimes takes a few hours or days for the issue to happen.Here is the data on the bus when everything is ok:# candump can0can0 10000681 [3] 0A 00 05 <- Data from M4 CPUcan0 10000682 [3] 0A 00 19 <- Data from M4 CPUcan0 1810A080 [8] 80 00 00 18 00 01 00 00 <- Data from 3rd d
Hello, I have received a STM32MP157F-DK2 so I develop a program to send data through the SPI port toward other device (like a STM32 nucleo, maybe).Reading about this first device I saw that example code won't work there but I should use spidev on openstlinux ( wiki st com stm32mpu wiki SPI_overview ). However, in order to spidev get to work is needed to select the port name (i guess)... the case is:/sys/bus/spi/devices and /dev/spi* have "N-O-T-H-I-N-G":pouting_face: although the port is physically installed >:( . Really I don't know what is the meaning of creating a image for this device if this will no recognize all of the present hardware :fearful_face:.Well, in wiki st com stm32mpu wiki SPI_overview says in "3.1 Kernel configurationEnable SPI support (SPI framework and STM32 SPI driver) in the kernel configuration through the Linux Menuconfig tool: Menuconfig or how to configure kernel. "This is done manually in your kernel .config file:CONFIG_SPI=yCONFIG_SPI_MASTER=yCONFIG
Hi!I am using STM32MP157C-DK2 and i want to start the coprocessor from bootloader (I have readed the wiki page). First, I have done it manually and everithing works fine:I have changed kernel m4_rproc:&m4_rproc{ /*Restriction: "memory-region" property is not managed - please to use User-Section if needed*/ mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; mbox-names = "vq0", "vq1", "shutdown"; status = "okay"; /* USER CODE BEGIN m4_rproc */ memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; interrupt-parent = <&exti>; interrupts = <68 1>; wakeup-source; st,auto-boot = <1>; /* USER CODE END m4_rproc */ m4_system_resources{ status = "okay"; /* USER CODE BEGIN m4_system_resources */ /* USER CODE END m4_system_resources */ }; };I have loaded the firmware and run bootc
I'm having trouble getting TF-A to start from USB DFU using the STM32Programmer CLI. Here's what I get:$ ./xpro_uboot_prgm.sh ------------------------------------------------------------------- STM32CubeProgrammer v2.11.0 ------------------------------------------------------------------- Warning: Timeout is forced to 30000 ms USB speed : High Speed (480MBit/s) Manuf. ID : STMicroelectronics Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 SN : 003B00403431510930393938 DFU protocol: 1.1 Board : -- Device ID : 0x0500 Device name : STM32MP1 Device type : MPU Revision ID : -- Device CPU : Cortex-A7 Start Embedded Flashing service Memory Programming ... Opening and parsing file: tf-a-stm32mp153a-xpro-mp1-mx-usb.stm32 File : tf-a-stm32mp153a-xpro-mp1-mx-usb.stm32 Size : 220.38 KB Partition ID : 0x01 Download in Progress: [==================================================] 100% File do
Hi all!!Follow the wiki page, I added support to kernel FIT image in my Yocto distro for the board stm32mp157c-dk2 based on openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.Just I added the option: MACHINE_FEATURES += "fit" and I selected BOOTSCHEME_LABELS += "trusted" in stm32mp15-disco.conf and finally I generated the new image.The problem is thar after start kernel I see a ETZPC trace that does not appear in the typical configuration.FIT image traces:## Loading kernel from FIT Image at c2000000 ... Using 'conf-stm32mp157c-dk2.dtb' configuration Trying 'kernel-1' kernel subimage Description: Linux kernel Created: 2022-09-08 10:32:54 UTC Type: Kernel Image Compression: uncompressed Data Start: 0xc2000120 Data Size: 7903152 Bytes = 7.5 MiB Architecture: ARM OS: Linux Load Address: 0xc0800000 Entry Point: 0xc0800000 ... Verifying Hash Integrity ... sha256+ OK ## Flattened Device Tree blob at dbb017b0 Booting using the fdt blob at 0xdbb017b0 Loading Kernel Image Loading Ram
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.