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
Hy, I'm following all the wiki on stm32MP1-DK2 , I wan't to install PPP on it but like other things (htop for example) seems to be not available, maybe a stupid question but an answer will be appreciated,this is the log:apt-get install pppreading package list ... donebuilding dependency tree...doneE: unable to locate package pppThanks, Antonio
the kernel log is : mdio_bus stmmac-0: MDIO device at address 7 is missing.phy chip is : ksz9031mpu is : stm32mp157cac3my dts config is : &ethernet0 { status = "okay"; pinctrl-0 = <&ethernet0_rgmii_pins_a>; pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>; pinctrl-names = "default", "sleep"; clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx", "ethstp", "eth-ck"; clocks = <&rcc ETHMAC>, <&rcc ETHTX>, <&rcc ETHRX>, <&rcc ETHSTP>, <&rcc ETHCK_K>; assigned-clocks = <&rcc ETHCK_K>; assigned-clock-parents = <&rcc PLL4_P>; assigned-clock-rates = <125000000>; phy-mode = "rgmii"; max-speed = <1000>; phy-handle = <&phy0>; st,eth_clk_sel; mdio0 { #address-cells = <1>; #size-cells = <0>; compatible = "snps,dwmac-mdio"; reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;phy0: ethernet-phy@7 { reg = <7>; /* * These skews assume the STM32MP1 has no internal delay. * * Al
Hi all,I'm currently trying to change the CPU frequency of my STM32MP157C-DK2. - Without success...Here is what I've done.Change 'stm32mp15xa.dtsi' for Kernel and TF-Adiff --git a/arch/arm/boot/dts/stm32mp15xa.dtsi b/arch/arm/boot/dts/stm32mp15xa.dtsi index 5ed7e594f..3389a6094 100644 --- a/arch/arm/boot/dts/stm32mp15xa.dtsi +++ b/arch/arm/boot/dts/stm32mp15xa.dtsi @@ -8,6 +8,11 @@ opp-650000000 { opp-hz = /bits/ 64 <650000000>; opp-microvolt = <1200000>; - opp-supported-hw = <0x1>; + opp-supported-hw = <0x2>; }; + opp-400000000 { + opp-hz = /bits/ 64 <400000000>; + opp-microvolt = <1200000>; + opp-supported-hw = <0x2>; + }2 };Then I deployed the *.dtb and the TF-A binary as described in here.After that I can see, that the new frequency is known, but I also get a first error:root@stm32mp1-disco:/sys/devices/system/cpu/cpufreq/policy0# cat cpuinfo_cur_freq [ 1647.252207] cpu cpu0: dev_pm_opp_set_rate: failed to find current OPP for freq 65
I'm working on project that is including ADC, timers and virtual UART. I'm working on STM32MP157C-DK2 board. So I started from example OpenAMP_FreeRTOS_echo from CubeMP1 software package v1.2.0. I'm using CubeIDE v1.4.0. When I reboot STM32MP1 and debug for the first time after reboot, and place breakpoint into HAL_TIM_PeriodElapsedCallback function in which HAL_IncTick is called, everything is fine and the program is stopping here. Problem is that when I debug for the second time (and software on M4 is stopped before 2nd debug) program is not stopping on breakpoint and the HAL tick is not getting incremented. The code is not being modified, it is the same as in examples. On boot I choose the device tree number 3 which is used for M4 examples. Question is why is this happening and do I need to reboot the board every time I want to debug?Thanks in advance,Nenad
I am working on developing firmware to run on the M4 coprocessor and I have been trying to do some basic testing using my own code and the OpenAMP_TTY_Echo example. I am debugging on an stm32mp157c-dk1 and I am using STM32CubeIDE. This issue is also occurring on a dk2. I noticed that it freezes after the function call MX_OPENAMP_Init(RPMSG_REMOTE,NULL);Here is the call stack: My issue appears to be identical to this issue posted a while back. I don't have the "PeriphCommonClock_Config" function mentioned and I am unable to remove rsc_table.c as openamp.c depends on it. Additionally the project by default includes STM32MP157CXX in the preprocessor directives, so I am unsure of what else I can do to alleviate this issue. Is it an issue that I am in engineering boot mode? Any guidance would be greatly appreciated.
I have a question,I have no any USB-OTG interface can be used to help me burning and I can only use SD card to run my board. How can I make this SD-Card work only on linux command lines for example "dd" and so on. I have made tf-a uboot kernel(image) dtb and rootfs. I wish someone can help me ,thank you so much.
Hello,I'd like use several gpio buttons to onboard CN2 connector (STM gpios PF0, PF1, PF3, PF4, PF6, PF8). So I've add following string to stm32mp157c-dk2.dts filebuttonkeys { compatible = "gpio-keys"; left-key { label="Left key"; gpios=<&gpiof 0 GPIO_ACTIVE_LOW>; linux,code=<105>; };evtest gives me multiple events (press/release) when key not pressed. So what is cause of this and how to correct add gpio processing?Thanks,Alex
I’m having some trouble getting u-boot to boot from eMMC. I’ve evaluated my system using the DK2(using SDCARD) and i’m now porting to a custom board. The custom board contains a STM32MP157CAB and a eMCC connected at sdmmc2.My u-boot devicetree(stm32mp157c-cau-mx-u-boot.dtsi) contains the following:aliases { usb0 = &usbotg_hs; mmc0 = &sdmmc2; };The first problem is the eMMC flashlayout file created by the distribution package, it is configured to use MMC1 by default. Is there a way to edit something that the file is created with MCC0 as default?The second problem is with u-boot, it stills want to boot from MMC1:NOTICE: CPU: STM32MP157CAB Rev.B NOTICE: Model: <product name> INFO: Reset reason (0x15): INFO: Power-on Reset (rst_por) INFO: Using EMMC INFO: Instance 2 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.2-r1.0(debug):v2.2-dirty NOTICE: BL2: Built : 13:36:23, Oct 22 2019 INFO: Using crypto library 'stm32_crypto_lib' INFO: BL2: Doing platform setup INFO: RAM: DDR
I am following the link https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Let%27s_start/Execute_basic_commandsi have connected the board to a LAN and the following result is obtained:Why don't i see the "inet xx.xx.xx.xx/xx brd xx.xx.xx.xx scope global dynamic eth0" feild?
Hi:When I do not enable sdmmc1 in the device tree , a null pointer error will appear, as follows: Unable to handle kernel NULL pointer dereference at virtual address 00000020[ 4.406546] pgd = b1eff48d[ 4.409244] [00000020] *pgd=00000000[ 4.412826] Internal error: Oops: 17 [#1] PREEMPT SMP ARM[ 4.418223] Modules linked in:[ 4.421278] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.4.31 #1[ 4.426906] mmc0: new high speed SDIO card at address 0001[ 4.427205] Hardware name: STM32 (Device Tree Support)[ 4.437847] PC is at mp1_mgate_clk_disable_safe+0x38/0x8c[ 4.443241] LR is at mp1_mgate_clk_disable_safe+0x10/0x8c[ 4.448644] pc : [<c06304bc>] lr : [<c0630494>] psr: 60000093[ 4.454918] sp : df083eb0 ip : 00000000 fp : 00000008[ 4.460149] r10: 0000013a r9 : c11004a4 r8 : c115f858[ 4.465380] r7 : 00
I am building uboot spl for DDR testing of a custom board based on the STM32MP157FAD1 MPU. The design uses I2C6 to communicate with the PMIC. The following error occurs: "stm32mp1_clk_get_id: clk id 142 not found". Any suggestions on why the I2C6 clock is "not found" would be appreciated.I2C4/6 are configured for HSI.Full console output:U-Boot SPL 2020.01-stm32mp-r2 (Jan 07 2021 - 16:14:48 -0500)Model: STMicroelectronics custom STM32CubeMX boardstm32mp1_clk_get_id: clk id 142 not foundboard_init_f: probe failed clk=0 reset=0 pinctrl=0 power=-22RAM: DDR3-DDR3L 16bits 533000Khzstm32mp1_clk_get_id: clk id 142 not found0:DDR_RESETDDR>
Hi,for our testing i want to activate the fullspeed OTG on the Pins PA11,PA12. VBUS_OTG is not routet out the Chip on the DK2. Is it possbile to use the FS phy on PA11/PA12 on the DK2 board?Best regards,Niklas
Hi, I just approach to STM32MP1 and want to port some project from STM32F4/L4 to M4 Core in STM32MP1. To start, I'm just trying use engineering mode fisrt. I have a STM32MP157C-DK2 board and a new project is generated by STM32CubeMX, all configurations is default and I'm using STM32CubeMP1 v1.3.0. Unfortunately, I always reach an issue when HAL_RCC_OscConfig always returns HAL_ERROR each time called from SystemClock_Config. Specifically, the following if condition in stm32mp1xx_hal_rcc.c is reached and my program stucks in an infinite loop. if (IS_HSE_IN_USE()) { if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState != RCC_HSE_ON)) { return HAL_ERROR; } } Am I missing something or I must write my own HAL_RCC_OscConfig? Again, all configurations is kept as default of STM32MP157C-DK2 board. Thanks, Bao Son.
Hello,I have a custom board with an eMMC on it and with no SD card available. In the U-Boot device tree I have the following line (On sdmmc2 is my eMMC):aliases{ mmc0 = &sdmmc2; };The U-Boot seems to partly have a problem with it. Commands like "mmc write" or "mmc info" use the MMC Interface 0 - they set "curr_device" to 0 by default (unless I use "mmc dev 1"). And this is not a problem.However, the MMC environment works with MMC interface 1, which leads to failures. What I find the most weird is the following function in the mmc.c file:static int env_mmc_save(void) { ALLOC_CACHE_ALIGN_BUFFER(env_t, env_new, 1); int dev = mmc_get_env_dev(); ... }The variable dev in the line 4 is always 1, I guess since the eMMC is set as boot instance 1.To sum up: The MMC functions work by default with mmc 0, the env MMC works by defalt with mmc 1.PS: I could maybe use the MMC 1 and use the 'mmc dev 1' at the beginning, but the STMCubeProgrammer cannot flash the devce as it comes with an error
I am using 2 passive tamper detection in my board that is routed to PC1 (TAMP_IN3) and PC13 (TAMP_IN1) and I want to handle both tamper pins events in linux userspace. I have achieved my goal by adding small code at plat_setup and disabling tamper in device tree. I also modified the init function in stm32_tamp so it won't reset my configuration. In addition, I also disable secure tamp to make sure that I can modify the register in linux userspace. Inside my small code, I reset the tamp configuration first (copy from stm32_tamp_reset_register) and enable TAMP_IN1 and TAMP_IN3 by setting bit 0 and bit 2 in TAMP_CR1 register. I also set bit 0 and bit 2 in TAMP_CR2 register as I don't want to erase backup memory after tamper event. This my code snippet/* Enable clock */ mmio_write_32(RCC_BASE | RCC_MP_APB5ENSETR, mmio_read_32(RCC_BASE | RCC_MP_APB5ENSETR) | RCC_MP_APB5ENSETR_RTCAPBEN); /* unlock rtc protection */ mmio_write_32(PWR_BASE + 0x00, mmio_read_32(PWR_BASE + 0x00) | (1 <
Hello,I'm trying to connect some sensors to the I2C1 connectors of the STM32MP157A-DK1 and read datas from a linux application (Cortex A7). It doesn't works...But I successfully read data from the I2C5 connectors from the Cortex M4 processor.I used the following configuration from STM32CubeMX for I2C1: But when i run #i2cdetect -y 0 #i2cdetect -y 1 #i2cdetect -y 2I don't see any of my devices: Here is the DeviceTree file (located in "\CA7\DeviceTree\Monitoring\kernel\stm32mp157a-monitoring-mx.dts")&i2c1{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c1_pins_mx>; pinctrl-1 = <&i2c1_sleep_pins_mx>; status = "okay"; /* USER CODE BEGIN i2c1 */ i2c-scl-rising-time-ns = <100>; i2c-scl-falling-time-ns = <7>; /delete-property/ dmas; /delete-property/ dma-names; hdmi-transmitter@39{ compatible = "sil,sii9022"; reg = <0x39>; iovcc-supply = <&v3v3_hdmi>; cvcc12-supply = <&v1v2_hdmi>; re
Hi,I am trying to use a STM32MP157C in combination with a lan9303 chip in mdio mode.when booting I get an error that says:LAN9303_MDIO: probe of stmmac-0:01 failed with error -22This prevents the driver from being loaded succesfully.I added the lan9303 according to the device tree bindings:&ethernet0 { status = "okay"; pinctrl-0 = <&ethernet0_rmii_pins_a>; pinctrl-1 = <&ethernet0_rmii_pins_sleep_a>; pinctrl-names = "default", "sleep"; phy-handle = <&switch>; phy-mode = "rmii"; max-speed = <1000>; mdio0 { #address-cells = <1>; #size-cells = <0>; switch: switch-phy@1 { compatible = "smsc,lan9303-mdio"; reg = <0>; ports { #address-cells = <1>; #size-cells = <0>; port@1 { reg = <0>; label = "cpu"; ethernet = <&ethernet0>; phy-mode = "rmii"; fixed-link { full-duplex
Hi:I encountered a strange problem when I compiled TF source code separately to generate xxserialboot.stm32 File, but found that there are always errors? eg:make -f $PWD/../Makefile.sdk TFA_DEVICETREE=stm32mp157c-dk2 TF_A_CONFIG=serialboot ELF_DEBUG_ENABLE='1' allBut complain about the compiler:arm-ostl-linux-gnueabi-gcc: error: unrecognized command line option '-mstrict-align'; did you mean '-Wstrict-aliasing'?But it's normal when I compile the trust file alone:make -f $PWD/../Makefile.sdk TFA_DEVICETREE=stm32mp157c-dk2 TF_A_CONFIG=trusted ELF_DEBUG_ENABLE='1' allHow can I fix this problem?Could you give me some advice?Best regards!
Hi,i have a question regarding to the IPCC Communication and the OPENAMP_check_for_message(); function. For example iam sending data from A7 to the M4. So the A7 will cause an RXO Interrupt at the M4. Now my Question ist when this Interrupts is cleared with the TXF Interrupt. Is it straight cleared when the RXO Interrupt occured and the data will only put to a Queue and the Queue of Data is read out via the OPENAMP_check_for_message() Function. Or is it like this that the A7 cant Send Data anymore as long the OPENAMP_check_for_message() didnt get a call, because this Function will trigger the TXF Interrupt. From my understanding it would be more efficient when the Interrupt is cleared straight and the data is enqueued in a Queue.
Hi there,After following this tutorial (and updating the compatible string): https://wiki.st.com/stm32mpu/wiki/OTG_device_tree_configurationI've managed to create a patch that adds these nodes to my device tree:... +&usbphyc { + status = "okay"; +}; + +&usbh_ehci { + phys = <&usbphyc_port0>, <&usbphyc_port1 1>; + phy-names = "usb1-phy", "usb2-phy"; + status = "okay"; +}; + +&usbphyc_port0 { + phy-supply = <&vdd_usb>; + vbus-supply = <&usb1vbus>; + vdda1v1-supply = <&reg11>; + vdda1v8-supply = <&reg18>; +}; + +&usbphyc_port1 { + phy-supply = <&vdd_usb>; + vbus-supply = <&usb2vbus>; + vdda1v1-supply = <&reg11>; + vdda1v8-supply = <&reg18>; +}; + +&usbotg_hs { + compatible = "st,stm32mp15-fsotg", "snps,dwc2"; + pinctrl-names = "default"; + pinctrl-0 = <&usbotg_hs_pins_a &usbotg_fs_dp_dm_pins_a>; /* configure OTG ID and full-speed data pins */ + vbus-supply
Good morning,I'm working on a C++ project to collect data from a peripheral sensor using the STM32MP157C-DK2.The estimated amount of data is at least 100 MB, so I have to use the DDR3 to store these data and then trasmit them over Ethernet using at the moment ONLY Cortex-A7 (no M4).The project is write in C++ language and NOT using CubeMX, so I'm asking how can I activate and use the DDR3.I've read some tutorials/documents from various sources:# https://www.st.com/en/microcontrollers-microprocessors/stm32mp157.html#documentation# https://wiki.st.com/stm32mpu/wiki/How_to_exchange_large_data_buffers_with_the_coprocessor_-_principle#rpmsg_sdb_driver# https://wiki.st.com/stm32mpu/wiki/How_to_exchange_large_data_buffers_with_the_coprocessor_-_exampleand consequently I wrote the code (you will find it here attached with the dts in the card partition called "bootfs"), but I always receive the cout message "Mapping param failed.".What I've to modify in the main code and, eventually, how/where
In our early evaluation phase, the stm32mp157 chip is ideal for our requirements - with the ability to do hard real-time processing with the M4 core but still have a Linux framework to develop interfaces to upstream processing applications. We feel that the DK2 Discovery board can be deployed in developed systems AS-IS until 'hardened' systems are needed for future military, space, and biomedical customers. The instrument technology we are developing is now being considered for phase-2 evaluation and studies with several interested clients but we need to know if the board will be available for a few years. In future 'hardened' systems, we and others will make our own boards using the stm32mp157 chip and request guidance regarding the long-term support commitment for the chip.Scott Tilden, PhDU of Arizona
I'm trying to get TIM7 interrupts working with the STM32MP157C-DK2 kit. I've added the necessary configuration to the DTS file:&m4_timers7 { pinctrl-names = "rproc_default"; pinctrl-0 = <&timer7_pins>; status = "okay"; };Do I need to enable the interrupt in the DTS file as well? I see in the M4 example DTS there is some configuration for a GPIO interrupt:&m4_rproc { m4_system_resources { status = "okay"; button { compatible = "rproc-srm-dev"; interrupt-parent = <&gpioa>; interrupts = <14 2>; interrupt-names = "irq"; status = "okay"; }; m4_led: m4_led { compatible = "rproc-srm-dev"; pinctrl-names = "rproc_default", "rproc_sleep"; pinctrl-0 = <&leds_orange_pins>; pinctrl-1 = <&leds_orange_sleep_pins>; status = "okay"; }; }; };On the M4 side: I've configured TIM7 in CubeMX (prescalar: 10000, period: 100, interrupt enabled). The only configuration I see for TIM7 comes from MX_TI
..
Hi,I flashed OS "en.FLASH-stm32mp1-openstlinux-5-4-dunfell-mp1-20-11-12.tar.xz" to board STM32MP157C-DK2. Then remove all the cable,and only remain a type C cable connected with my laptop Type C port.But the kit can't power on.Could you tell me how to let it to sink power as USB device,and source power as USB host?Thanks,QiZhang
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.