Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and find answers on STM32 microprocessors software development tools.
Most recent activity
Example for optee:make -f $PWD/../Makefile.sdk all DEVICETREE=stm32mp157a-board-mxAn error occurs but it stlll generates message with outpfolder and a message that the output files was completed.This happens when the device tree is not found it with errors in the device tree. It still generated the bin files in optee/deploy folder letting the user with the impression that everything went fine.what we would like is to have a makefile just to build for a one board that stops and gives a clear message that something went wrong, with a return value for non zero so that it also can be integrated in a build script.There was one was to easy check on error by adding > <output>to the make command. it then just shows a the error and stop message.make -f $PWD/../Makefile.sdk DEVICETREE=stm32mp157a-board-mx allmake[1]: Entering directory '/media/user/H3D2P1/Tools/STM32MP1/STM_ECO_5.0.0/Developer-Package/stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/sources/arm-ostl-linux-g
STM32MP157AAA3 with discrete powerERROR (phandle_references): /soc/pwr@50001000: Reference to non-existent node or label "vdd"ERROR (phandle_references): /soc/pwr@50001000: Reference to non-existent node or label "vdd_usb"ERROR (phandle_references): /soc/mmc@58005000: Reference to non-existent node or label "v3v3"ERROR (phandle_references): /soc/usbphyc@5a006000/usb-phy@1: Reference to non-existent node or label "vdd_usb"ERROR (phandle_references): /soc/usbphyc@5a006000/usb-phy@1: Reference to non-existent node or label "scmi_vdd_usb"The first 3 were resolved by adding these definitions as regulators, but scmi error could not be resolved. also added the "stm32mp15-scmi.dtsi in includes but did not work. Besides , scmi_vdd_sub is only defined in mp135f dsti files and reference the PMIC resources which this board does not have. only way to fix it was changing the reference from scmi to usb_vdd . Is this correct?
https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/plat/stm32mp1.rstmentions to build u-boot and optee first before TF-A:Building u-boot raises an error:Missing stm32mp157a-board-mx-fw-config-optee.dtb file in folder: $FIP_DEPLOYDIR_FWCONF or '$FIP_DEPLOYDIR_ROOT/arm-trusted-firmware/fwconfig'When building TF-A it fails but it does generated this dtb. After copying the dtb to the FIP_artifact folder, and then running u-boot again , the TF-A builds as well.Is this how it's supposed to be ?
No matter what is in the following line of the Makefile.sdk (even it is empty)UBOOT_DEVICETREE_stm32mp15_defconfig ?= stm32mp157c-ed1 stm32mp157f-ed1 stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1 stm32mp157a-dk1 stm32mp157d-dk1 stm32mp157c-dk2 stm32mp157f-dk2 <custom board>make -f $PWD/../Makefile.sdk allOnly create optee files for the st boards as can be seen form the output from the build:fiptool-stm32mp config:optee:bl32 config value: opteedevicetree config: stm32mp157c-ed1 stm32mp157f-ed1 stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1 stm32mp135f-dk stm32mp157a-dk1 stm32mp157d-dk1 stm32mp157c-dk2 stm32mp157f-dk2Make clean does not have affect.while.....make -f $PWD/../Makefile.sdk UBOOT_CONFIG=trusted UBOOT_DEFCONFIG=stm32mp15_defconfig UBOOT_BINARY=u-boot.dtb DEVICETREE=stm32mp157a-<custon board> alldoes output the optee file.[fiptool] Create fip-stm32mp157a-<custom board>-optee.bin fip binary into 'FIP_DEPLOYDIR_FIP' fold
After building optee, tf-a and uboot the info of the fip file results inSecure Payload BL32 (Trusted OS): offset=0x128, size=0x1C, cmdline="--tos-fw"Secure Payload BL32 Extra1 (Trusted OS Extra1): offset=0x144, size=0x30BB8, cmdline="--tos-fw-extra1"Non-Trusted Firmware BL33: offset=0x30CFC, size=0xF5D3C, cmdline="--nt-fw"FW_CONFIG: offset=0x126A38, size=0x1EA, cmdline="--fw-config"HW_CONFIG: offset=0x126C22, size=0xCFB8, cmdline="--hw-config"and extraction of the files in-rw-rw-r-- 1 user user 490 Sep 3 18:22 fw-config.bin-rw-rw-r-- 1 user user 53176 Sep 3 18:22 hw-config.bin-rw-rw-r-- 1 user user 1006908 Sep 3 18:22 nt-fw.bin-rw-rw-r-- 1 user user 28 Sep 3 18:22 tos-fw.bin-rw-rw-r-- 1 user user 199608 Sep 3 18:22 tos-fw-extra1.binThe Secure Payload BL32 Extra2 (Trusted OS Extra2) seems not been added by the build scripts ? is this correct ?BTW the pageable file are zero bytes ?See also: https://wiki.st.com/stm32mpu/wiki/How_to_configure_TF-A_FIP
These are the steps in chronological order to be able to build the files for a custom board. This seems very convoluted and easily confusing. I this process correct ? The issues normally are not found with the STM board because all the pre-build files are already in the fip and other source folders, but for a custom board they are not, hence the issues.Build sequence:=================* Install the SDK* SDK source set to the arm toolchain* Extracted all the sources and applied the patches* Copied the device tree files from CubeMX to the respective folders.* Updated the makefiles.sdk with the the new board name.* Added the device tree file name to the makefiles in fdts and dts sub-folders (TF-A / u-boot)* Set the $FIP_DEPLOYDIR_FIP' and $FIP_DEPLOYDIR_ROOT* Deleted all the custom board files under $FIP_DEPLOYDIR_ROOT that were built before during trial (& error)Steps and issues encountered in chronological order:1. Build u-bootmake -f $PWD/../Makefile.sdk all UBOOT_CONFIG
Quite simple, I try to search for a variable and when I click search even though I KNOW it's in the project. The window disappears and nothing is done. Is this a bug or Is my search wrong? I'm trying to search the entire project.This is quite frustrating. (See Below) Thank you
how we can putt our video in the stm32mpu video playback folder and how we can play this video ?
STM32MP157AAA custom board with DRAM, SD- EMMC, USB and UART , Discrete power( no PMIC) . The board uses discrete oscillators for HSE and RTC, so they are set as Crystal OSC for both in CubeMX USB, UART are correctly configured (same as the default peripheral settings). DRAM is correctly setup based on the used DRAM chip. In .config the PMIC options is disabled and legacy power enabledThe CubemX settings were verified by the SOM manufacturer as being correct. This board has run a previous version of the ECO system without problems.TF-A uses SCMI but if the file #include "stm32mp15-scmi-u-boot.dtsi" is included, errors occur.To fix some other CubeMX generated dts file errors:a. Add a file stm32mp157a-<board>.dsti file in the main dts file. (which CubeMX did not add as an include). This fle is empty.b.. Add a binman entry to the stm32mp157a-<board>.dsti. Thee definition was found in stm32mp15-scmi-u-boot.dts and if not included u-boot fails with a message tha
I'm trying to use the TIM internal peripheral as an events counter on an STM32MP15. I have the ETR pin connected to a line generating pulses. When I tried to configure the trigger in STM32CubeMX,I was unable to select the ETR trigger when TIM1 was connected to Linux, only when connected to the M4 core.Is there no linux driver capable of running the TIM internal peripheral in this mode?https://wiki.st.com/stm32mpu/wiki/TIM_device_tree_configuration seems to indicate that `st,stm32-timer-counter` can be used as an external events counter. Do I simply need to manually create the device tree setup? If so, what do I need to do to set it up?
https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Install_the_SDKIt should be more clear the en.xxxx file is under the x86 Yocto package. not the first item development package which are sources. then should use gzip -f to extract the tar from the gz file. then cd the stm32* folder, then cd the sdk folder and then change the permission.. then the chmod filename is wrong, should be using sudo with filename st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.2.1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.sh https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Modify,_rebuild_and_reload_the_Linux%C2%AE_kernelSays to download the developer package. This should be the BSP package. and also here first gzip to unzip the tar, then tar the .tar file. and the file should be LOWER case SOURCES.In the starter package, the actual tar filena
When generating u-boot an error occurs: stm32mp15-scmi-u-boot.dtsi:135.1-6 Label or path scmi not found. Following the steps in the OpenSTLinux 5.0 workshop document to update the device tree files. It mentions to include an scmi.dtsi file for u-boot for the specific board. Is there any more information how to do this? This is a custom board with an STM32MP157AAA3 using legacy power. (regulators not PMIC) and this board worked fine with a previous ECO system but in ECO 5.0.0 SCMI was introduced.
I have several projects already configured for STM32MP157C and I don't want to have to build them all over again if I can help it. Also, my team is asking I not move the Ecosystem (but if that is my only answer I will.)
Why are there different device trees for optee, TF-A, u-boot and linux kernel ? Since the hardware does not change between the boot stages, isn't it possible to consolidate it into one dts generated by CubeMX .The different boot modules consume the data form one dtb ? This will help to reduce maintenance and avoiding errors in compilation of the different modules .
I had the distribution package installed, deleted it and wanted to recreate it in another folder. However init repo gives the below message and repo sync only download the layers folder.repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-6.1-yocto-mickledore-mp1-v23.06.21Downloading Repo source from https://gerrit.googlesource.com/git-repo... A new version of repo (2.35) is available.... New version is available at: /media/user/H3D2P1/Tools/distro/.repo/repo/repo... The launcher is run from: /usr/bin/repo!!! The launcher is not writable. Please talk to your sysadmin or distro!!! to get an update installed.
Hello.I have a question about STM32CubeProgrammer.I'm going to use the STM32 system image in Raspberry Pi.How do I flash an STM32 image on an SD card that will be mounted on a Raspberry Pi board?I want to use STM32 program in Windows environment as much as possible.The following are the methods and results I thought of.1. Fit formatted SD card into Raspberry Pi and connect to Rsap's micro5 pin and Windows PC, and USB from 'STM32CubeProgrammer' >>> Program not recognized 2. Connect with Windows PC using SD Card Reader >>> Program not recognized
WORKING:> sudo java -jar SetupSTM32CubeProgrammer-2.11.0.exeFAILS> sudo java -jar SetupSTM32CubeProgrammer-2.12.0.exeCompletely uninstalled JAVA, then reinstalled - no change.Reviewed several community posts, no solution yet.Environment: macOS Big Sur
I am trying to configure some HW IP to work with the M4 core of the STM32MP157, I can find only the GPIO already assigned to other IPs ont he development Kit.How to configure GPIO's and configure interrupts related to SPI DMA from the M4 side?Attached is a screenshot for the available GPIO's on CubeMX.
We are using the STM32MP157AABx device in our project and updating to the v5.0 Ecosystem and STM32CubeMX v6.9.0.When we generate our device tree files, the optee-os device tree tries to include:#include "stm32mp15xxab-pinctrl.dtsi"This file is not found in the optee-os-stm32mp v3.19.0 source tree referenced in the v5.0 Ecosystem.I have had to manually modify the dts to include:# include "stm32mp15xxac-pinctrl.dtsi"This is the closest match, but not equivalent to the number of gpio banks in the AABx package.Is this an issue with optee-os-stm32mp source code, the CubeMX tool, or user error in our configuration?
Hello, I am currently researching about possibilities in STM32MP1 dual core. I am trying to create user program that uses HW Semaphore. I used program from wiki:https://wiki.st.com/stm32mpu/wiki/Hardware_spinlock_overview.and makefile described here:https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Create_a_simple_hello-world_applicationwith including builded linux kernel 5.15.67.But I can't build program, because of numerous errors. I was trying to resolve some of errors by including them hard-coded way into user space program, but I think, that is not the correct way to fix these errors. How to properly build program including kernel files? Is there any include to be included when using kernel files? Or any other makefile switch? See attached files...Thanks for any tips.Some of compile errors:Original post (with less description):https://community.st.com/t5/other-tools-mpu/stm32mp1-build-user-program-with-hwspinlock
Isn't there a script file for generating RAW images for eMMC like the "create_sdcard_from_flashlayout.sh" file for generating RAW images for SD?Also, why is SD memory mapping different from eMMC memory mapping?
HelloI detect (regular) ST-LINK v32 with STM2CubeProgrammer, but it remains not connectrd.Please tell me what is the problem and how to fix this problem. ?[LOG]18:18:10 : STM32CubeProgrammer API v2.14.0 | Windows-32Bits18:18:13 : UR connection mode is defined with the HWrst reset mode18:18:13 : ST-LINK SN : 002800205553500E2039325618:18:13 : ST-LINK FW : V3J12M3B5S118:18:13 : Board : STLINK-V3SET18:18:13 : Voltage : 3.33V18:18:13 : SWD freq : 8000 KHz18:18:13 : Connect mode: Normal18:18:13 : Reset mode : Hardware reset18:18:13 : Device ID : 0x50018:18:13 : Revision ID : Rev Z
Hello, I am currently researching about possibilities in STM32MP1 dual core. I am trying to create user program that uses HW Semaphore. On M4 side is everything clear. But I cannot create program for A7 core. Here is what I think that I suppose to do:- create user program with hwspinlock.h- build corresponding version of linux kernel- include kernel files to makefile.But when I try to make my custom program, i got much errors from kernel source tree.For me, how to properly include hwspinlock framework is not clear from ST wiki or hwspinlock framework documentation.Thanks for any response.
Hello,I'm trying to debug a firmware in production mode using STM32cudeIDE, running on the cortex M4 on the stm32MP157F. When debugger starts it seems g_pfnVectors isn't properly created. When I stops debugger and view the dissambled code I found that it always points on the first line:No source available for "g_pfnVectors() at 0x0"Also, I had changed the linker script to be able to allocated more memory for the SDRAM using both memory regions available (at 0x10000000 and 0x30000000):MEMORY{RETRAM_interrupts (xrw) : ORIGIN = 0x00000000, LENGTH = 0x00000600SRAM1_text (xrw) : ORIGIN = 0x10000000, LENGTH = 256KSRAM2_data (xrw) : ORIGIN = 0x30020000, LENGTH = 200KSRAM3_ipc_shm (xrw) : ORIGIN = 0x10040000, LENGTH = 64KSRAM4 (xrw) : ORIGIN = 0x10050000, LENGTH = 64K}Also, here is my definition for the DT's memory reservation :Spoiler (Highlight to read)reserved-memory {#address-cells = <1>;#size-cells = <1>;ranges; /* USER CODE BEGIN reserved-memory */ mcuram2:mcuram2@1
Hello,I'm trying to debug a firmware in production mode using STM32cudeIDE, but when debugger starts it seems g_pfnVectors isn't properly created. When I stops debugger and view the dissambled code I found that it always points on the first line:00000000: bge.n 0xffffffbabut the address 0xffffffba is not assigned to my firmware; if I go to this point I got the following message: ffffffba: Failed to execute MI command: -data-disassemble -s 4294967226 -e 4294967319 -- 3 Error message from debugger back end: Cannot access memory at address 0xffffffbaHave you any suggestion on how to solve this issue??Here the memory definition of linker script:MEMORY { RETRAM_interrupts (xrw) : ORIGIN = 0x00000000, LENGTH = 0x00000298 RAM2_ipc_shm (xrw) : ORIGIN = 0x00001000, LENGTH = 0x00011000 FLASH_text (rx) : ORIGIN = 0x10000000, LENGTH = 0x00040000 RAM1_data (xrw) : ORIGIN = 0x10040000, LENGTH = 0x00020000 }and here's DT's memory reservation :reserved-
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.