Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Jan 1998 11:49:50 +0900 (JST)
From:      chi@bd.mbn.or.jp
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   kern/5435: Old Gateway Communications LAN board is not probed
Message-ID:  <199801050936.SAA20614@bd.mbn.or.jp>
Resent-Message-ID: <199801082230.OAA09188@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         5435
>Category:       kern
>Synopsis:       not probed old Gateway Communications LAN board
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan  8 14:30:20 PST 1998
>Last-Modified:
>Originator:     Chiharu Shibata
>Organization:
Japan FreeBSD Users Group
>Release:        FreeBSD 2.2.1-RELEASE i386 or later
>Environment:

	G/Ethernet 16 Combo(ISA-LAN) by Gateway Communications,Inc.

>Description:

	fe driver does not probe G/Ethernet 16 Combo, which has
	FUJITSU MB86960A chip on the board.

	Hardware specification is as follows.
	IRQ : 3,4,5,6,7,10,11,12,15,2/9
	I/O Address : 220-23F, 260-27F, 280-29F, 2A0-2BF, 2C0-2DF,
	              2E0-2FF, 300-31F, 320-33F, 340-35F, 360-37F,
	              380-39F, 3A0-3BF, 3C0-3DF, 3E0-3FF

>How-To-Repeat:

	Just set the G/Ethernet 16 Combo, and boot.

>Fix:
	
	The SRAM size is obscure. But 16KB specified by original
	source causes errors "fe0:emptying receive buffer" and
	"fe0:received a big packet?(XXXXX bytes)".

	The following patch(based on 2.2.1-Release) specifies 8KB
	for the safety, it seems to work well.

--- /sys/i386/isa/if_fe.c-	Fri Oct 31 23:21:13 1997
+++ /sys/i386/isa/if_fe.c	Sun Dec 14 21:36:18 1997
@@ -449,11 +449,15 @@
 	{ 0x220, 0x240, 0x260, 0x280, 0x2A0, 0x2C0, 0x300, 0x340, 0 };
 static u_short const fe_ati_addr [] =
 	{ 0x240, 0x260, 0x280, 0x2A0, 0x300, 0x320, 0x340, 0x380, 0 };
+static u_short const fe_gwy_addr [] =
+	{ 0x220, 0x260, 0x280, 0x2A0, 0x2C0, 0x2E0, 0x300, 0x320,
+	  0x340, 0x360, 0x380, 0x3A0, 0x3C0, 0x3E0, 0 };
 
 static struct fe_probe_list const fe_probe_list [] =
 {
 	{ fe_probe_fmv, fe_fmv_addr },
 	{ fe_probe_ati, fe_ati_addr },
+	{ fe_probe_gwy, fe_gwy_addr },
 #if NCRD > 0
 	{ fe_probe_mbh, NULL },  /* PCMCIAs cannot be auto-detected.  */
 	{ fe_probe_tdk, NULL },
@@ -1168,11 +1172,10 @@
 	};
 
 	/*
-	 * We need explicit IRQ and supported address.
-	 * I'm not sure which address and IRQ is possible for Gateway
-	 * Ethernet family.  The following accepts everything.  FIXME.
+	 * Gateway Ethernet family accepts almost IRQs.
+	 * So, only check whether irq is "NO_IRQ".
 	 */
-	if ( dev->id_irq == NO_IRQ || ( sc->iobase & ~0x3E0 ) != 0 ) {
+	if ( dev->id_irq == NO_IRQ ) {
 		return ( 0 );
 	}
 
@@ -1198,15 +1201,18 @@
 
 	/*
 	 * Program the 86960 as follows:
-	 *	SRAM: 16KB, 100ns, byte-wide access.
+	 *	SRAM: 8KB, 100ns, byte-wide access.
 	 *	Transmission buffer: 2KB x 2.
 	 *	System bus interface: 16 bits.
 	 * Make sure to clear out ID bits in DLCR7
 	 * (They actually are Encoder/Decoder control in NICE.)
+	 *
+	 * XXX: I don't know SRAM size, but only 8KB is worked.
+	 *      Could someone tell me "REAL" SRAM size?  FIXME.
 	 */
 	sc->proto_dlcr4 = FE_D4_LBC_DISABLE | FE_D4_CNTRL;
 	sc->proto_dlcr5 = 0;
-	sc->proto_dlcr6 = FE_D6_BUFSIZ_16KB | FE_D6_TXBSIZ_2x2KB
+	sc->proto_dlcr6 = FE_D6_BUFSIZ_8KB | FE_D6_TXBSIZ_2x2KB
 		| FE_D6_BBW_BYTE | FE_D6_SBW_WORD | FE_D6_SRAM_100ns;
 	sc->proto_dlcr7 = FE_D7_BYTSWP_LH;
 	sc->proto_bmpr13 = 0;
>Audit-Trail:
>Unformatted:



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