Keil Logo

MDK MIDDLEWARE: STM32F2/F4/F7 EMAC checksum offload bug

Information in this knowledgebase article applies to:

  • ARM-MDK v5.x
  • STM32F2xx DFP v2.7.0 and older versions
  • STM32F4xx DFP v2.11.0 and older versions
  • STM32F7xx DFP v2.9.0 and older versions


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

Did this article provide the answer you needed?
Not Sure
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.