Get ready for the STM32 Summit 2026 | Online, November 3
Join conversations with your peers and ST experts. Explore the full potential of STM32 microprocessors for your embedded design.
Most recent activity
Still trying to get a custom board with a STM32MP151AAC and 512MB ram to boot from eMMC. Switched to using this guide.After various new issues (one of them being this), I managed to bitbake a set that I'm able to fully program with CubeProgrammer.However, that was the only good news about that. The board doesn't boot from eMMC, instead i get the following output.NOTICE: Model: STMicroelectronics custom STM32CubeMX board - openstlinux-6.1-yocto-mickledore-mp1-v23.06.21 INFO: PMIC version = 0x21 INFO: Reset reason (0x15): INFO: Power-on Reset (rst_por) INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000 INFO: FCONF: Reading firmware configuration information for: stm32mp_io INFO: Using EMMC INFO: Instance 2 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.8-stm32mp1-r1.0(debug):lts-v2.8.6-dirty(ff0bd5f9) NOTICE: BL2: Built : 17:57:15, Apr 21 2023 WARNING: Failed to access image id=3 (-2) ERROR: Unable to find a metadata partition WARNING: Failed to set reference to ima
On STM32MP1 discrete power. 512MB DDR , TF-A & OPTEE configure in SYSRAME/TC:0 0 Panic at core/arch/arm/plat-stm32mp1/cpu_opp.c:106 <set_clock_then_voltage>Log attached.This message seems to unique for stm32mp1 in OP-TEE code. no other platform source file seems to use this message.Looking further this cpu_opp.c file is not part of OP-TEE on github in ST's stm32mp1 , thus ST unique and added afterwards to the ECO system. Seems to be patch. So that anyone familiar, outside ST, with what this code is doing is probably zero. The source does not reveal much about what is is doing. (no comments) w/o support this may take much more time to debug.Move the regulator part in the DT (in root USER area) after the CPU clocks. Same result. what does ST's code expect ?Added some debug traces:D/TC:0 0 stm32mp1_cpu_opp_get_dt_subnode:296 Found OPP 0 (650000kHz/1200mV) from DTD/TC:0 0 stm32mp1_cpu_opp_get_dt_subnode:302 DEBUG: clk_cpu: 650000000D/TC:0 0 stm32mp1_cpu_opp_get_
HelloI hope you are doing wellI read the TF-A documentation and I found out that there is a POC for TPM service that measures event logs during startup. Source: https://trustedfirmware-a.readthedocs.io/en/latest/design_documents/measured_boot_poc.htmlIs there any work that has been done on the STM32MP1 boards?We have a STPM4RasPI board with TPM supported in u-boot and kernel however is there a way to use it in TF-A/OPTEE to achieve measured boot?ThanksBest
Hi All,I have an question when i used STM32MP157.I encountered an issue when using DMA to store the values of ADC conversions.When I store the data from the ADC_DMA_Buffer to the ADC_DATA_Buffer in the HAL_ADC_ConvCpltCallback() function.Then check the buffer values using STM32CubeIDE. I notice that the ADC_DMA_Buffer[1] and ADC_DATA_Buffer[1], ADC_DATA_Buffer[3] ... do not match. What could be the reason for this? Here is the code and ADC1 configuration: (TIM2 frequency is 1000 Hz (1ms)) uint32_t ADC_DMA_Buffer[2] ={0}; uint32_t ADC_DATA_Buffer[500] ={0}; uint16_t ADC_Conversion_Done_Count = 0; void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) { if(hadc->Instance == ADC1) { ADC_DATA_Buffer[ADC_Conversion_Done_Count] = ADC_DMA_Buffer[0]; ADC_Conversion_Done_Count++; ADC_DATA_Buffer[ADC_Conversion_Done_Count] = ADC_DMA_Buffer[1]; ADC_Conversion_Done_Count++; ADC_Conversion_Done_Count = ADC_Conversion_Done_Count % 500; } } int main(void) { HAL_Init(); if(I
Hey all, I'm trying to test DRM/KMS on an STM32MP1 board, but I can't do this while weston is taking over DRM. The documentation says to quit weston, then run any KMS stuff while it's not running. This is all well and good, and this is the way it's supposed to work on any Linux system, but any time weston leaves the screen, the board becomes unresponsive.EDIT:I built my own kernel image, and it's is working now.
Hi ~I am using STM32MP157C MPU + STPMIC1A for my custom board with ecosystem 4.1And unfortunately I'm wrestling with some problem regarding PMIC.I produced 30 boards for sample.Some board is working fine but some board has power issue.1) Custom board configurationMy custom board consists of a CPU and BASE board like EV1 Evaluation board.CPU board has STM32MP157C MPU + STPMIC1A + DDR, eMMC.Base board has various peripheral such as USB, I/O, HDMI, microSD and so on.2) PMIC issueBoot device is eMMC (SDINBDG4-16G-XI1).STPMIC1A BUCK4's default output level is 3.3V and eMMC use it for VCC.In some boards without any problem, BUCK4 output 3.3V normally.In some boards with the problem, BUCK4 output 3.17V abnormally.Plus, it looks like as following with a cycle time of about 250ms,As a result, the board fails to boot.Yellow is 5VIN and Blue is BUCK4 output.3) VIN ThresholdThe first is a picture of a normal board andthe second is a picture of an abnormal board.4) OthersAll the pictures above were
When we use the PMIC values from DK2 example.1 . ERROR: regul ldo3: max value 750 is invalidWARNING: register_pmic:600 failed to register ldo3PANIC at PC : 0x2fff05cb2 Next we tried setting the ldo3 max, min values to 3V and 1.8V and it was working fine but had next layer of issue as mentioned below.NOTICE: CPU: STM32MP157AAD Rev.ZNOTICE: Model: MelodySOMINFO: PMIC version = 0x21WARNING: VDD unknownNOTICE: Reset reason (0x15):INFO: Power-on Reset (rst_por)INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000INFO: FCONF: Reading firmware configuration information for: stm32mp_ioINFO: Using USBINFO: Instance 2INFO: Boot used partition fsbl1NOTICE: BL2: v2.6-stm32mp1-r1.0(debug):v2.6-dirtyNOTICE: BL2: Built : 13:14:26, Nov 23 2021INFO: BL2: Doing platform setupINFO: &
Followed thishttps://wiki.st.com/stm32mpu/wiki/STM32MP1_Developer_Package#Starting_up_the_SDKand thishttps://wiki.st.com/stm32mpu/nsfr_img_auth.php/5/57/U-Boot.README.HOW_TO.txtat:make stm32mp15_trusted_defconfigmake DEVICE_TREE=stm32mp157c-dk2 allbuild goes fine but no .stm32 files in ../build-trustedit shows:-rw-r--r-- 1 user user 932 Sep 28 21:38 Makefiledrwxr-xr-x 4 user user 4096 Sep 28 21:35 scriptslrwxrwxrwx 1 user user 184 Sep 28 21:38 source -> <path>/u-boot-stm32mp-2018.11-r0/build-trustedSame formake stm32mp15_basic_defconfigmake DEVICE_TREE=stm32mp157c-dk2 allnor does this result in any filesmake -f $PWD/../Makefile.sdk allgives an rror:cp: cannot stat <path>/Developer-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/sources/arm-openstlinux_weston-linux-gnueabi/u-boot-stm32mp-2018.11-r0/build-basic/../build-trusted/u-boot.stm32': No such file or directorycp: cannot stat '<path>/Developer-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/s
Select a new prject in CibeMX this case STM32Mp157AAA ) Select PZ1 and PZ2 pin. Configure Pz1 output assign PZ2 for EXT IN and assign to Cortex M4Generate MX output fileIssue 1: No GPIO pin initliaziation code is generated !Load project i n AX6 workbench toolAdded manual GPIO and code to main.cIssue 2: When compiling. most errors are related to EXTI (example below) It seems stm32mp1xx_hal.exti.h and .c are not included and compiled into the project. This is probably casued by that CubeMX did not include the GPIO pins How to do add the files to the project to compile ? The "includes" in the project does point to the include folder with the exti files.Also noticed that when adding an I2C port, CubeMX onlu prpvided one set of SCL/SCA pin option (port H) while clicking the pins on the matrix there are many more pins supporting I2C ports. for example ZP5/6 are not shown as a choice but can support I2C.I am able to compile the demo projects from the DK2/MP1 CubeMX package and add GPIO and eX
Today got an update message in SW4 Eclipse to update Did that. Now when trying to start "Debug" on an STM32MP1 board Exclipse just exits. The error is as follows. Debug files atttched.Getting frustrated with the AC6/STM32MP1/Eclipse solution as a development environment ...Will go evaluate other platforms if the STM32MP1 environment and experience does not get stable soon.OpenSTM32/plugins/com.st.stm32ide.mpu.externaltools.openocd.linux64_1.0.0.201902141520/resources/openocd-mpu/bin/openocd -d1 -f skeleton Debug (1).cfg -s /media/user/H3D1P2/Personal/2019/Projects/OpenSTM/Pangu/skeleton -s /media/user/H3D1P2/Tools/OpenSTM32/plugins/com.st.stm32ide.mpu.debug_1.1.0.201904120827/resources/openocd/st_scripts -c gdb_port 3333 -c tcl_port 6666 -c telnet_port 4444 ## A fatal error has been detected by the Java Runtime Environment:## SIGSEGV (0xb) at pc=0x00007f4b99aa973d, pid=19624, tid=0x00007f4bdd45a700## JRE version: Java(TM) SE Runtime Environment (8.0_151-b12) (build 1.8.0_151-b12)#
As in a different post, The TF-A build did not create the FIP binaries after deleting the FIP build folder.This article does not describe how to create a new FIP binary. only how to update. very confusing !The fiptool does provide a create function but its not listed as one the options in this page: very confusing !How to configure TF-AHow to use the "Create" option ?
The Device Tree configuration link . https://wiki.st.com/stm32mpu/wiki/STM32_MPU_device_tree does not include scmi.dstiAfter a rough time lot to wade through trial an errors, we were able to reduce the SCMI errors. First we added #include "stm32mp15-scmi.dtsi" and then stm32mp157a-<board>-scmi.dtsi copied from the ev1-scmi.dts but removed i2C4 because this board if quite the same as EV1 but does not use PMIC/I2C4 . if this is correct change is our biggest guess but it reduced most of the scmi error less one., as follows:The U-boot build failed with:/soc/usbphyc@5a006000/usb-phy@0: Reference to non-existent node or label "scmi_vdd_usb"However, the workshop for STM32MP15 documentation shows the following to be added/* USER CODE BEGIN usbphyc_port0 */phy-supply = <&scmi_vdd_usb>;/* USER CODE END usbphyc_port0 */After searching the whole ecosystem with grep -Rnw . -e 'scmi_vdd_usb'for this definition, only the following 3 files, besides our file, in the whole EC
For a custom board configured in CubeMX usingSTM32MP157AAA3 , UART4, 512MB DDR3L, (4Gx16) external crystal (HSE, LSE), and discrete power regulator, no PMIC, device trees were generated with CubeMXwhen compiling optree errors and warnings occur.[1] Wrong CFG_DRAM_SIZE 1024MBytes, in device-tree: 512MBytes. The TF-A and U-boot .dts files contain the same setting for memory and do not fail.memory@c0000000 {device_type = "memory";reg = <0xc0000000 0x20000000>;When setting memory to 0x40000000 instead of 0x20000000 it passes. Why is this ?[2] Warnings in files (not changed, default provided by ECO system). Audio/I2S is not even configured in CubeMX.core/arch/arm/dts/stm32mp157.dtsi:20.21-35.5: Warning (avoid_unnecessary_addr_size): /soc/dsi@5a000000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" propertycore/arch/arm/dts/stm32mp151.dtsi:416.22-428.5: Warning (unique_unit_address): /soc/spi@4000b000: duplicate u
After compiling TF-A, uboot and optee, the flashing of the first mage xxx-usb.stm2 using the CLI tool ends with a wait for completion of the download this fails. The UART report a panic. Any idea how to look further. is this a problems with TF-A device tree or could it be from uboot or optee as the binaries in and output pf those build depend on each other ? Any way to reduce or isolate where it it going wrong to reduce the effort for looking around and trial and errors ? Could it just be .dtb file TF-A generated ?This board ran fine with a previous ECO system.CubeProgrammer:File download completeTime elapsed during download operation: 00:00:03.039RUNNING Program ...Address: : 0x1DFU status = 0DFU State = 5bwPollTimeout = 1sending a dfu end of download requestDFU status = 0DFU State = 7bwPollTimeout = 1libusb get status error [-7] : LIBUSB_ERROR_TIMEOUTlibusb get status error [-7] : LIBUSB_ERROR_TIMEOUTlibusb control transfer error [-7] : LIBUSB_ERROR_TIMEOUTReconnecting...
For the MP15 the workshop informs to include, for TF-A vdd_sd for sdmmc1 in the USER section of sdmmc1.. This particular board uses discrete legacy regulator power. when commenting these the lines, the build goes trough. Could this causes issues ? Should thes vdd_sd labels be included in the device tree ? if, yes, how and where ? There was a patch for vdd i uboot and kernel but not for tf-a where vddd move to scmi:./arm-ostl-linux-gnueabi/linux-stm32mp-6.1.28-stm32mp-r1-r0/0023-v6.1-stm32mp-r1-DEVICETREE.patch:4398:- vdd_sd: vdd-sd {./arm-ostl-linux-gnueabi/linux-stm32mp-6.1.28-stm32mp-r1-r0/0023-v6.1-stm32mp-r1-DEVICETREE.patch:4759:+ scmi_vdd_sd: voltd-vdd-sd {./arm-ostl-linux-gnueabi/u-boot-stm32mp-v2022.10-stm32mp-r1-r0/0004-v2022.10-stm32mp-r1-DEVICETREE.patch:3828:- vdd_sd: vdd-sd {./arm-ostl-linux-gnueabi/u-boot-stm32mp-v2022.10-stm32mp-r1-r0/0004-v2022.10-stm32mp-r1-DEVICETREE.patch:4200:+ scmi_vdd_sd: voltd-vdd-sd {and vdd_sd is only defined in./arm-ost
$ make stm32mp15_trusted_defconfig$ make menuconfig# disable PMIC power and enable legacy power in device drivers => power$ savemake DEVICETREE=stm32mp157a-board-mx cleanmake DEVICETREE=stm32mp157a-board-mx allWhy the code needs pmic when pmic is disabled ?LD u-bootarm-ostl-linux-gnueabi-ld.bfd: drivers/power/power_core.o: in function `pmic_dump':/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-gnueabi/u-boot-stm32mp-v2022.10-stm32mp-r1-r0/u-boot-tm32mp-v2022.10-stm32mp-r1/drivers/power/power_core.c:95: undefined reference to `pmic_reg_read'arm-ostl-linux-gnueabi-ld.bfd: drivers/power/power_core.o: in function `do_pmic':/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-gnueabi/u-boot-stm32mp-v2022.10-stm32mp-r1-r0/u-boot-stm32mp-v2022.10-stm32mp-r1/drivers/power/power_core.c:163: undefined refer
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
Hello,The QC for STLINK-V3PWR assembled in France seems to be very bad. I received a unit that doesn't work out of the box (when USB is connected the status leds stay off, AUX power outputs 3.3V, host computer doesn't detect V3PWR).The same host computer works just fine with another V3PWR unit. I decided to check the faulty unit out to see if there is a trivial fix for the issue (since the return shipping to the distributor is quite expensive). I found out that the USB3340 constantly has RESETB signal low, since it also has VCCIO applied this means that it is effectively disabled and tristated. Trying to trace where RESETB goes, I found U35 on the other side partially lifted, underneath U35 there was a small SMD resistor propping it up. I don't know how this could have passed QC.Reworking U35 unfortunately did not improve anything. Unfortunately there are not schematics available for the V3PWR to make such troubleshooting easier. U35 seems to be a dual op-amp.... Is ther
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
Hi, I have an STM32MP135F-DK board, and I want to set LDO2 and get an output voltage of 3.3V. I have read a document ( Integration of STM32MP13x MPU product lines and STPMIC1D / STPMIC1A on a wall adapter supply) which states that LDO2 must be set after boot sequence by software. Unfortunately I could not find a way to do that. I am stuck and any help is appreciated.
i am using openstlinux starter package use in stm32mp135-dk. i want to know how to upload a video in sd card of board and also how to play in board.
i have download the embedded wizard example from https://www.embedded-wizard.de/platforms/stmicroelectronics/stm32mp1 this website.now i am confusing that how i can run this builed example in stm32MP135 ?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.