Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 May 2000 19:50:04 -0700 (PDT)
From:      kondo hiroshi <kondo@ysyslab.co.jp>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/18526: mx does not receive ethernet broadcast packet
Message-ID:  <200005220250.TAA26004@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/18526; it has been noted by GNATS.

From: kondo hiroshi <kondo@ysyslab.co.jp>
To: freebsd-gnats-submit@FreeBSD.org, yab@astem.or.jp
Cc:  
Subject: Re: kern/18526: mx does not receive ethernet broadcast packet
Date: Mon, 22 May 2000 11:38:38 +0900

 I check "http://www.macronix.com/" MX98715 Data sheet.
 
 
 MX98715		512-bit hash + 1 perfect filtering
 MX98715A	512-bit hash + 1 perfect filtering
 MX98715AL	512-bit hash + 1 perfect filtering
 MX98715AEC-C	128-bit hash + 1 perfect filtering
 MX98715AEC-E	128-bit hash + 1 perfect filtering
 MX98715BEC	512-bit hash + 1 perfect filtering
 
 
 dc driver change MX98715AEC use 128-bit hash.
 
 FreeBSD 4.0-RELESE dc_driver DIFF
 
 =============================================================================
 diff -u pci.old/if_dc.c pci/if_dc.c
 --- pci.old/if_dc.c	Fri May 19 19:46:42 2000
 +++ pci/if_dc.c	Mon May 22 09:40:40 2000
 @@ -184,6 +184,8 @@
  	{ DC_VENDORID_CP, DC_DEVICEID_98713_CP,
  		"Compex RL100-TX 10/100BaseTX" },
  	{ DC_VENDORID_MX, DC_DEVICEID_987x5,
 +		"Macronix 98715AEC 10/100BaseTX" },
 +	{ DC_VENDORID_MX, DC_DEVICEID_987x5,
  		"Macronix 98715/98715A 10/100BaseTX" },
  	{ DC_VENDORID_MX, DC_DEVICEID_987x5,
  		"Macronix 98725 10/100BaseTX" },
 @@ -917,7 +919,7 @@
  	}
  
  	/* The hash table on the PNIC II is only 128 bits wide. */
 -	if (DC_IS_PNICII(sc))
 +	if (DC_IS_MX98715AEC(sc) || DC_IS_PNICII(sc))
  		return (crc & ((1 << DC_BITS_PNIC_II) - 1));
  
  	return (crc & ((1 << DC_BITS) - 1));
 @@ -1160,7 +1162,7 @@
  	struct dc_softc		*sc;
  {
  	if (DC_IS_INTEL(sc) || DC_IS_MACRONIX(sc) || DC_IS_PNIC(sc) ||
 -	    DC_IS_PNICII(sc) || DC_IS_DAVICOM(sc))
 +	    DC_IS_MX98715AEC(sc) || DC_IS_PNICII(sc) || DC_IS_DAVICOM(sc))
  		dc_setfilt_21143(sc);
  
  	if (DC_IS_ASIX(sc))
 @@ -1344,6 +1346,9 @@
  			    rev >= DC_REVISION_98713A)
  				t++;
  			if (t->dc_did == DC_DEVICEID_987x5 &&
 +			    rev != DC_REVISION_98715AEC)
 +				t++;
 +			if (t->dc_did == DC_DEVICEID_987x5 &&
  			    rev >= DC_REVISION_98725)
  				t++;
  			if (t->dc_did == DC_DEVICEID_AX88140A &&
 @@ -1548,7 +1553,11 @@
  		sc->dc_flags |= DC_TX_POLL|DC_TX_USE_TX_INTR;
  		break;
  	case DC_DEVICEID_987x5:
 -		sc->dc_type = DC_TYPE_987x5;
 +	        if (revision == DC_REVISION_98715AEC) {
 +		  sc->dc_type = DC_TYPE_98715AEC;
 +		} else {
 +		  sc->dc_type = DC_TYPE_987x5;
 +		}
  		sc->dc_flags |= DC_TX_POLL|DC_TX_USE_TX_INTR;
  		break;
  	case DC_DEVICEID_82C115:
 @@ -1622,7 +1631,8 @@
  		 */
  		if (media == 0)
  			sc->dc_pmode = DC_PMODE_MII;
 -	} else if (DC_IS_MACRONIX(sc) || DC_IS_PNICII(sc)) {
 +	} else if (DC_IS_MACRONIX(sc) || DC_IS_MX98715AEC(sc) ||
 +		   DC_IS_PNICII(sc)) {
  		if (sc->dc_type == DC_TYPE_98713)
  			sc->dc_pmode = DC_PMODE_MII;
  		else
 @@ -2647,7 +2657,7 @@
  	DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_NO_RXCRC);
  	DC_CLRBIT(sc, DC_NETCFG, DC_NETCFG_TX_BACKOFF);
  
 -	if (DC_IS_MACRONIX(sc) || DC_IS_PNICII(sc)) {
 +	if (DC_IS_MACRONIX(sc) || DC_IS_MX98715AEC(sc) || DC_IS_PNICII(sc)) {
  		/*
  		 * The app notes for the 98713 and 98715A say that
  		 * in order to have the chips operate properly, a magic
 diff -u pci.old/if_dcreg.h pci/if_dcreg.h
 --- pci.old/if_dcreg.h	Sat Mar 11 14:20:56 2000
 +++ pci/if_dcreg.h	Mon May 22 11:08:50 2000
 @@ -75,6 +75,7 @@
  #define DC_TYPE_DM9102		0x8	/* Davicom DM9102 */
  #define DC_TYPE_PNICII		0x9	/* 82c115 PNIC II */
  #define DC_TYPE_PNIC		0xA	/* 82c168/82c169 PNIC I */
 +#define DC_TYPE_98715AEC	0xB     /* MACRONIX MX98715AEC */
  
  #define DC_IS_MACRONIX(x)			\
  	(x->dc_type == DC_TYPE_98713 ||		\
 @@ -92,6 +93,7 @@
  #define DC_IS_DAVICOM(x)	(x->dc_type == DC_TYPE_DM9102)
  #define DC_IS_PNICII(x)		(x->dc_type == DC_TYPE_PNICII)
  #define DC_IS_PNIC(x)		(x->dc_type == DC_TYPE_PNIC)
 +#define DC_IS_MX98715AEC(x)	(x->dc_type == DC_TYPE_98715AEC)
  
  /* MII/symbol mode port types */
  #define DC_PMODE_MII		0x1
 @@ -713,8 +715,8 @@
  #define DC_REVISION_98713	0x00
  #define DC_REVISION_98713A	0x10
  #define DC_REVISION_98715	0x20
 +#define DC_REVISION_98715AEC	0x25
  #define DC_REVISION_98725	0x30
 -
  /*
   * Compex PCI vendor ID.
   */
 
 =============================================================================
 
 ------------------------------------------------------------
 kondo hiroshi   Email   kondo@ysyslab.co.jp
                 WWW     http://www.ysyslab.co.jp/~kondo/
                 TEL     045-682-4800        FAX 045-682-4801
 
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200005220250.TAA26004>