-
Notifications
You must be signed in to change notification settings - Fork 353
Description
Caution
The Issues are strictly limited for the reporting of problem encountered with the software provided in this project.
For any other problem related to the STM32 product, the performance, the hardware characteristics and boards, the tools the environment in general, please post a topic in the ST Community/STM32 MCUs forum
Describe the set-up
- STM32H747I DISCO
- gcc version 9.2.0 (zephyr-crosstool-NG 1.24.0.4)
- This HAL version 1.8.0
Describe the bug
Please refer to zephyrproject-rtos/zephyr#29915 and zephyrproject-rtos/zephyr#29944
To summarize, TxCpltCallback is not called all the time, and it appears to be related to some incomplete memory transactions. A fix is described in provided links: adding __DSB() to a certain line in this HAL and before/after the HAL_ETH_Transmit_IT resolves it, depending on compiler optimization level. However, adding the line in this HAL works in all cases.
How To Reproduce
-
Zephyr ethernet driver waits for a semaphore from TxCpltCallback, but it never comes as the callback is never called. So it times out.
-
Ethernet driver for stm32h7xx (stm32h7xx_hal_eth.c)
-
Just transmit an ethernet package
-
Follow the scenario in the provided links.
Additional context
If you have a first analysis or patch correction, thank you to share your proposal.
Screenshots
If applicable, add screenshots to help explain your problem.