Hi, The cadence_gem does the TX checksum offload by:
/* Is checksum offload enabled? */ if (s->regs[GEM_DMACFG] & GEM_DMACFG_TXCSUM_OFFL) { net_checksum_calculate(tx_packet, total_bytes); } However this will only work for non-fragmented packets. For fragmented packets, it just corrupts the packets by inserting wrong checksum to the fist fragment, or corrupts the data to be sent in other fragments than the first one. Any idea of how to solve this cleanly? Regards, Bin