[rtems-libbsd commit] Revert " Return the default TX and RX hardware checksum for the Cadence driver to off. "

Chris Johns chrisj at rtems.org
Mon Jun 22 00:43:54 UTC 2015


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

Author:    Chris Johns <chrisj at rtems.org>
Date:      Mon Jun 22 10:39:41 2015 +1000

Revert "Return the default TX and RX hardware checksum for the Cadence driver to off."

This reverts commit 54fb9f01f86286ecea3093f6f524afec86d6313f.

This change adds white space changes. A better solution is to revert
the original change.

---

 freebsd/sys/dev/cadence/if_cgem.c | 19 ++++++++++++-------
 libbsd.txt                        | 14 +-------------
 2 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/freebsd/sys/dev/cadence/if_cgem.c b/freebsd/sys/dev/cadence/if_cgem.c
index d2af8c9..27ce43d 100644
--- a/freebsd/sys/dev/cadence/if_cgem.c
+++ b/freebsd/sys/dev/cadence/if_cgem.c
@@ -329,7 +329,7 @@ cgem_rx_filter(struct cgem_softc *sc)
 	net_cfg = RD4(sc, CGEM_NET_CFG);
 
 	net_cfg &= ~(CGEM_NET_CFG_MULTI_HASH_EN |
-		     CGEM_NET_CFG_NO_BCAST |
+		     CGEM_NET_CFG_NO_BCAST | 
 		     CGEM_NET_CFG_COPY_ALL);
 
 	if ((ifp->if_flags & IFF_PROMISC) != 0)
@@ -462,7 +462,7 @@ cgem_setup_descs(struct cgem_softc *sc)
 	err = bus_dmamap_load(sc->desc_dma_tag, sc->txring_dma_map,
 			      (void *)sc->txring,
 			      CGEM_NUM_TX_DESCS*sizeof(struct cgem_tx_desc),
-			      cgem_getaddr, &sc->txring_physaddr,
+			      cgem_getaddr, &sc->txring_physaddr, 
 			      BUS_DMA_NOWAIT);
 	if (err)
 		return (err);
@@ -514,7 +514,7 @@ cgem_fill_rqueue(struct cgem_softc *sc)
 
 #ifndef __rtems__
 		/* Load map and plug in physical address. */
-		if (bus_dmamap_load_mbuf_sg(sc->mbuf_dma_tag,
+		if (bus_dmamap_load_mbuf_sg(sc->mbuf_dma_tag, 
 			      sc->rxring_m_dmamap[sc->rxring_hd_ptr], m,
 			      segs, &nsegs, BUS_DMA_NOWAIT)) {
 			sc->rxdmamapfails++;
@@ -542,7 +542,7 @@ cgem_fill_rqueue(struct cgem_softc *sc)
 			sc->rxring_hd_ptr = 0;
 		} else
 			sc->rxring[sc->rxring_hd_ptr++].addr = segs[0].ds_addr;
-
+			
 		sc->rxring_queued++;
 	}
 }
@@ -1129,7 +1129,7 @@ cgem_config(struct cgem_softc *sc)
 	/* Write the rx and tx descriptor ring addresses to the QBAR regs. */
 	WR4(sc, CGEM_RX_QBAR, (uint32_t) sc->rxring_physaddr);
 	WR4(sc, CGEM_TX_QBAR, (uint32_t) sc->txring_physaddr);
-
+	
 	/* Enable rx and tx. */
 	sc->net_ctl_shadow |= (CGEM_NET_CTRL_TX_EN | CGEM_NET_CTRL_RX_EN);
 	WR4(sc, CGEM_NET_CTRL, sc->net_ctl_shadow);
@@ -1323,7 +1323,7 @@ cgem_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 				     ~CGEM_NET_CFG_RX_CHKSUM_OFFLD_EN);
 			}
 		}
-		if ((ifp->if_capenable & (IFCAP_RXCSUM | IFCAP_TXCSUM)) ==
+		if ((ifp->if_capenable & (IFCAP_RXCSUM | IFCAP_TXCSUM)) == 
 		    (IFCAP_RXCSUM | IFCAP_TXCSUM))
 			ifp->if_capenable |= IFCAP_VLAN_HWCSUM;
 		else
@@ -1423,7 +1423,7 @@ cgem_miibus_writereg(device_t dev, int phy, int reg, int data)
 {
 	struct cgem_softc *sc = device_get_softc(dev);
 	int tries;
-
+	
 	WR4(sc, CGEM_PHY_MAINT,
 	    CGEM_PHY_MAINT_CLAUSE_22 | CGEM_PHY_MAINT_MUST_10 |
 	    CGEM_PHY_MAINT_OP_WRITE |
@@ -1778,10 +1778,15 @@ cgem_attach(device_t dev)
 	ifp->if_init = cgem_init;
 	ifp->if_capabilities |= IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6 |
 		IFCAP_VLAN_MTU | IFCAP_VLAN_HWCSUM;
+#ifndef __rtems__
 	/* Disable hardware checksumming by default. */
 	ifp->if_hwassist = 0;
 	ifp->if_capenable = ifp->if_capabilities &
 		~(IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6 | IFCAP_VLAN_HWCSUM);
+#else /* __rtems__ */
+	ifp->if_hwassist = CGEM_CKSUM_ASSIST;
+	ifp->if_capenable = ifp->if_capabilities;
+#endif /* __rtems__ */
 	ifp->if_snd.ifq_drv_maxlen = CGEM_NUM_TX_DESCS;
 	IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen);
 	IFQ_SET_READY(&ifp->if_snd);
diff --git a/libbsd.txt b/libbsd.txt
index c0af13a..0a8378a 100644
--- a/libbsd.txt
+++ b/libbsd.txt
@@ -1075,24 +1075,12 @@ Broadcom BCM4401	_bsd_bfe_pcimodule_sys_init	Links
 Broadcom BCM570x 	_bsd_bge_pcimodule_sys_init	Needs Symbols (A)
 E1000 IGB 		_bsd_igb_pcimodule_sys_init	Links
 E1000 EM		_bsd_em_pcimodule_sys_init	Links
-Cadence			?				Links, works.
 ----
 
+
 Symbols (A)
          pci_get_vpd_ident
 
-=== Cadence ===
-
-The cadence driver works on the Xilinx Zynq platform. The hardware checksum
-support works on real hardware but does not seem to be supported on qemu
-therefore the default state is disabled and it can be enabled from the shell
-with:
-
-  # ifconfig cgem0 rxcsum txcsum
-
-or with an ioctl call to the network interface driver with SIOCSIFCAP and the
-mask IFCAP_TXCSUM and IFCAP_RXCSUM set.
-
 == Problems to report to FreeBSD ==
 
 The MMAP_NOT_AVAILABLE define is inverted on its usage.  When it is



More information about the vc mailing list