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
I am currently developing using the STM32MP157FAD. And I want to create a distribution image and download the image using STM32CubeProgrammer.However, while downloading the image, the following error message is displayed in the log of STM32CubeProgrammer.15:34:17:270 : DFU status = 0 15:34:17:270 : DFU State = 5 15:34:17:270 : Segment[0] downloaded successfully 15:34:17:270 : File download complete 15:34:17:270 : Time elapsed during download operation: 00:00:01.440 15:34:17:270 : RUNNING Program ... 15:34:17:270 : PartID: :0x01 15:34:17:270 : DFU status = 0 15:34:17:270 : DFU State = 5 15:34:17:270 : sending a dfu end of download request 15:34:17:270 : DFU status = 0 15:34:17:271 : DFU State = 7 15:34:22:259 : DFU status = 0 15:34:22:259 : DFU State = 2 15:34:22:259 : sending a set alternate setting request with index: 5 15:34:27:259 : receiving packet 15:34:32:260 : sending a clear status request 15:34:42:262 : an error occured after sending the clear status request 15:34:42:262 : S
Hi, I have a rather simple question. I use cube mx to generate dts, my Openstlinux is v22.11.23 and during 'bitbake tf-a-stm32mp' I encounter a lack of definition in some '*.c' files like Built stm32image successfully | | CC drivers/st/ddr/stm32mp1_ram.c | CC drivers/st/ddr/stm32mp_ddr_test.c | CC drivers/st/ddr/stm32mp_ram.c | drivers/st/crypto/stm32_hash.c: In function 'hash_hw_init': | drivers/st/crypto/stm32_hash.c:161:24: error: 'HASH_CR_ALGO_SHA1' undeclared (first use in this function) | 161 | reg |= HASH_CR_ALGO_SHA1; | | ^~~~~~~~~~~~~~~~~ | drivers/st/crypto/stm32_hash.c:161:24: note: each undeclared identifier is reported only once for each function it appears in | drivers/st/ddr/stm32mp1_ddr.c: In function 'stm32mp1_ddr3_dll_off': | drivers/st/ddr/stm32mp1_ddr.c:491:26: error: 'DDRPHYC' undeclared (first use in this function); did you mean 'DDRPHYC_PIR'? | 491 | if (clk_get_rate(DDRPHYC) < 100000000U) { | | ^~~~~~~ | | DDRPHYC_PIR | drivers/st/ddr/stm32mp1_ddr.c:491:26:
I have integrated Micro-ROS into the m4. I have it working such that I am able to publish sensor data and receive it from other nodes. However Micro-ROS takes up a quite a bit of space, 70+ KB. In their documentation it is target at mid tier micro controllers. I am trying to add the parameter server and that pushes the .text over the 128KB limit. I am wondering if it is possible / advisable to recompile the system image to allow for larger text space for the co processor. I believe their are some changes to make to the device tree memory section among other places. My possible options I see would be:Rebuild the system image to increase memory for the M4 and make the other requisite changes to increase the size of the .text spaceDon't use micro-ROS on the m4 and exchange data via packets and a smaller implementation by hand and parse the data on the A7 side to publish it into the ROS2 world.Optimize everything as much as possible to reduce the size and try to keep squeezing it into the
In the recently, for the past few days, I am facing this new issue that, if i compile for my custom som and program, i always get this error. But if I dont do any add-on of packages, I works fine.I even added a simple package like "vim" using IMAGE_INSTALL in addons/conf/machine/<machine_name>.conf file .I tried creating new directory and adding files and building from scratch multiple times. Still no success. It always crashes after resizing the partition.
HiI'm testing the firmware code using STM32MP157D-DK board.The current configuration for testing use st-link CN11 and ethernet to upload firmware program by using STM32CubeIDE.My question is, Is it possible to do the simmiar firmware program uploading only with st-link CN11 connection?Thanks
..
Hello everyone, Currently, I'm using X-CUBE-UCSI and came across some information in the user manual regarding the UCSI Operating Policy Manager (OPM) functionality in STM32MP1 series microprocessors. I was wondering if anyone could point me in the right direction to find open resources or documentation related to this topic. Any help would be greatly appreciated.Thank you in advance.
Hi, I am using STM32MP157D-DK1 board to cross compile my application from host pc.My host PC is installed with ubuntu 20.04. I have setup the build environment in host pc. When i am executing the hello exe in STM32MP board.Please find details below. ubuntu_20_04@ubuntu2004:~/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/SDK/sysroots/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/hello$ uname -aLinux ubuntu2004 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linuxubuntu_20_04@ubuntu2004:~/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/SDK/sysroots/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/hello$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 20.04.1 LTSRelease: 20.04Codename: focalubuntu_20_04@ubuntu2004:~/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/SDK/sysroots/x86_64-ostl_sdk
Hi, we tried to send raw ethernet packages using a STM32MP157C-DK2. We used this simple C code here: https://gist.github.com/austinmarton/1922600The code works well on Linux x86 systems as well on Raspbian, but not on the STM32MP157C-DK2 [1]: Sending raw ethernet packages works, but no raw packages are received. Do you have any idea what could go on here? Is there a specific option to configure the package filters of the STM32MP1 ethernet driver?[1] using en.FLASH-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz from https://www.st.com/en/embedded-software/stm32mp1starter.html
Hello everyone,I am trying to integrate the Murata Wi-Fi/BT combo module 1YN in a custom board design based on stm32mp1. The BT part works fine, while the Wi-Fi is not initialized by the system.Apparently, the chipset variant CYW43439 is not supported by the current OpenSTLinux distribution based on kernel 5.15. Could you please provide instructions on how to support the new chipset?So far, I tried to apply the following patches to kernelwifi: brcmfmac: add Cypress 43439 SDIO ids - Patchwork (kernel.org)[PATCH] wifi: brcmfmac: add Cypress 43439 SDIO ids (kernel.org)but I am getting the following error at boot time:[ 15.312838] brcmfmac: brcmf_fw_alloc_request: Unknown chip BCM43439/5Does ST plan to release patches to support the new CYW43439 chipset?Thanks in advance!
Dear ST Community,I'm working with fdcan on stm32mp157d-dk1, the fdcan works properly in engineering mode, but i have an issue when in production mode, I found that I have to add the fdcan to the device tree, then I tried to compile the dts generated by CubeMx in order to activate fdcan but i'm getting an error : "syntax errorFATAL ERROR: Unable to parse input tree"I've used the dts from this link : https://github.com/STMicroelectronics/arm-trusted-firmware/blob/v2.6-stm32mp/fdts/stm32mp15xx-dkx.dtsi#L254and other dts from other project but i'm getting the same problem
Hi team,I'm trying to build my own Linux distribution for "STM32MP151AAA" now.https://wiki.st.com/stm32mpu/wiki/OpenSTLinux_distributionAre there only the following two images that I can select by referring to the above URL?Is the difference between these two images whether the interface is GUI or CUI? st-image-weston st-image-coreBest regards,
Many thanks for your help!Currently, we are using the SRAM4 memory as a shared RAM mapped between the M4 and the A7 cores. We have a Linux application that writes full 32bit values from the A7 core, as in the following snippet: *(volatile uint32_t *)p_sram4_mapped = 0x1441cddc; // (core A7) *(volatile uint32_t *)p_sram4_mapped = 0xa55a3663; // (core A7) ...the M4 core application that uses the same shared memory may read from it a 32bit word comprised of 16bit values coming from different A7 write operations, e.g. reading this way: const uint32_t read_value = *(volatile uint32_t *)p_sram4_mapped; // (core M4)read_value could be OK, e.g. 0x1441cddc, 0xa55a3663but read_value could be also a 16-bit hybrid, e.g. 0x14413663, 0xa55acddcThe same is true also in the vice versa case when M4 writes and A7 reads.I wonder if there is a way to make the read/write operations from the A7/M4 cores atomic on a 32-bit size instead of a 16-bit size.Many thanks again for your help!
I am looking to transfer large amount of data from the linux userspace to the MCU shared memory (MCU SRAM3) using the indirect transfer method:https://wiki.st.com/stm32mpu/wiki/Exchanging_buffers_with_the_coprocessorI would like to use the MCU SRAM (as opposed to DDR) because there are tight timing requirements, so I would like to keep everything in the MCU tightly coupled memory.Are there any tutorials, explainers, or example code that shows how to do this? I found this, but it is targeted to using DDR instead of MCU SRAM:https://wiki.st.com/stm32mpu/wiki/How_to_exchange_data_buffers_with_the_coprocessor#rpmsg_sdb_driverAs far as I understand, it's not possible to write data directly to a specific physical memory address from a linux userspace application. So is it possible for my linux application to create a buffer in SRAM3, then pass the physical address pointer the M4 program using rpmsg/openamp?Also, does there need to be some sort of spinlock on SRAM3 to prevent either core from
I am using an STM32MP157D-DK1 eval board, and I am looking to run a barebones linux image with the LCD-TFT pins disabled, so I can use those pins with the M4 core. Is there a pre-generated image that does not use the LCD-TFT (HDMI) peripheral? Otherwise, is there a tutorial for generating a custom linux image with some of the peripherals disable? I have device tree files that were generated using CubeMX, and I have successfully generated a linux image using Yocto and the BSP from the meta-st-stm32mp repo on github.
The STM32MP1 example code on github targets the STM32MP157C on the STM32MP157C-DK2 and STM32MP157C-EV1 eval boards, however both of those boards are obsolete. I am using the STM23MP157D-DK1 eval board.How do I port the example code so that it targets the correct chip and eval board?Specifically, I am trying looking at the OpenAMP example code:https://github.com/STMicroelectronics/STM32CubeMP1/tree/master/Projects/STM32MP157C-DK2/Applications/OpenAMPhttps://github.com/STMicroelectronics/STM32CubeMP1/Thank you,Owen
I have two NOR flash in my hardware. On SoM (Boot meadia detecting as NOR1 in Uboot) On Carrier Card Both are detecting in Uboot as Nor0 and Nor1 but in STMCube programmer i am not able to flash to Nor1. Tool given NOR1 not found error. So not able to flash to NOR1 and Boot from QSPI. If i put NOR0 in tsv file it is flashing to carrier card NOr flash. I wanted to flash to On SoM QSPI which is detecting as NOR1 which is not supported in TSV file. To test , I have made the carrier card SPI4 disabled then On SoM QSPI is detecting as NOR0 and flashing and booting works. [2023-05-25 19:25:57] uboot> mtd list [2023-05-25 19:26:01] SF: Detected is25wp016 with page size 256 Bytes, erase size 64 KiB, total 2 MiB [2023-05-25 19:26:01] SF: Detected n25q256ax1 with page size 256 Bytes, erase size 64 KiB, total 32 MiB [2023-05-25 19:26:01] List of MTD devices: [2023-05-25 19:26:01] * nor0 [2023-05-25 19:26:01] - device: is25wp016@0 [2023-05-
Hello,Sorry for a long post this needs some context.I've been configuring and testing OP-TEE from the following guide:https://wiki.st.com/stm32mpu/wiki/How_to_configure_OP-TEEI'm using the STMicro fork of optee_os (tag 3.16.0-stm32mp-r2), and the OP-TEE client, test, and examples from v3.16 from the OPTEE and linaro github repos. The full xtest passes.Eventually I'll need more than 16 random bytes so changed the optee_example_random to generate more random bytes. Now for the Oddity. When generating longer runs of random bytes, there is almost always a string of all zeros towards the beginning. Here is the output of the linaro version (generates 16 bytes):# seq 8 | xargs -I -- /usr/bin/optee_example_random Invoking TA to generate random UUID... D/TA: random_number_generate:74 has been called I/TA: Generating random data over 16 bytes. TA generated UUID value = 0xbbe9fda061c8fd5b43632e5126fd12 Invoking TA to generate random UUID... D/TA: random_number_generate:74 has been called I/TA: Ge
Hi, I use boot1 pin as gpio key function. The boot1 is PI5, and I configure it in kernel dts code. When the system boot up, the input event0 device is shows, but I use hexdump can not get any key code data. Currently, my board is boot from sdcard. gpio-keys { compatible = "gpio-keys"; #size-cells = <0>; user { label = "user"; linux,code = <BTN_1>; gpios = <&gpioi 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; }; };
1. Can the display interface be driven by the M4 core while the A7 core is powered down?1a. Can the AXI interconnect peripherals be driven by the M4 while the A7 cores are powered down?2. Display controller - is there any loss in performance if using an external display controller via SPI interface instead of using the native RGB LTDC interface directly to a display?
Hi all,I updated my project from Morty (2.2) to Kirkstone (4.1). After doing the required fixes/updates on the recipes, I have problems booting the FSBL. I am using the Cube Programmer to flash the image. Below is the log:STM32CubeProgrammer API v2.13.0 | Windows-64Bits Read TSV File: C:\temp\stm32mp1-customized-img-kirkstone-alpha2\flashlayout_custom-os-image-debug\trusted\FlashLayout_nand-4-256_stm32mp153a-customized-img-cubemx-mx-trusted.tsv Number of partitions: 11 UR connection mode is defined with the HWrst reset mode Device Descriptor: |_bLength : 0x12 |_bDescriptorType : 0x01 |_bcdUSB : 0x0200 |_bDeviceClass : 0x00 |_bDeviceSubClass : 0x00 |_bDeviceProtocol : 0x00 |_bMaxPacketSize : 0x40 |_idVendor : 0x0483 |_idProduct : 0xdf11 |_bcdDevice : 0x0200 |_iManufacturer : 0x01 |_iProduct : 0x02 |_iSerialNumber : 0x03 |_bNumConfigurations : 0x01 Configuration Descriptor: |_bLength : 0x09 |_bDescriptorType : 0x02 |_wTotalLength : 0x48 |_bNumInterfaces : 0x01 |_bConf
Hi ST Community, We have planned to use STM32MP131A MPU in one of our custom designs with low power consumption as the main target. We have come across STM32 CubeMX v6.8.1 for estimating the individual current consumption in various modes and while utilizing different peripherals. Unfortunately the current consumption details for necessary peripherals are not available for STM32MP1 series. Can you provide us the details of any latest version which can support our requirement if available.
I am trying to use the UART4 TX: H13 and RX: H14 pins for the tty console access.The TX from the MPU works fine as I can see the kernel boot logs, but cannot access the kernel command line. No prompt shows up on hitting ENTER.Here are my stm32mp15-pinctrl.dtsi UART4 configurations: uart4_pins_a: uart4-0 { pins1 { //pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */ pinmux = <STM32_PINMUX('H', 13, AF8)>; /* UART4_TX */ bias-disable; drive-push-pull; slew-rate = <0>; }; pins2 { //pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */ pinmux = <STM32_PINMUX('H', 14, AF8)>; /* UART4_RX */
Hello.I'm trying to make simple openAMP with STM32MX(with STM32cubeIDE, .ioc file).The code is simiar to OpenAMP_TTY_echo. I include virt_uart.h and use VIRT_UART_Init code inside main function and others like making RxCpltCallback and registor callback is same as the example code. But the virtual Uart is not shown in /dev directory.I checked it with console inside cubeIDE.So, I debug it and find out the breakpoint in main function not work.the first image is about not working debug break point.second image is about no RPMSG tty in devafter I Suspend manually by clicking the button and make expression(VIRT_UART_Init(&huart1) like in the image below, the virtio is initialized and the ttyRPMSG0 is seen in /dev directoryWhat Is the problem of this?If I do wrong, what is the right way to deal with OpenAMP?
My hardware:STM32MP135FAE SLC NAND(MT29F4G08ABAF):256MB page:4K block:256K excuse me,How to configure makefile.sdk when compiling TF-A?Here's what I tried:# Init default config settingsTF_A_DEVICETREE_nand ?= stm32mp135f-dkTF_A_EXTRA_OPTFLAGS_nand ?= STM32MP_RAW_NAND=1 PSA_FWU_SUPPORT=1 STM32MP_FORCE_MTD_START_OFFSET=0x00200000TF_A_BINARY_nand ?= tf-aTF_A_MAKE_TARGET_nand ?= all-----------------------------------------------------------------FlashLayout_sdcard_stm32mp135f-dk-optee.tsv#Opt Id Name Type IP Offset Binary- 0x01 fsbl-boot Binary none 0x0 tf-a-stm32mp135f-dk-usb.stm32- 0x03 fip-boot FIP none 0x0 fip-stm32mp135f-dk-optee.binP 0x04 fsbl Binary nand0 0x00000000 tf-a-stm32mp135f-dk-nand.stm32P 0x05 fsbl Binary nand0 0x00080000 tf-a-stm32mp135f-dk-nand.stm32PE 0x06 metadata1 Binary nand0 0x00100000 metadate.binPE 0x07 metadata2 Binary nand0 0x00180000 metadate.binPE 0x08 fip-a1 FIP nand0 0x00200000 PE 0x09 fip-a2 FIP nand0 0x00600000 PE 0x0A fip-b1 FIP nand0 0x00a00000 PE
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.