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 was planning on using the STM32MP157A-DK2 to drive a three lane DSI display but the Microcontroller only supports two lanes..
We are using SoM MYC-YA157C from MYIR with STM32MP1 onboard. MYIR creates pretty device-tree hierarchy, which is handy for update. CubeMX creates partial single device tree file. I would like to merge some of it parts (pinmxing, for instance) with MYIR device tree into resulting DTS file. What is a proper way for doing it ? PS. Xilinx provides system-user.dtsi file which is included AFTER all system DTSI`s in such way that it adds or overrides contents of system DTSI while merging into final DTS file. It is very convenient. Does STM provide similar capabilities ?
I used the latest official version(2021-03-31) to configure the stm32mp157c-dk2 of the optee version, and used the official tutorial to generate fip.bin and burn it to the corresponding partition, but it seems that the image is not checked,in other worlds, I did not see the successful prompt for the verification of the mirror image.
Can I use STUSB1602 with STM32MP1?The STM32MP157C-DK2 has an STUSB1600, but it is not a PD controller, so I am reviewing the STUSB1602.STUSB1602 seems to support only STM32F0, STM32F4, STM32G, and STM32L.I'm curious to see if it is possible to port and use the STUSB1602 related driver to STM32MP1. Is there any related document?
Hi, I have tried to build the Distribution Package following this guide: https://wiki.st.com/stm32mpu/index.php/STM32MP1_Distribution_Package#Building_the_OpenSTLinux_distributionMy goal is to run a build that is as small as possible. Therefore I choose openstlinux-eglfs as distro (without Wayland and X11): PC $> DISTRO=openstlinux-eglfs MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.shPC $> bitbake st-image-coreI haven't made any modifications in any file but the build fails. I have inserted the output of "PC $> bitbake st-image-core" in bitbake_outputWhy does the build fail?
I'm working with the STM32MP157C-DK2 dev board and I've noticed that sometimes when powering up the board there is a 20-30 second delay where I don't even see the boot up messages. It's doesn't appear to be U-boot related either. Has anyone else notice this? and if so were you able to fix it?
Hi,I have already post a similar issue in the previous post.I'm using initramfs shell using initramfs-framework in Yocto environment.I found that watchdog reboots after some time (the default is 32 seconds) if the initramfs doesn't fully boot the system by entering systemd.The weird thing is though, this happens even WATCHDOG_HANDLE_BOOT_ENABLED is set correctly.According to the source code of watchdog_dev.c in Linux Kernel if WATCHDOG_HANDLE_BOOT_ENABLED=y is set the kernel watchdog thread should handle watchdog correctly until a userspace program (systemd?) takes over /dev/watchdog. However, watchdog still reboots the board.https://elixir.bootlin.com/linux/v4.14/source/drivers/watchdog/watchdog_dev.c#L1124I set similar yocto environments (with WATCHDOG_HANDLE_BOOT_ENABLED=y) in Raspberry Pi 3 and Beaglebone Black, and their kernel seems to handle watchdog correctly as they don't reboot in initramfs environment for a long time. Only STM32MP1 seems to have problems with watchdog.
Hi, we are currently bring up our custom STM32MP157 Board. We get in any constellation a "DDR addr bus test: can't access memory @ 0xc000004"We think that our crystal is correctly running at 24 Mhz because we connecting over USB to the Board. Also the Voltages is correctly. We use the same DDR Chip, that is on the DK2 ( Micron ), with the same settings. We run a little bit out of ideas how to handle this. We also got DDR errors in Uboot SPL.Have you any hints beyond the "Bring up" Guide?Best regards
Hi,I just upgraded my STM32CubeProgrammer to 2.7 and now getting error that can't find tf-a-stm32mp157c-dk2-serialboot.stm32.I tried this on three other images that have worked in past, get same error.tf-a-stm32mp157c-dk2-serialboot.stm32 is not found on file system for any of these images.Specifics:target: stm32mp157c-dk2host: Windows 10Images built on WSL.Unfortunately I deleted 2.4 before installing 2.7, also tried 2.6, 2.5 and get same problem.Have any suggestions ?
Hello,How to install a USB printer support? I've tried apt-get install cups but this no work. Thanks,Alex.
..
Openssl fails to convert the certificate from der to pem. Is this expected? I wrote a c program in OpenSSL to extract the public key, which seems to work, but I need to verify its correctness. Is there another tool like openssl that I can verify the key in the certificate? Any thoughts, etc?
Hello Guys.I have tried bitbake(st-image-core) after a long time.But I can't proceed with the following error.This error is partial, and many of the same errors appear(Attach the error as text).I don't know how to fix it. I need help.can't find file to patch at input line 39367 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |diff --git a/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk b/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk |index 4188cc58a..2ab8e8d4b 100644 |--- a/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk |+++ b/plat/st/stm32mp1/sp_min/sp_min-stm32mp1.mk -------------------------- No file to patch. Skipping patch. 2 out of 2 hunks ignored can't find file to patch at input line 39419 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |diff --git a/plat/st/stm32mp1/sp_min/sp_min_setup.c b/plat/st/stm32mp1/sp_min/sp_min_setup.c |index e10dfbfc0..f57630604 100644 |--- a
Hi:Dear friends, there is a very strange problem here. I use timer 1(STM32MP157AAC) to output PWM wave. In engineering mode, the output of PWM wave is normal, but when it comes to mass production mode, the waveform is interrupted. Here are my configuration steps:1)First of all, I configure the clock to be 209 MB, the frequency to be 800K, and the duty cycle to be 50%, as follows:htim1.Instance = TIM1; htim1.Init.Prescaler = 0; htim1.Init.CounterMode = TIM_COUNTERMODE_UP; htim1.Init.Period = 250-1; htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim1.Init.RepetitionCounter = 0; htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; if (HAL_TIM_Base_Init(&htim1) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } if (HAL_TIM_PWM_Init(&htim1) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_T
We are using the STM32MP15-ecosystem-v2.0.0 on an EV1 board.We need to disable the sdmmc1 / sdmmc2 nodes in the DT, so we are adding the following at the end stm32mp157c-ev1.dts:&sdmmc1 { status = "disabled"; }; &sdmmc2 { status = "disabled"; };However this results in a kernel crash, apparently related to the NAND code.I am attaching (part of) the kernel traces here:[ 3.906739] ubi0: attaching mtd3 [ 6.876347] ubi0: scanning is finished [ 6.893628] ubi0: attached mtd3 (name "UBI", size 1018 MiB) [ 6.897839] ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 253952 bytes [ 6.904740] ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 4096 [ 6.911450] ubi0: VID header offset: 4096 (aligned 4096), data offset: 8192 [ 6.918459] ubi0: good PEBs: 4068, bad PEBs: 4, corrupted PEBs: 0 [ 6.924558] ubi0: user volume: 6, internal volumes: 1, max. volumes count: 128 [ 6.931778] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 404136786 [ 6.940914]
Hello,iam trying to implement more or less the same example as with the virtualUARTs with multiple Endpoints just with the rpmsg_char driver and plain endpoints without virtualUART on M4 side. Iam struggling to get multiple Endpoints to work. One is working fine and the other is created as well. But i cant send and receive data through the second endpoint. Does anyone have an example with multiple endpoints with the rpmsg_char driver?
HOLD_BOOT: After an power-on reset the BOOT_MCU is '0' and we can set thebit to '1', after an MCU reset (MCU_RST) the M4 FW start (CRun). All is fine. But after that we can't reset the BOOT_MCU bit back to '0'. The BOOT_MCU bitremains on '1' and we can't reach the HOLD_BOOT state again.Is there any ideas why the BOOT_MCU bit remains on '1' ?!
I am trying to enable some GPIO as external interrupts and have run the GPIO example where the user button is set as an interrupt. Is there any resources that show what GPIO can be used as external interrupts? For example, I would like to set one of the Arduino GPIO as an external interrupt pin if possible.
Hello again dark electronics wizards.I've been looking for some documentation about how to use an external flash memory with my stm32 designs.Is there any magic way to do this? Or could anyome point me to the right way?My goal is to add a qspi controlled flash chip instead of a sd card for my mass storage usb thing.Many thanks in advanceCheers
We have a custom board based on the stm32mp151 that shall boot from emmc. I can flash alright, but when I switch the boot pins, the boot device remains on usb. I can see from arch/arm/mach-stm32mp/cpu.c, that boot_device is set to usb, here is the debug line:setup_boot_mode: boot_ctx=0x2203 => boot_mode=22, instance=1 forced=3when I break into u-boot, and manually set boot_device to mmc, it works. Also, it does not seem to pick up the default environment:CPU: STM32MP151CAC Rev.Z Model: STMicroelectronics custom STM32CubeMX board Board: stm32mp1 in trusted mode (st,stm32mp151c-0068-new-linux-mx) DRAM: 128 MiB Clocks: - MPU : 650 MHz - MCU : 208 MHz - AXI : 266.500 MHz - PER : 24 MHz - DDR : 533 MHz STM32Programmer key pressed, entering download mode... WDT: Not found! NAND: 0 MiB MMC: STM32 SD/MMC: 0 Loading Environment from MMC... MMC Device 1 not found *** Warning - No MMC card found, using default environment In: serial@40010000 Out: serial@40010000 Err: serial@40010000 set
Burning STM32MP1 via USB DFU works fine. When I try to burn via USART I stick with errors:GetPhase command not acknowledged after 3 retriesParition 0xbb not found in TSV FileFlash layout is the same in both cases (attached). Is it possible to burn STM32MP1 from anything else than USB DFU (USART or JTAG/SWD) ?
I'm DDR tuning a custom STM32MP157F board with 4GB DDR3. All DDR tests are passing however I get the following tuning failure for Bit Deskew: Failed [Cannot Deskew lines, there is no PASS region] and Eye Training: [Cannot DQS timings, there is no PASS region]What exactly does this mean? How can it fail tuning but pass testing?DDR>test 0 ... loop 1: 0/17 test failed Result: Pass [loop 1: 17 tests passed] DDR>tuning 1 execute 1:Bit de-skew Result: Failed [Cannot Deskew lines, there is no PASS region] Result: Failed [Cannot Deskew lines, there is no PASS region] Result: Failed [error = 2] DDR>tuning 2 execute 2:Eye Training Result: Failed [Cannot DQS timings, there is no PASS region] Byte 1, DQS unit = 3, phase = 3 Result: Failed [error = 1] DDR>tuning 3 execute 3:Display registers Byte 0 Dekew result, bit0 delay, bit1 delay...bit8 delay 2 2 2 2 2 2 2 2 dxndllcr: [5a0041cc] val:400a0000 dxnqdstr: [5a0041d4] val:3db02001 dxndqtr: [5a0041d0] val:aaaaaaaa Byte 1 Dek
Full text from op-tee: Important caveats Currently no OP-TEE platform is able to support retrieval of the Hardware Unique Key or Chip ID required for secure operation. For all platforms, a constant key is used, resulting in no protection against decryption, or Secure Storage duplication to other devices. This is because information about how to retrieve key data from the SoC is considered sensitive by the vendors and it is not freely available. In OP-TEE, there are apis for reading the keys generically from "One-Time Programmable" memory, or OTP. But there are no existing platform implementations. To allow Secure Storage to operate securely on your platform, you must define implementations in your platform code for: void tee_otp_get_hw_unique_key(struct tee_hw_unique_key *hwkey); int tee_otp_get_die_id(uint8_t *buffer, size_t len); These implementations should fetch the key data from your SoC-specific e-fuses, or crypto unit according to the method
Dear STM32 MPU Community,We are please to announce that New MP1 Ecosystem V3.0.0 is available.Please check out the Release note on STM32 Wiki to get complete description of content and new features.It contains : Openstlinux-5.10-dunfell-mp1-21-03-31STM32MP1Cube V1.4.0STM32CubeIDE V1.6.1STM32CubeMX V6.2.1STM32CubeProgrammer V2.7.0Please be aware and read carefully documentation related to integration of FIP and FCONF support in Openstlinux-5.10-dunfell-mp1-21-03-31 :TF-A_overviewHow_to_configure_TF-A_BL2How_to_configure_TF-A_FW_CONFIGHow_to_configure_TF-A_FIPSecurity_overviewAs usual, this new release has been opportunity to update and enrich the Wiki Online User Document ! Please visit https://wiki.st.com/stm32mpu/wiki/Main_PageWiki for previous ecosystem are still available : Ecosystem-V2-WikiEcosystem-V1-WikiHope you will enjoy this new release.In case any questions, issues .. this Community is made for you !
I have read in the wiki that the xlinux packages for ai inference and etc are only for evaluation purposes. I need to have more clarifications so to decide to use it in our product! Is there a coming release of software ready for production for example.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.