Hardware calculation of IP and TCP checksum on BF-518


I am using EMAC unit on BF-518 and using hardware based IP and TCP checksum by setting RXCKS and RXDWA bits in EMAC_SYSCTL register.

I received the IP header and payload checksum but having difficulties to validate the checksum.

My question is how the hardware compute the checksum (using 32-bit or 16-bit big-endian or little-endian) and at what bytes i have to consider to validate calculated checksum?

Is there any example available to explain this?



  • 0
    •  Analog Employees 
    on Jul 9, 2021 7:25 AM


    Apologies for the long delay in response. I would suggest you to look into the ethernet example code that may help to validate the checksum. You would get the ethernet example code on VisualDSP++ installation path as given below,
    C:\Program Files (x86)\Analog Devices\VisualDSP 5.1.2\Blackfin\Examples\ADSP-BF518F EZ-Board\Power_On_Self_Test

    You may use as reference an application note EE-295 that is a beginner’s guide to Ethernet 802.3 provides an overview of the Ethernet specification. Please find the link in below,