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>
