MDK MIDDLEWARE: STM32F2/F4/F7 EMAC checksum offload bug
Information in this knowledgebase article applies to:
Middleware v7.4.1 supports the IP fragmentation feature, but after enabling this option in Net_Config_ETH_0.h, sending packets larger than MTU (fragmented packets) always fail with bad packet checksum errors.
What can cause these errors?
There is a silicon problem in the EMAC peripheral on STM32F2xx/F4xx/F7xx devices when calculating the checksum of data packets. When automatic checksum insertion is enabled and the packet is an IPv4 frame fragment, the MAC may incorrectly insert the checksum into the packet. This corrupts the payload data and generates checksum errors at the receiver.
This issue can be patched using updated CMSIS EMAC drivers included in the newer Device Family Packs (DFP). Update your STM32F2xx, STM32F4xx or STM32F7xx DFP pack to a newer version.
Alternatively you can download the updated CMSIS EMAC driver files in the attachment and copy them to your current STM32F2xx, STM32F4xx or STM32F7xx DFP pack folder, e.g. C:\Keil\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\CMSIS\Driver\
This issue has been reported to STMicroelectronics.
Request the files attached to this knowledgebase article.
Last Reviewed: Thursday, November 30, 2017
of your data.