Deleted Added
full compact
if_ti.c (93818) if_ti.c (95673)
1/*
2 * Copyright (c) 1997, 1998, 1999
3 * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30 * THE POSSIBILITY OF SUCH DAMAGE.
31 *
1/*
2 * Copyright (c) 1997, 1998, 1999
3 * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30 * THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 * $FreeBSD: head/sys/dev/ti/if_ti.c 93818 2002-04-04 21:03:38Z jhb $
32 * $FreeBSD: head/sys/dev/ti/if_ti.c 95673 2002-04-28 20:34:20Z phk $
33 */
34
35/*
36 * Alteon Networks Tigon PCI gigabit ethernet driver for FreeBSD.
37 * Manuals, sample driver and firmware source kits are available
38 * from http://www.alteon.com/support/openkits.
39 *
40 * Written by Bill Paul <wpaul@ctr.columbia.edu>

--- 74 unchanged lines hidden (view full) ---

115#include <pci/if_tireg.h>
116#include <pci/ti_fw.h>
117#include <pci/ti_fw2.h>
118
119#define TI_CSUM_FEATURES (CSUM_IP | CSUM_TCP | CSUM_UDP | CSUM_IP_FRAGS)
120
121#if !defined(lint)
122static const char rcsid[] =
33 */
34
35/*
36 * Alteon Networks Tigon PCI gigabit ethernet driver for FreeBSD.
37 * Manuals, sample driver and firmware source kits are available
38 * from http://www.alteon.com/support/openkits.
39 *
40 * Written by Bill Paul <wpaul@ctr.columbia.edu>

--- 74 unchanged lines hidden (view full) ---

115#include <pci/if_tireg.h>
116#include <pci/ti_fw.h>
117#include <pci/ti_fw2.h>
118
119#define TI_CSUM_FEATURES (CSUM_IP | CSUM_TCP | CSUM_UDP | CSUM_IP_FRAGS)
120
121#if !defined(lint)
122static const char rcsid[] =
123 "$FreeBSD: head/sys/dev/ti/if_ti.c 93818 2002-04-04 21:03:38Z jhb $";
123 "$FreeBSD: head/sys/dev/ti/if_ti.c 95673 2002-04-28 20:34:20Z phk $";
124#endif
125
126/*
127 * Various supported device vendors/types and their names.
128 */
129
130static struct ti_type ti_devs[] = {
131 { ALT_VENDORID, ALT_DEVICEID_ACENIC,

--- 1506 unchanged lines hidden (view full) ---

1638 * via autonegotiation.
1639 */
1640 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_T, 0, NULL);
1641 ifmedia_add(&sc->ifmedia,
1642 IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL);
1643 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_100_TX, 0, NULL);
1644 ifmedia_add(&sc->ifmedia,
1645 IFM_ETHER|IFM_100_TX|IFM_FDX, 0, NULL);
124#endif
125
126/*
127 * Various supported device vendors/types and their names.
128 */
129
130static struct ti_type ti_devs[] = {
131 { ALT_VENDORID, ALT_DEVICEID_ACENIC,

--- 1506 unchanged lines hidden (view full) ---

1638 * via autonegotiation.
1639 */
1640 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_T, 0, NULL);
1641 ifmedia_add(&sc->ifmedia,
1642 IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL);
1643 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_100_TX, 0, NULL);
1644 ifmedia_add(&sc->ifmedia,
1645 IFM_ETHER|IFM_100_TX|IFM_FDX, 0, NULL);
1646 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_1000_TX, 0, NULL);
1646 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_1000_T, 0, NULL);
1647 ifmedia_add(&sc->ifmedia,
1647 ifmedia_add(&sc->ifmedia,
1648 IFM_ETHER|IFM_1000_TX|IFM_FDX, 0, NULL);
1648 IFM_ETHER|IFM_1000_T|IFM_FDX, 0, NULL);
1649 } else {
1650 /* Fiber cards don't support 10/100 modes. */
1651 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_1000_SX, 0, NULL);
1652 ifmedia_add(&sc->ifmedia,
1653 IFM_ETHER|IFM_1000_SX|IFM_FDX, 0, NULL);
1654 }
1655 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_AUTO, 0, NULL);
1656 ifmedia_set(&sc->ifmedia, IFM_ETHER|IFM_AUTO);

--- 568 unchanged lines hidden (view full) ---

2225 TI_GLNK_AUTONEGENB|TI_GLNK_ENB);
2226 CSR_WRITE_4(sc, TI_GCR_LINK, TI_LNK_100MB|TI_LNK_10MB|
2227 TI_LNK_FULL_DUPLEX|TI_LNK_HALF_DUPLEX|
2228 TI_LNK_AUTONEGENB|TI_LNK_ENB);
2229 TI_DO_CMD(TI_CMD_LINK_NEGOTIATION,
2230 TI_CMD_CODE_NEGOTIATE_BOTH, 0);
2231 break;
2232 case IFM_1000_SX:
1649 } else {
1650 /* Fiber cards don't support 10/100 modes. */
1651 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_1000_SX, 0, NULL);
1652 ifmedia_add(&sc->ifmedia,
1653 IFM_ETHER|IFM_1000_SX|IFM_FDX, 0, NULL);
1654 }
1655 ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_AUTO, 0, NULL);
1656 ifmedia_set(&sc->ifmedia, IFM_ETHER|IFM_AUTO);

--- 568 unchanged lines hidden (view full) ---

2225 TI_GLNK_AUTONEGENB|TI_GLNK_ENB);
2226 CSR_WRITE_4(sc, TI_GCR_LINK, TI_LNK_100MB|TI_LNK_10MB|
2227 TI_LNK_FULL_DUPLEX|TI_LNK_HALF_DUPLEX|
2228 TI_LNK_AUTONEGENB|TI_LNK_ENB);
2229 TI_DO_CMD(TI_CMD_LINK_NEGOTIATION,
2230 TI_CMD_CODE_NEGOTIATE_BOTH, 0);
2231 break;
2232 case IFM_1000_SX:
2233 case IFM_1000_TX:
2233 case IFM_1000_T:
2234 CSR_WRITE_4(sc, TI_GCR_GLINK, TI_GLNK_PREF|TI_GLNK_1000MB|
2235 TI_GLNK_RX_FLOWCTL_Y|TI_GLNK_ENB);
2236 CSR_WRITE_4(sc, TI_GCR_LINK, 0);
2237 if ((ifm->ifm_media & IFM_GMASK) == IFM_FDX) {
2238 TI_SETBIT(sc, TI_GCR_GLINK, TI_GLNK_FULL_DUPLEX);
2239 }
2240 TI_DO_CMD(TI_CMD_LINK_NEGOTIATION,
2241 TI_CMD_CODE_NEGOTIATE_GIGABIT, 0);

--- 41 unchanged lines hidden (view full) ---

2283 if (sc->ti_linkstat == TI_EV_CODE_LINK_DOWN)
2284 return;
2285
2286 ifmr->ifm_status |= IFM_ACTIVE;
2287
2288 if (sc->ti_linkstat == TI_EV_CODE_GIG_LINK_UP) {
2289 media = CSR_READ_4(sc, TI_GCR_GLINK_STAT);
2290 if (sc->ti_copper)
2234 CSR_WRITE_4(sc, TI_GCR_GLINK, TI_GLNK_PREF|TI_GLNK_1000MB|
2235 TI_GLNK_RX_FLOWCTL_Y|TI_GLNK_ENB);
2236 CSR_WRITE_4(sc, TI_GCR_LINK, 0);
2237 if ((ifm->ifm_media & IFM_GMASK) == IFM_FDX) {
2238 TI_SETBIT(sc, TI_GCR_GLINK, TI_GLNK_FULL_DUPLEX);
2239 }
2240 TI_DO_CMD(TI_CMD_LINK_NEGOTIATION,
2241 TI_CMD_CODE_NEGOTIATE_GIGABIT, 0);

--- 41 unchanged lines hidden (view full) ---

2283 if (sc->ti_linkstat == TI_EV_CODE_LINK_DOWN)
2284 return;
2285
2286 ifmr->ifm_status |= IFM_ACTIVE;
2287
2288 if (sc->ti_linkstat == TI_EV_CODE_GIG_LINK_UP) {
2289 media = CSR_READ_4(sc, TI_GCR_GLINK_STAT);
2290 if (sc->ti_copper)
2291 ifmr->ifm_active |= IFM_1000_TX;
2291 ifmr->ifm_active |= IFM_1000_T;
2292 else
2293 ifmr->ifm_active |= IFM_1000_SX;
2294 if (media & TI_GLNK_FULL_DUPLEX)
2295 ifmr->ifm_active |= IFM_FDX;
2296 else
2297 ifmr->ifm_active |= IFM_HDX;
2298 } else if (sc->ti_linkstat == TI_EV_CODE_LINK_UP) {
2299 media = CSR_READ_4(sc, TI_GCR_LINK_STAT);

--- 191 unchanged lines hidden ---
2292 else
2293 ifmr->ifm_active |= IFM_1000_SX;
2294 if (media & TI_GLNK_FULL_DUPLEX)
2295 ifmr->ifm_active |= IFM_FDX;
2296 else
2297 ifmr->ifm_active |= IFM_HDX;
2298 } else if (sc->ti_linkstat == TI_EV_CODE_LINK_UP) {
2299 media = CSR_READ_4(sc, TI_GCR_LINK_STAT);

--- 191 unchanged lines hidden ---