mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-05-14 05:19:26 +08:00
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.
This commit is contained in:
parent
54fb9f01f8
commit
82830ce063
@ -329,7 +329,7 @@ cgem_rx_filter(struct cgem_softc *sc)
|
|||||||
net_cfg = RD4(sc, CGEM_NET_CFG);
|
net_cfg = RD4(sc, CGEM_NET_CFG);
|
||||||
|
|
||||||
net_cfg &= ~(CGEM_NET_CFG_MULTI_HASH_EN |
|
net_cfg &= ~(CGEM_NET_CFG_MULTI_HASH_EN |
|
||||||
CGEM_NET_CFG_NO_BCAST |
|
CGEM_NET_CFG_NO_BCAST |
|
||||||
CGEM_NET_CFG_COPY_ALL);
|
CGEM_NET_CFG_COPY_ALL);
|
||||||
|
|
||||||
if ((ifp->if_flags & IFF_PROMISC) != 0)
|
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,
|
err = bus_dmamap_load(sc->desc_dma_tag, sc->txring_dma_map,
|
||||||
(void *)sc->txring,
|
(void *)sc->txring,
|
||||||
CGEM_NUM_TX_DESCS*sizeof(struct cgem_tx_desc),
|
CGEM_NUM_TX_DESCS*sizeof(struct cgem_tx_desc),
|
||||||
cgem_getaddr, &sc->txring_physaddr,
|
cgem_getaddr, &sc->txring_physaddr,
|
||||||
BUS_DMA_NOWAIT);
|
BUS_DMA_NOWAIT);
|
||||||
if (err)
|
if (err)
|
||||||
return (err);
|
return (err);
|
||||||
@ -514,7 +514,7 @@ cgem_fill_rqueue(struct cgem_softc *sc)
|
|||||||
|
|
||||||
#ifndef __rtems__
|
#ifndef __rtems__
|
||||||
/* Load map and plug in physical address. */
|
/* 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,
|
sc->rxring_m_dmamap[sc->rxring_hd_ptr], m,
|
||||||
segs, &nsegs, BUS_DMA_NOWAIT)) {
|
segs, &nsegs, BUS_DMA_NOWAIT)) {
|
||||||
sc->rxdmamapfails++;
|
sc->rxdmamapfails++;
|
||||||
@ -542,7 +542,7 @@ cgem_fill_rqueue(struct cgem_softc *sc)
|
|||||||
sc->rxring_hd_ptr = 0;
|
sc->rxring_hd_ptr = 0;
|
||||||
} else
|
} else
|
||||||
sc->rxring[sc->rxring_hd_ptr++].addr = segs[0].ds_addr;
|
sc->rxring[sc->rxring_hd_ptr++].addr = segs[0].ds_addr;
|
||||||
|
|
||||||
sc->rxring_queued++;
|
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. */
|
/* 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_RX_QBAR, (uint32_t) sc->rxring_physaddr);
|
||||||
WR4(sc, CGEM_TX_QBAR, (uint32_t) sc->txring_physaddr);
|
WR4(sc, CGEM_TX_QBAR, (uint32_t) sc->txring_physaddr);
|
||||||
|
|
||||||
/* Enable rx and tx. */
|
/* Enable rx and tx. */
|
||||||
sc->net_ctl_shadow |= (CGEM_NET_CTRL_TX_EN | CGEM_NET_CTRL_RX_EN);
|
sc->net_ctl_shadow |= (CGEM_NET_CTRL_TX_EN | CGEM_NET_CTRL_RX_EN);
|
||||||
WR4(sc, CGEM_NET_CTRL, sc->net_ctl_shadow);
|
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);
|
~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))
|
(IFCAP_RXCSUM | IFCAP_TXCSUM))
|
||||||
ifp->if_capenable |= IFCAP_VLAN_HWCSUM;
|
ifp->if_capenable |= IFCAP_VLAN_HWCSUM;
|
||||||
else
|
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);
|
struct cgem_softc *sc = device_get_softc(dev);
|
||||||
int tries;
|
int tries;
|
||||||
|
|
||||||
WR4(sc, CGEM_PHY_MAINT,
|
WR4(sc, CGEM_PHY_MAINT,
|
||||||
CGEM_PHY_MAINT_CLAUSE_22 | CGEM_PHY_MAINT_MUST_10 |
|
CGEM_PHY_MAINT_CLAUSE_22 | CGEM_PHY_MAINT_MUST_10 |
|
||||||
CGEM_PHY_MAINT_OP_WRITE |
|
CGEM_PHY_MAINT_OP_WRITE |
|
||||||
@ -1778,10 +1778,15 @@ cgem_attach(device_t dev)
|
|||||||
ifp->if_init = cgem_init;
|
ifp->if_init = cgem_init;
|
||||||
ifp->if_capabilities |= IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6 |
|
ifp->if_capabilities |= IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6 |
|
||||||
IFCAP_VLAN_MTU | IFCAP_VLAN_HWCSUM;
|
IFCAP_VLAN_MTU | IFCAP_VLAN_HWCSUM;
|
||||||
|
#ifndef __rtems__
|
||||||
/* Disable hardware checksumming by default. */
|
/* Disable hardware checksumming by default. */
|
||||||
ifp->if_hwassist = 0;
|
ifp->if_hwassist = 0;
|
||||||
ifp->if_capenable = ifp->if_capabilities &
|
ifp->if_capenable = ifp->if_capabilities &
|
||||||
~(IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6 | IFCAP_VLAN_HWCSUM);
|
~(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;
|
ifp->if_snd.ifq_drv_maxlen = CGEM_NUM_TX_DESCS;
|
||||||
IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen);
|
IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen);
|
||||||
IFQ_SET_READY(&ifp->if_snd);
|
IFQ_SET_READY(&ifp->if_snd);
|
||||||
|
14
libbsd.txt
14
libbsd.txt
@ -1075,24 +1075,12 @@ Broadcom BCM4401 _bsd_bfe_pcimodule_sys_init Links
|
|||||||
Broadcom BCM570x _bsd_bge_pcimodule_sys_init Needs Symbols (A)
|
Broadcom BCM570x _bsd_bge_pcimodule_sys_init Needs Symbols (A)
|
||||||
E1000 IGB _bsd_igb_pcimodule_sys_init Links
|
E1000 IGB _bsd_igb_pcimodule_sys_init Links
|
||||||
E1000 EM _bsd_em_pcimodule_sys_init Links
|
E1000 EM _bsd_em_pcimodule_sys_init Links
|
||||||
Cadence ? Links, works.
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
||||||
Symbols (A)
|
Symbols (A)
|
||||||
pci_get_vpd_ident
|
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 ==
|
== Problems to report to FreeBSD ==
|
||||||
|
|
||||||
The MMAP_NOT_AVAILABLE define is inverted on its usage. When it is
|
The MMAP_NOT_AVAILABLE define is inverted on its usage. When it is
|
||||||
|
Loading…
x
Reference in New Issue
Block a user