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
I followed ST wiki, success to display OTP by the command:STM32_Programmer_CLI.exe --connect port=usb1 -otp displThen I try to test writing a value to wordid 79 which currently is 0x00000000, and free for user.STM32_Programmer_CLI -c port=usb1 -otp program wordID=0x4F value=0x12345678No thing wrong, command return sucess: I display cmd again, it is till 0x00000000, even reset the board. Any one know what I am missing, please?
Hi,My test kit is STM32MP157C-DK2, the image is "st-example-image-qtwayland", the display is DSI display.I tested with procedure:1. run " /usr/share/examples/gui/analogclock/analogclock"get error message:"root@stm32mp1:~# /usr/share/examples/gui/analogclock/analogclock[ 1] Failed to open device: No such file or directory, Try again...[ 2] Failed to open device: No such file or directory, Try again...[ 3] Failed to open device: No such file or directory, Try again...[ 4] Failed to open device: No such file or directory, Try again...[ 5] _OpenDevice(1086): FATAL: Failed to open device, errno=No such file or directory."2. weston.sh stop3. run " /usr/share/examples/gui/analogclock/analogclock"get error message:"root@stm32mp1:~# /usr/share/examples/gui/analogclock/analogclockFailed to create wl_display (Connection refused)qt.qpa.plugin: Could not load the Qt platform plugin "wayland" in "" even though it was found.This application
Problem: After configuring the OTP pins in word 3 to the following:- Primary boot source : SD-card- Secondary boot source : FMC NANDAnd flashing the FMC nand with TF-A `tfa-*-nand.stm32` in the first sector using `nandwrite -p /dev/mtd0 /mnt/boot/tf-a-stm32mp153c-*-nand.stm32`I have a working booting setup using SD-card and u-boot. I have programmed OTP in the following way:First sense the lock register:`fuse sense 0 0x10000003`Validate that the lock register is 0. If not, then it is no longer possible to write the register. This is usually a sign that the boot sources have already been set. Read the value of word `3` in bank `0`. Either it is set or not. If it is set. Do nothingIf it is not set all `0`, Do next stepRun the sense command, this must be 0 or 0x21000000`fuse sense 0 3`When the sensing is complete, and it is determined that no values in OTP word 3 is set, we can proceed with programming the fuses. We choose:- The primary boot source to = 4 SD card. These belong to bi
I've followed this walkthrough perfectly: https://wiki.st.com/stm32mpu/wiki/How_to_perform_Secure_Boot_from_Distribution_package#Distribution_package_with_signed_FIPand I get a "Not able to find "None" (socname stm32mp15) path from current BBPATH var: ..." when trying to have TF-A find the FIP signing key.Please help
I am currently running in Engineering mode. In this application I am not using Linux on the A7, so I want to enable the trace SWO output from the M4 processor.
Hi, In both SSP documents: 1) AN5510 - Overview of the secure secret provisioning (SSP) on STM32MP1 Series 2) AN5054 - Secure programming using STM32CubeProgrammer It is written that "SSP" & "HSM" tabs expect: """ Encryption key and nonce files: The encryption key and nonce file can be selected by entering their paths (absolute or relative), or by selection with the Open button. Notice that sizes must be respected (16 bytes for the key and 12 bytes for nonce). """ But when I try to do this process ("SSP" tab, still waiting for STHSMv2 to arrive) I get "Size of ssp_nonce.bin is expected to be 16 bytes" both in GUI & in CLI modes -- latest tool version (2.10) note1: when I provide a 16 byte nonce, it works note2: There are a couple of locations in AN5510 where it is written that nonce is 16 bytes or 128 bit, the rest say it is 12 bytes. Is this an error with the STM32 Trusted Package Creator tool or with the Documentation ?? Side question
Hi everyone!I see unexpected values when measuring VREFINT. The ADC measures around 1.18V, on some boards even 1.16V, which is outside the tolerance according to the datasheet: Reading the calibration value VREFIN_CAL from OTP memory returns a value of 0x5E29 (1,214V). Considering my ambient temperature of ~25°C, I would not expect the measured value to differ too much from VREFINT_CAL.I then used VREFIN_CAL to calculate VREF+ according to section 29.4.35 in RM0436:With the ADC-measurement of VINTREF, this calculates to VREF+= 2.57V. The actual voltage (measured with a multimeter) is 2.502V.All the other ADC channels are pretty accurate.My DeviceTree setup for ADC2:adc2:adc@100{ st,adc-channels = <12 13 14>; st,min-sample-time-nsecs = <50000>; assigned-resolution-bits = <16>; status = "okay"; channel@12 { reg = <12>; label = "vsense"; status = "okay"; }; channel@13 { reg = <13>; label = "vrefint"; status = "okay"; }; channel@14 {
Hello,I'm trying to trigger a conversion in a frequency of 4700 HZ. To do so I used cubeMX to configure the ADC to work at DMA circular mode and to be triggered by TIM4 trigger out event on the rising edge. I made sure to activate DMA in high priority in circular mode. I also set timer 4 on internal clock as clock source and set the TRGO at update event. in the main code I made sure to start the ADC in DMA mode and to start the timer. Yet I do not have any conversions happening and I fail to receive any data.During debugging I notice that the code goes through the DMA interrupt handler, HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma), function. But that's about it I'm new to this so I'm having a hard time trying to get this to work and I thought I might find some help here. Any help is appreciated.The ADC MX code:static void MX_ADC1_Init(void) { /* USER CODE BEGIN ADC1_Init 0 */ /* USER CODE END ADC1_Init 0 */ ADC_MultiModeTypeDef multimode = {0}; ADC_ChannelConfTy
Hi,We see signing + encryption bootloader on STM32MP13xx,But on STM32MP15xx, there is only signing. The raw binary still start from offset 256 of the signed file. This only make sure the board doesn't run a strange bootloader, but doesn't prevent someone copy raw bootloader from SD.Is there any way to protect bootloader binary on STM32MP15xx lines?
I need giga ethernet working on linux.Is it possible with the STM32MP?Please let me know if you have any test results with iperf.Thank you for answers.
From instructions, I opened two console: Console 1: openocd -f board/stm32mp15x_dk2.cfg This looks good as output: ``` ... Info : stm32mp15x.cm4: Cortex-M4 r0p1 processor detected Info : stm32mp15x.cm4: target has 6 breakpoints, 4 watchpoints Info : stm32mp15x.cpu0: hardware has 6 breakpoints, 4 watchpoints Info : stm32mp15x.cpu0 rev 5, partnum c07, arch f, variant 0, implementor 41 Info : stm32mp15x.cpu0: MPIDR level2 0, cluster 0, core 0, multi core, no SMT Info : stm32mp15x.cm4: external reset detected Info : stm32mp15x.cpu1: hardware has 6 breakpoints, 4 watchpoints Info : stm32mp15x.cpu1 rev 5, partnum c07, arch f, variant 0, implementor 41 Info : stm32mp15x.cpu1: MPIDR level2 0, cluster 0, core 1, multi core, no SMT Info : gdb port disabled Info : gdb port disabled Info : gdb port disabled Info : starting gdb server for stm32mp15x.cpu0 on 3333 Info : Listening on port 3333 for gdb connections Info : starting gdb server for stm32mp15x.cm4 on 3334 Info : Listening on port 33
When i tried the commend below (<Your_full_path_to> was already corrected to the path that content Setup.gdb), ```gdbgui -g "arm-ostl-linux-gnueabi-gdb -x <Your_full_path_to>/Setup.gdb"```I would like to use ST-Link for debug uboot, but the web browse always open and failed to ask for "127.0.0.1:5000"
There is a'ifdef CONFIG_SPL_BUILD' in stm32mp1.h, Makefile or many files, but there is no setting in the Kconfig file.
From user manual, from OTP word 59th for user to store sensitive information, meaning there is a way to prevent read them by STM32cube tool for non-secure application.We see the way to lock them which mean can't not change values, any document that tell how to hide these registers from STM32cube tool for non-secure application.
Hi,I usestm32mp157c and the filesystem runs emmc default. But I want it to change it and run at ramfs. I addedCONFIG_BLK_DEV_INITRD=yCONFIG_RD_GZIP=yCONFIG_RD_BZIP2=yCONFIG_RD_LZMA=yCONFIG_RD_XZ=yCONFIG_RD_LZO=yCONFIG_RD_LZ4=yin kernel config file. Also,DISTRO_FEATURES_append = " ram"IMAGE_FSTYPES_append = " cpio.xz"in local.conf. After above additon operation, i haveuImage-initramfs.binBut I don't know how to set the settings in U-boot. Like where should the starting address be? Can you help me with this?Regards.Ali MesutInce
Hello, I'm trying to leverage the MCO capability of the STM32MP1, but I don't success. I want to have LSE on MCO1 and HSE on MCO2. I'm using TFA -> uboot -> linux and I can build with Yocto or Buildroot.Which steps should be done during TFA, uboot and on Linux ? I have tried different combination but there is no behaviour.Also, I'm only doing device tree configuration, maybe I'm missing something elsewhere.I have seen following resource and I'm confused on the way to proceed because of the warning on MCO pins :https://community.st.com/s/article/FAQ-STM32MP1-bring-up-troubleshooting-guideThanks for your input,Best regards,Charles B
Hi there,I have a custom CPU: STM32MP153CAB Rev.Z board and setting up a redundant bootloader setup on eMMC. In order for that to work I should be able to switch between boot partitions.This is how I'm trying to do that in u-boot:STM32MP> mmc partconf 1 EXT_CSD[179], PARTITION_CONFIG: BOOT_ACK: 0x1 BOOT_PARTITION_ENABLE: 0x1 PARTITION_ACCESS: 0x0Then I've got expected output from TF-A:INFO: Using EMMC INFO: Instance 2 INFO: Boot used partition fsbl1When I switch to a second partition though:STM32MP> mmc partconf 1 1 2 0 STM32MP> mmc partconf 1 EXT_CSD[179], PARTITION_CONFIG: BOOT_ACK: 0x1 BOOT_PARTITION_ENABLE: 0x2 PARTITION_ACCESS: 0x0I still get the same message in TF-A:INFO: Using EMMC INFO: Instance 2 INFO: Boot used partition fsbl1What am I missing here? Is boot_context populated correctly by TF-A? Is second boot partition used at all by ROM?
Hi ~I've designed custom board of STM32MP157C. 1. I created my own device tree using CubeMX refer to the below article. https://wiki.st.com/stm32mpu/wiki/How_to_create_your_board_device_tree2. I also created own machine refer to the below article. https://wiki.st.com/stm32mpu/wiki/How_to_create_your_own_machine3. st-image-weston build was successful.4. so now, I want to modify the linux kernel device tree. and I finded article below .. https://wiki.st.com/stm32mpu/wiki/How_to_cross-compile_with_the_Distribution_Package Run "devtool modify virtual/kernel" command. workspace directory was created successfully. but I can not find my device tree in path below. ./workspace/sources/linux-stm32mp/arch/arm/boot/dts My device tree files placed at "layers/meta-st/meta-st-stm32mp-addons/mx".How to solve it ?Thanks.
Hi, I wanted to read and implement the secure boot on STM32MPU157C-DK2 board. But this page gives permission error. It seems that need to be fixed:wiki.st.com/stm32mpu/wiki/STM32MP15_secure_bootThanks.
I have problem with partition encryption on STM32MP153C with hardware ciphers. I use custom initramfs with installed: coreutils keyutils lvm2 e2fsprogs-mke2fs util-linux cryptsetup cryptodev-module cryptodev-testsI was also configure all crypto modules:In kernel defconfig:CONFIG_CRYPTO_DEV_STM32_CRC=mCONFIG_CRYPTO_DEV_STM32_HASH=mCONFIG_CRYPTO_DEV_STM32_CRYP=mAnd device tree:&hash1 { status = "okay";}; &cryp1 { status = "okay";}; &crc1 { status = "okay";};All drivers are visible:grep -B1 -A2 stm32 /proc/crypto|grep -v kernelname : xts(aes)driver : xts(stm32-ecb-aes)module : xtspriority : 200--name : crc32cdriver : stm32-crc32priority : 200--name : crc32driver : stm32-crc32priority : 200--name : ccm(aes)driver&
I was looking into using OpenAMP to support an event driven IPC between Linux A7 core and a FreeRTOS based application running on the M4. The sample application (STM32CubeMP15 Firmware Package )documentation in the says:"The actual bare metal version of OpenAMP is not designed to work with FreeROTS. as a consequence,it's not advised to use FreeRTOS operations inside OpenAMP interrupt"I was hoping I could use something like xEventGroupSetBitsFromISR(). Anyone have advise on the best way to signal a new OpenAMP message is available to be processed to a FreeRTOS thread or is polling a flag the only way. I was hoping to make this event driven. Thanks,Eoin
I have a custom board built upon the stm32mp157f. (Therefore, have custom device trees.)I currently am seeing an exception in TF-A that I cannot explain.INFO: Reset reason (0x14): INFO: Pad Reset from NRST INFO: PMIC version = 0x21 INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe3000 INFO: FCONF: Reading firmware configuration information for: stm32mp_io INFO: Using EMMC INFO: Instance 2 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.4-r1.0(debug):v2.4-dirty NOTICE: BL2: Built : 16:43:51, Nov 17 2020 INFO: BL2: Doing platform setup INFO: RAM: DDR3-DDR3L 16bits 533000Khz WARNING: Couldn't find property st,phy-cal in dtb INFO: Memory size = 0x20000000 (512 MB) ASSERT: drivers/partition/gpt.c:24After the initial flashing of the eMMC with the STMCubeProgrammer, it boots fine the first time. Every boot thereafter (cold or warm), I get the above exception.Any idea what this means, how to debug or solve it?
the ssh print:U-Boot 2021.10-stm32mp-r1 (Jul 20 2022 - 10:52:56 +0800)CPU: STM32MP157DAA Rev.ZModel: STMicroelectronics STM32MP157D eval daughterBoard: stm32mp1 in trusted - stm32image mode (st,stm32mp157d-ed1)DRAM: 1 GiBClocks:- MPU : 650 MHz- MCU : 208.878 MHz- AXI : 266.500 MHz- PER : 24 MHz- DDR : 533 MHzWDT: Started with servicing (32s timeout)NAND: 0 MiBMMC: STM32 SD/MMC: 0, STM32 SD/MMC: 1Loading Environment from nowhere... OKIn: serialOut: serialErr: serialinvalid MAC address 0 in OTP 00:00:00:00:00:00Net:Error: ethernet@5800a000 address not set.No ethernet found.Hit any key to stop autoboot: 0Boot over usb0!DFU alt info setting: donecrq->brequest:0x0#and no more.
@Alain FERRARI
Hy there!I'm new on ST platforms and development environments (I'm used to Netbeans-like ones).Well, I would like to copy (automatically) both .elf executable and the .map files in given folder after building the projet.This folder ("Out") is placed inside the project path.I tried by adding a post-building step but i'm not able to find makefile variables sutch as ${ProjName} and so on...I need those variables to automate the process throgh several configurations.Where are defined those variable and what they contain?I saw them, looking at the project options but I'm not able to find a guide to use them to write a building step as I'm used to do in other environments...Thank You in advance for your support!iTTy
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.