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
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 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
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
Hplip is only 3.19.12, and there is no higher version.
My package is http://packages.openstlinux.st.com/3.1 ,I cannot update cups.When I install cups,the "cups : Depends: libdbus-1-3 (>= 1.12.20) but 1.12.16-r0.1 is to be installed" appeared,How can I install the libdbus-1-3 (>= 1.12.20) ? Thanks.
I want to store some configurations in the OTP. The datasheet states that the OTP word 59 to 95 are free for users. In DK boards, OTP word 59 is already claimed as board_id, so I use word 60 as my starting point. Currently, I am using both environments 3.0 (using yocto) and 2.0 (using buildroot) and I prepared the OTP map by modifying the tf-a device tree.--------------------------------------------- &bsec{ status = "okay"; secure-status = "okay"; board_id: board_id@ec { reg = <0xec 0x4>; st,non-secure-otp; }; conf_sec: conf_sec@f0 { reg = <0xf0 0x40>; st,non-secure-otp; }; }; --------------------------------------------- &nvmem_layout { nvmem-cells = <&cfg0_otp>, <&part_number_otp>, <&monotonic_otp>, <&nand_otp>, <&uid_otp>, <&package_otp>, <&hw2_otp>, <&pkh_otp>, <&board_id>, <&conf_sec>; nvmem-cell-name
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.