[rtems-libbsd commit] if_atsam: Do not disable the Ethernet CRC

Sebastian Huber sebh at rtems.org
Wed May 11 14:01:45 UTC 2022


Module:    rtems-libbsd
Branch:    master
Commit:    5b62a8bfa19875cbf0a38b0419e107b06ff61472
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=5b62a8bfa19875cbf0a38b0419e107b06ff61472

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed May  4 15:31:45 2022 +0200

if_atsam: Do not disable the Ethernet CRC

The Ethernet CRC and padding must be always generated by the MAC.

Update #4652.

---

 rtemsbsd/sys/dev/atsam/if_atsam.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/rtemsbsd/sys/dev/atsam/if_atsam.c b/rtemsbsd/sys/dev/atsam/if_atsam.c
index 21d639d1..4ac38e96 100644
--- a/rtemsbsd/sys/dev/atsam/if_atsam.c
+++ b/rtemsbsd/sys/dev/atsam/if_atsam.c
@@ -678,7 +678,6 @@ static bool if_atsam_send_packet(if_atsam_softc *sc, struct mbuf *m)
 	uint32_t tmp_val = 0;
 	Gmac *pHw = sc->Gmac_inst.gGmacd.pHw;
 	bool success;
-	int csum_flags = m->m_pkthdr.csum_flags;
 
 	if_atsam_tx_bd_cleanup(sc);
 	/* Wait for interrupt in case no buffer descriptors are available */
@@ -725,15 +724,9 @@ static bool if_atsam_send_packet(if_atsam_softc *sc, struct mbuf *m)
 		 * processed
 		 */
 		if (m == NULL) {
+			_ARM_Data_synchronization_barrier();
 			tmp_val |= GMAC_TX_SET_EOF;
 			tmp_val &= ~GMAC_TX_SET_USED;
-			if ((csum_flags & (CSUM_IP | CSUM_TCP | CSUM_UDP |
-			    CSUM_TCP_IPV6 | CSUM_UDP_IPV6)) != 0) {
-				start_packet_tx_bd->status.bm.bNoCRC = 0;
-			} else {
-				start_packet_tx_bd->status.bm.bNoCRC = 1;
-			}
-			_ARM_Data_synchronization_barrier();
 			cur->status.val = tmp_val;
 			start_packet_tx_bd->status.val &= ~GMAC_TX_SET_USED;
 			_ARM_Data_synchronization_barrier();



More information about the vc mailing list