Deleted Added
full compact
if_de.c (34317) if_de.c (36945)
1/* $NetBSD: if_de.c,v 1.62 1998/02/11 01:28:22 thorpej Exp $ */
2/* $Id: if_de.c,v 1.81 1998/03/08 09:58:13 julian Exp $ */
1/* $NetBSD: if_de.c,v 1.69 1998/06/08 06:55:55 thorpej Exp $ */
2/* $Id: if_de.c,v 1.82 1998/03/08 16:53:54 peter Exp $ */
3
4/*-
5 * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com)
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:

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

129#endif /* __bsdi__ */
130
131#if defined(__NetBSD__)
132#include <net/if_ether.h>
133#if defined(INET)
134#include <netinet/if_inarp.h>
135#endif
136#include <machine/bus.h>
3
4/*-
5 * Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com)
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:

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

129#endif /* __bsdi__ */
130
131#if defined(__NetBSD__)
132#include <net/if_ether.h>
133#if defined(INET)
134#include <netinet/if_inarp.h>
135#endif
136#include <machine/bus.h>
137#if defined(__alpha__)
138#include <machine/intr.h>
137#include <machine/intr.h>
139#endif
140#include <dev/pci/pcireg.h>
141#include <dev/pci/pcivar.h>
142#include <dev/ic/dc21040reg.h>
143#define DEVAR_INCLUDE "dev/pci/if_devar.h"
144#endif /* __NetBSD__ */
145
146/*
147 * Intel CPUs should use I/O mapped access.

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

665
666 if (event == TULIP_MEDIAPOLL_LINKFAIL) {
667 if (sc->tulip_probe_state == TULIP_PROBE_INACTIVE) {
668 if (TULIP_DO_AUTOSENSE(sc)) {
669#if defined(TULIP_DEBUG)
670 sc->tulip_dbg.dbg_link_failures++;
671#endif
672 sc->tulip_media = TULIP_MEDIA_UNKNOWN;
138#include <dev/pci/pcireg.h>
139#include <dev/pci/pcivar.h>
140#include <dev/ic/dc21040reg.h>
141#define DEVAR_INCLUDE "dev/pci/if_devar.h"
142#endif /* __NetBSD__ */
143
144/*
145 * Intel CPUs should use I/O mapped access.

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

663
664 if (event == TULIP_MEDIAPOLL_LINKFAIL) {
665 if (sc->tulip_probe_state == TULIP_PROBE_INACTIVE) {
666 if (TULIP_DO_AUTOSENSE(sc)) {
667#if defined(TULIP_DEBUG)
668 sc->tulip_dbg.dbg_link_failures++;
669#endif
670 sc->tulip_media = TULIP_MEDIA_UNKNOWN;
673 tulip_reset(sc); /* restart probe */
671 if (sc->tulip_if.if_flags & IFF_UP)
672 tulip_reset(sc); /* restart probe */
674 }
675 return;
676 }
677#if defined(TULIP_DEBUG)
678 sc->tulip_dbg.dbg_link_pollintrs++;
679#endif
680 }
681

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

722 sc->tulip_flags &= ~TULIP_TXPROBE_ACTIVE;
723 return;
724 }
725
726 /*
727 * If we really transmitted a packet, then that's the media we'll use.
728 */
729 if (event == TULIP_MEDIAPOLL_TXPROBE_OK || event == TULIP_MEDIAPOLL_LINKPASS) {
673 }
674 return;
675 }
676#if defined(TULIP_DEBUG)
677 sc->tulip_dbg.dbg_link_pollintrs++;
678#endif
679 }
680

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

721 sc->tulip_flags &= ~TULIP_TXPROBE_ACTIVE;
722 return;
723 }
724
725 /*
726 * If we really transmitted a packet, then that's the media we'll use.
727 */
728 if (event == TULIP_MEDIAPOLL_TXPROBE_OK || event == TULIP_MEDIAPOLL_LINKPASS) {
730 if (event == TULIP_MEDIAPOLL_LINKPASS)
729 if (event == TULIP_MEDIAPOLL_LINKPASS) {
730 /* XXX Check media status just to be sure */
731 sc->tulip_probe_media = TULIP_MEDIA_10BASET;
732#if defined(TULIP_DEBUG)
731 sc->tulip_probe_media = TULIP_MEDIA_10BASET;
732#if defined(TULIP_DEBUG)
733 else
733 } else {
734 sc->tulip_dbg.dbg_txprobes_ok[sc->tulip_probe_media]++;
735#endif
734 sc->tulip_dbg.dbg_txprobes_ok[sc->tulip_probe_media]++;
735#endif
736 }
736 tulip_linkup(sc, sc->tulip_probe_media);
737 tulip_timeout(sc);
738 return;
739 }
740
741 if (sc->tulip_probe_state == TULIP_PROBE_GPRTEST) {
742#if defined(TULIP_DO_GPR_SENSE)
743 /*

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

946{
947 sc->tulip_cmdmode |= TULIP_CMD_CAPTREFFCT|TULIP_CMD_THRSHLD160
948 |TULIP_CMD_BACKOFFCTR;
949 sc->tulip_if.if_baudrate = 10000000;
950
951 if (media == TULIP_MEDIA_10BASET || media == TULIP_MEDIA_UNKNOWN) {
952 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[0], 21040, 10BASET);
953 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[1], 21040, 10BASET_FD);
737 tulip_linkup(sc, sc->tulip_probe_media);
738 tulip_timeout(sc);
739 return;
740 }
741
742 if (sc->tulip_probe_state == TULIP_PROBE_GPRTEST) {
743#if defined(TULIP_DO_GPR_SENSE)
744 /*

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

947{
948 sc->tulip_cmdmode |= TULIP_CMD_CAPTREFFCT|TULIP_CMD_THRSHLD160
949 |TULIP_CMD_BACKOFFCTR;
950 sc->tulip_if.if_baudrate = 10000000;
951
952 if (media == TULIP_MEDIA_10BASET || media == TULIP_MEDIA_UNKNOWN) {
953 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[0], 21040, 10BASET);
954 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[1], 21040, 10BASET_FD);
955 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL;
954 }
955
956 if (media == TULIP_MEDIA_AUIBNC || media == TULIP_MEDIA_UNKNOWN) {
957 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[2], 21040, AUIBNC);
958 }
959
960 if (media == TULIP_MEDIA_UNKNOWN) {
961 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[3], 21040, EXTSIA);

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

1056
1057static void
1058tulip_21041_media_probe(
1059 tulip_softc_t * const sc)
1060{
1061 sc->tulip_if.if_baudrate = 10000000;
1062 sc->tulip_cmdmode |= TULIP_CMD_CAPTREFFCT|TULIP_CMD_ENHCAPTEFFCT
1063 |TULIP_CMD_THRSHLD160|TULIP_CMD_BACKOFFCTR;
956 }
957
958 if (media == TULIP_MEDIA_AUIBNC || media == TULIP_MEDIA_UNKNOWN) {
959 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[2], 21040, AUIBNC);
960 }
961
962 if (media == TULIP_MEDIA_UNKNOWN) {
963 TULIP_MEDIAINFO_SIA_INIT(sc, &sc->tulip_mediainfo[3], 21040, EXTSIA);

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

1058
1059static void
1060tulip_21041_media_probe(
1061 tulip_softc_t * const sc)
1062{
1063 sc->tulip_if.if_baudrate = 10000000;
1064 sc->tulip_cmdmode |= TULIP_CMD_CAPTREFFCT|TULIP_CMD_ENHCAPTEFFCT
1065 |TULIP_CMD_THRSHLD160|TULIP_CMD_BACKOFFCTR;
1064 sc->tulip_intrmask |= TULIP_STS_LINKPASS;
1066 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL;
1065 tulip_21041_mediainfo_init(sc);
1066}
1067
1068static void
1069tulip_21041_media_poll(
1070 tulip_softc_t * const sc,
1071 const tulip_mediapoll_event_t event)
1072{

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

2064 ((tulip_crc32(databuf, 126) & 0xFFFFU) ^ 0xFFFFU) == \
2065 ((databuf)[126] | ((databuf)[127] << 8)))
2066
2067static unsigned
2068tulip_crc32(
2069 const unsigned char *databuf,
2070 size_t datalen)
2071{
1067 tulip_21041_mediainfo_init(sc);
1068}
1069
1070static void
1071tulip_21041_media_poll(
1072 tulip_softc_t * const sc,
1073 const tulip_mediapoll_event_t event)
1074{

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

2066 ((tulip_crc32(databuf, 126) & 0xFFFFU) ^ 0xFFFFU) == \
2067 ((databuf)[126] | ((databuf)[127] << 8)))
2068
2069static unsigned
2070tulip_crc32(
2071 const unsigned char *databuf,
2072 size_t datalen)
2073{
2072 u_int idx, bit, data, crc = 0xFFFFFFFFUL;
2074 u_int idx, crc = 0xFFFFFFFFUL;
2075 static const u_int crctab[] = {
2076 0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac,
2077 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c,
2078 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c,
2079 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c
2080 };
2073
2081
2074 for (idx = 0; idx < datalen; idx++)
2075 for (data = *databuf++, bit = 0; bit < 8; bit++, data >>= 1)
2076 crc = (crc >> 1) ^ (((crc ^ data) & 1) ? TULIP_CRC32_POLY : 0);
2082 for (idx = 0; idx < datalen; idx++) {
2083 crc ^= *databuf++;
2084 crc = (crc >> 4) ^ crctab[crc & 0xf];
2085 crc = (crc >> 4) ^ crctab[crc & 0xf];
2086 }
2077 return crc;
2078}
2079
2080static void
2081tulip_identify_dec_nic(
2082 tulip_softc_t * const sc)
2083{
2084 strcpy(sc->tulip_boardid, "DEC ");

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

2542 TULIP_CSR_WRITE(sc, csr_gp, 0);
2543
2544 mi->mi_phyaddr = TULIP_MII_NOPHY;
2545 for (idx3 = 20; idx3 > 0 && mi->mi_phyaddr == TULIP_MII_NOPHY; idx3--) {
2546 DELAY(10000);
2547 mi->mi_phyaddr = tulip_mii_get_phyaddr(sc, phyno);
2548 }
2549 if (mi->mi_phyaddr == TULIP_MII_NOPHY) {
2087 return crc;
2088}
2089
2090static void
2091tulip_identify_dec_nic(
2092 tulip_softc_t * const sc)
2093{
2094 strcpy(sc->tulip_boardid, "DEC ");

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

2552 TULIP_CSR_WRITE(sc, csr_gp, 0);
2553
2554 mi->mi_phyaddr = TULIP_MII_NOPHY;
2555 for (idx3 = 20; idx3 > 0 && mi->mi_phyaddr == TULIP_MII_NOPHY; idx3--) {
2556 DELAY(10000);
2557 mi->mi_phyaddr = tulip_mii_get_phyaddr(sc, phyno);
2558 }
2559 if (mi->mi_phyaddr == TULIP_MII_NOPHY) {
2560#if defined(TULIP_DEBUG)
2550 printf(TULIP_PRINTF_FMT ": can't find phy %d\n",
2551 TULIP_PRINTF_ARGS, phyno);
2561 printf(TULIP_PRINTF_FMT ": can't find phy %d\n",
2562 TULIP_PRINTF_ARGS, phyno);
2563#endif
2552 break;
2553 }
2554 sc->tulip_features |= TULIP_HAVE_MII;
2555 mi->mi_capabilities = dp[0] + dp[1] * 256; dp += 2;
2556 mi->mi_advertisement = dp[0] + dp[1] * 256; dp += 2;
2557 mi->mi_full_duplex = dp[0] + dp[1] * 256; dp += 2;
2558 mi->mi_tx_threshold = dp[0] + dp[1] * 256; dp += 2;
2559 TULIP_MEDIAINFO_ADD_CAPABILITY(sc, mi, 100BASETX_FD);

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

2590 break;
2591 }
2592 case TULIP_MEDIA_AUI: {
2593 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, AUI);
2594 break;
2595 }
2596 case TULIP_MEDIA_10BASET: {
2597 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, 10BASET);
2564 break;
2565 }
2566 sc->tulip_features |= TULIP_HAVE_MII;
2567 mi->mi_capabilities = dp[0] + dp[1] * 256; dp += 2;
2568 mi->mi_advertisement = dp[0] + dp[1] * 256; dp += 2;
2569 mi->mi_full_duplex = dp[0] + dp[1] * 256; dp += 2;
2570 mi->mi_tx_threshold = dp[0] + dp[1] * 256; dp += 2;
2571 TULIP_MEDIAINFO_ADD_CAPABILITY(sc, mi, 100BASETX_FD);

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

2602 break;
2603 }
2604 case TULIP_MEDIA_AUI: {
2605 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, AUI);
2606 break;
2607 }
2608 case TULIP_MEDIA_10BASET: {
2609 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, 10BASET);
2610 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL;
2598 break;
2599 }
2600 case TULIP_MEDIA_10BASET_FD: {
2601 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, 10BASET_FD);
2611 break;
2612 }
2613 case TULIP_MEDIA_10BASET_FD: {
2614 TULIP_MEDIAINFO_SIA_INIT(sc, mi, 21142, 10BASET_FD);
2615 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL;
2602 break;
2603 }
2604 default: {
2605 goto bad_media;
2606 }
2607 }
2608 }
2609 mi->mi_sia_gp_control = (dp[0] + dp[1] * 256) << 16;

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

2639 TULIP_CSR_WRITE(sc, csr_sia_general, 0);
2640
2641 mi->mi_phyaddr = TULIP_MII_NOPHY;
2642 for (idx3 = 20; idx3 > 0 && mi->mi_phyaddr == TULIP_MII_NOPHY; idx3--) {
2643 DELAY(10000);
2644 mi->mi_phyaddr = tulip_mii_get_phyaddr(sc, phyno);
2645 }
2646 if (mi->mi_phyaddr == TULIP_MII_NOPHY) {
2616 break;
2617 }
2618 default: {
2619 goto bad_media;
2620 }
2621 }
2622 }
2623 mi->mi_sia_gp_control = (dp[0] + dp[1] * 256) << 16;

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

2653 TULIP_CSR_WRITE(sc, csr_sia_general, 0);
2654
2655 mi->mi_phyaddr = TULIP_MII_NOPHY;
2656 for (idx3 = 20; idx3 > 0 && mi->mi_phyaddr == TULIP_MII_NOPHY; idx3--) {
2657 DELAY(10000);
2658 mi->mi_phyaddr = tulip_mii_get_phyaddr(sc, phyno);
2659 }
2660 if (mi->mi_phyaddr == TULIP_MII_NOPHY) {
2661#if defined(TULIP_DEBUG)
2647 printf(TULIP_PRINTF_FMT ": can't find phy %d\n",
2648 TULIP_PRINTF_ARGS, phyno);
2662 printf(TULIP_PRINTF_FMT ": can't find phy %d\n",
2663 TULIP_PRINTF_ARGS, phyno);
2664#endif
2649 break;
2650 }
2651 sc->tulip_features |= TULIP_HAVE_MII;
2652 mi->mi_capabilities = dp[0] + dp[1] * 256; dp += 2;
2653 mi->mi_advertisement = dp[0] + dp[1] * 256; dp += 2;
2654 mi->mi_full_duplex = dp[0] + dp[1] * 256; dp += 2;
2655 mi->mi_tx_threshold = dp[0] + dp[1] * 256; dp += 2;
2656 mi->mi_mii_interrupt = dp[0] + dp[1] * 256; dp += 2;

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

2682 mi->mi_cmdmode = TULIP_SROM_2114X_CMDBITS(data);
2683 if (data & TULIP_SROM_2114X_NOINDICATOR) {
2684 mi->mi_actmask = 0;
2685 } else {
2686 mi->mi_default = (data & TULIP_SROM_2114X_DEFAULT) != 0;
2687 mi->mi_actmask = TULIP_SROM_2114X_BITPOS(data);
2688 mi->mi_actdata = (data & TULIP_SROM_2114X_POLARITY) ? 0 : mi->mi_actmask;
2689 }
2665 break;
2666 }
2667 sc->tulip_features |= TULIP_HAVE_MII;
2668 mi->mi_capabilities = dp[0] + dp[1] * 256; dp += 2;
2669 mi->mi_advertisement = dp[0] + dp[1] * 256; dp += 2;
2670 mi->mi_full_duplex = dp[0] + dp[1] * 256; dp += 2;
2671 mi->mi_tx_threshold = dp[0] + dp[1] * 256; dp += 2;
2672 mi->mi_mii_interrupt = dp[0] + dp[1] * 256; dp += 2;

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

2698 mi->mi_cmdmode = TULIP_SROM_2114X_CMDBITS(data);
2699 if (data & TULIP_SROM_2114X_NOINDICATOR) {
2700 mi->mi_actmask = 0;
2701 } else {
2702 mi->mi_default = (data & TULIP_SROM_2114X_DEFAULT) != 0;
2703 mi->mi_actmask = TULIP_SROM_2114X_BITPOS(data);
2704 mi->mi_actdata = (data & TULIP_SROM_2114X_POLARITY) ? 0 : mi->mi_actmask;
2705 }
2706 if (TULIP_IS_MEDIA_TP(media))
2707 sc->tulip_intrmask |= TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL;
2690 mi++;
2691 break;
2692 }
2693#if 0
2694 case 5: { /* 21143 Reset block */
2695 mi->mi_type = TULIP_MEDIAINFO_RESET;
2696 mi->mi_reset_length = *dp++;
2697 mi->mi_reset_offset = dp - sc->tulip_rombuf;

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

3298 * that when the outer tulip_reset returns all the right stuff will
3299 * have happened.
3300 */
3301 if (inreset)
3302 return;
3303
3304 sc->tulip_intrmask |= TULIP_STS_NORMALINTR|TULIP_STS_RXINTR|TULIP_STS_TXINTR
3305 |TULIP_STS_ABNRMLINTR|TULIP_STS_SYSERROR|TULIP_STS_TXSTOPPED
2708 mi++;
2709 break;
2710 }
2711#if 0
2712 case 5: { /* 21143 Reset block */
2713 mi->mi_type = TULIP_MEDIAINFO_RESET;
2714 mi->mi_reset_length = *dp++;
2715 mi->mi_reset_offset = dp - sc->tulip_rombuf;

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

3316 * that when the outer tulip_reset returns all the right stuff will
3317 * have happened.
3318 */
3319 if (inreset)
3320 return;
3321
3322 sc->tulip_intrmask |= TULIP_STS_NORMALINTR|TULIP_STS_RXINTR|TULIP_STS_TXINTR
3323 |TULIP_STS_ABNRMLINTR|TULIP_STS_SYSERROR|TULIP_STS_TXSTOPPED
3306 |TULIP_STS_TXUNDERFLOW|TULIP_STS_TXBABBLE|TULIP_STS_LINKFAIL
3324 |TULIP_STS_TXUNDERFLOW|TULIP_STS_TXBABBLE
3307 |TULIP_STS_RXSTOPPED;
3308
3309 if ((sc->tulip_flags & TULIP_DEVICEPROBE) == 0)
3310 (*sc->tulip_boardsw->bd_media_select)(sc);
3311#if defined(TULIP_DEBUG)
3312 if ((sc->tulip_flags & TULIP_NEEDRESET) == TULIP_NEEDRESET)
3313 printf(TULIP_PRINTF_FMT ": tulip_reset: additional reset needed?!?\n",
3314 TULIP_PRINTF_ARGS);

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

3540 printf(TULIP_PRINTF_FMT ": receive: " TULIP_EADDR_FMT ": %s\n",
3541 TULIP_PRINTF_ARGS,
3542 TULIP_EADDR_ARGS(mtod(ms, u_char *) + 6),
3543 error);
3544 sc->tulip_flags |= TULIP_NOMESSAGES;
3545 }
3546#endif
3547 }
3325 |TULIP_STS_RXSTOPPED;
3326
3327 if ((sc->tulip_flags & TULIP_DEVICEPROBE) == 0)
3328 (*sc->tulip_boardsw->bd_media_select)(sc);
3329#if defined(TULIP_DEBUG)
3330 if ((sc->tulip_flags & TULIP_NEEDRESET) == TULIP_NEEDRESET)
3331 printf(TULIP_PRINTF_FMT ": tulip_reset: additional reset needed?!?\n",
3332 TULIP_PRINTF_ARGS);

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

3558 printf(TULIP_PRINTF_FMT ": receive: " TULIP_EADDR_FMT ": %s\n",
3559 TULIP_PRINTF_ARGS,
3560 TULIP_EADDR_ARGS(mtod(ms, u_char *) + 6),
3561 error);
3562 sc->tulip_flags |= TULIP_NOMESSAGES;
3563 }
3564#endif
3565 }
3566
3567#if defined(TULIP_BUS_DMA) && !defined(TULIP_BUS_DMA_NORX)
3568 map = M_GETCTX(me, bus_dmamap_t);
3569 bus_dmamap_unload(sc->tulip_dmatag, map);
3570 sc->tulip_rxmaps[sc->tulip_rxmaps_free++] = map;
3571#if defined(DIAGNOSTIC)
3572 M_SETCTX(me, NULL);
3573#endif
3574#endif /* TULIP_BUS_DMA */
3548 }
3549 next:
3550#if defined(TULIP_DEBUG)
3551 cnt++;
3552#endif
3553 ifp->if_ipackets++;
3554 if (++eop == ri->ri_last)
3555 eop = ri->ri_first;

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

3887 printf(TULIP_PRINTF_FMT ": system error: %s\n",
3888 TULIP_PRINTF_ARGS,
3889 tulip_system_errors[sc->tulip_last_system_error]);
3890 }
3891 sc->tulip_flags |= TULIP_NEEDRESET;
3892 sc->tulip_system_errors++;
3893 break;
3894 }
3575 }
3576 next:
3577#if defined(TULIP_DEBUG)
3578 cnt++;
3579#endif
3580 ifp->if_ipackets++;
3581 if (++eop == ri->ri_last)
3582 eop = ri->ri_first;

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

3914 printf(TULIP_PRINTF_FMT ": system error: %s\n",
3915 TULIP_PRINTF_ARGS,
3916 tulip_system_errors[sc->tulip_last_system_error]);
3917 }
3918 sc->tulip_flags |= TULIP_NEEDRESET;
3919 sc->tulip_system_errors++;
3920 break;
3921 }
3895 if (csr & (TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL)) {
3922 if (csr & (TULIP_STS_LINKPASS|TULIP_STS_LINKFAIL) & sc->tulip_intrmask) {
3896#if defined(TULIP_DEBUG)
3897 sc->tulip_dbg.dbg_link_intrs++;
3898#endif
3899 if (sc->tulip_boardsw->bd_media_poll != NULL) {
3900 (*sc->tulip_boardsw->bd_media_poll)(sc, csr & TULIP_STS_LINKFAIL
3901 ? TULIP_MEDIAPOLL_LINKFAIL
3902 : TULIP_MEDIAPOLL_LINKPASS);
3903 csr &= ~TULIP_STS_ABNRMLINTR;

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

5421#endif /* __bsdi__ */
5422
5423#if defined(__NetBSD__)
5424#define TULIP_PCI_ATTACH_ARGS struct device * const parent, struct device * const self, void * const aux
5425#define TULIP_SHUTDOWN_ARGS void *arg
5426static int
5427tulip_pci_probe(
5428 struct device *parent,
3923#if defined(TULIP_DEBUG)
3924 sc->tulip_dbg.dbg_link_intrs++;
3925#endif
3926 if (sc->tulip_boardsw->bd_media_poll != NULL) {
3927 (*sc->tulip_boardsw->bd_media_poll)(sc, csr & TULIP_STS_LINKFAIL
3928 ? TULIP_MEDIAPOLL_LINKFAIL
3929 : TULIP_MEDIAPOLL_LINKPASS);
3930 csr &= ~TULIP_STS_ABNRMLINTR;

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

5448#endif /* __bsdi__ */
5449
5450#if defined(__NetBSD__)
5451#define TULIP_PCI_ATTACH_ARGS struct device * const parent, struct device * const self, void * const aux
5452#define TULIP_SHUTDOWN_ARGS void *arg
5453static int
5454tulip_pci_probe(
5455 struct device *parent,
5429#ifdef __BROKEN_INDIRECT_CONFIG
5430 void *match,
5431#else
5432 struct cfdata *match,
5456 struct cfdata *match,
5433#endif
5434 void *aux)
5435{
5436 struct pci_attach_args *pa = (struct pci_attach_args *) aux;
5437
5438 if (PCI_VENDORID(pa->pa_id) != DEC_VENDORID)
5439 return 0;
5440 if (PCI_CHIPID(pa->pa_id) == CHIPID_21040
5441 || PCI_CHIPID(pa->pa_id) == CHIPID_21041

--- 380 unchanged lines hidden ---
5457 void *aux)
5458{
5459 struct pci_attach_args *pa = (struct pci_attach_args *) aux;
5460
5461 if (PCI_VENDORID(pa->pa_id) != DEC_VENDORID)
5462 return 0;
5463 if (PCI_CHIPID(pa->pa_id) == CHIPID_21040
5464 || PCI_CHIPID(pa->pa_id) == CHIPID_21041

--- 380 unchanged lines hidden ---