Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Sep 1999 09:29:24 -0400 (EDT)
From:      supertaz@mindspring.com
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   i386/13787: lnc driver isn't really the lnc driver
Message-ID:  <199909171329.JAA00498@mindspring.com>

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

>Number:         13787
>Category:       i386
>Synopsis:       lnc driver isn't really the lnc driver
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 17 06:30:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Jon Mischo
>Release:        FreeBSD 3.3-STABLE i386
>Organization:
>Environment:

	This applies to ALL users of the lnc driver, and all users of
	AMD PCnet ISA series NICs.

>Description:

	The lnc driver's man page states it's the driver to use for the
	Am7990 and Am79C960 based NICs.  This is wrong.  The Am7990 and
	the Am79C960 are both ISA chips.  The chip ID the lnc driver looks
	for is for a PCI chip.  Here is the PCI ID register list from AMD 
	docs:

                    PCI Configuration Space

        Offset: 0x00 PCI Vendor ID Register
        Offset: 0x02 PCI Device ID Register
 31               16  15                0
 DDDD DDDD DDDD DDDD  VVVV VVVV VVVV VVVV
 0010 0000 0000 0000  0001 0000 0010 0010 20001022  Am79C970  PCnet-PCI
 0010 0000 0000 0000  0001 0000 0010 0010 20001022  Am79C970A PCnet-PCI II
 0010 0000 0000 0000  0001 0000 0010 0010 20001022  Am79C971  PCnet-FAST
 0010 0000 0000 0000  0001 0000 0010 0010 20001022  Am79C972  PCnet-FAST+
 0010 0000 0000 0000  0001 0000 0010 0010 20001022  Am79C973  PCnet-FAST III
 0010 0000 0000 0000  0001 0000 0010 0010 20001022  Am79C975  PCnet-FAST III
 0010 0000 0000 0001  0001 0000 0010 0010 20011022  Am79C978  PCnet-Home

        Offset: 0x08 PCI Revision ID Register
 31               16  15                0
 xxxx xxxx xxxx xxxx  xxxx xxxx RRRR RRRR
 xxxx xxxx xxxx xxxx  xxxx xxxx 0000 xxxx 0x  Am79C970  PCnet-PCI
 xxxx xxxx xxxx xxxx  xxxx xxxx 0001 xxxx 1x  Am79C970A PCnet-PCI II
 xxxx xxxx xxxx xxxx  xxxx xxxx 0010 xxxx 2x  Am79C971  PCnet-FAST
 xxxx xxxx xxxx xxxx  xxxx xxxx 0011 xxxx 3x  Am79C972  PCnet-FAST+
 xxxx xxxx xxxx xxxx  xxxx xxxx 0100 xxxx 4x  Am79C973  PCnet-FAST III
 xxxx xxxx xxxx xxxx  xxxx xxxx 0100 xxxx 4x  Am79C975  PCnet-FAST III
 xxxx xxxx xxxx xxxx  xxxx xxxx 0101 xxxx 5x  Am79C978  PCnet-Home

	The PCnet-Home should also work with the same driver, since AMD
	is particularly good about register compatibility between chips
	in the same family.  All documentation for this is freely available
	on AMD's site.

	Furthermore, these controllers aren't LANCE generation chips.  They
	are based off the MACE generation chip.  LANCE were 10Mb/sec only
	and had 64 and 48 byte buffers (RX and TX respectively) and were
	half duplex only.  The MACE chips had 128 and 136 byte buffers and
	were 10/20 (full duplex).  The above PCI chips mostly have at least
	12kB buffers that are programmable, based off the MACE designs.  The
	one exception is the PCI II, which has 256 and 272 since it is not
	a 10/100 card like the others.

>How-To-Repeat:

	Put an Am7990 or Am79C960 based NIC in a machine, and watch it not
	be recognized.

>Fix:
	
	Now, I happen to have (2) NICs from the family that the lnc driver
	claims to be for.  Since they are register compatible with the
	Am79C960 (PCnet ISA), it would help me a lot if I could get my
	hands on the actual lnc driver source (the REAL lnc driver, not
	the driver it has become).  Mine are the Am79C961 (PCnet ISA+) and
	Am 79C961A (PCnet ISA II).  I will most likely attempt to write a
	driver from scratch, but I would really like the source for the
	original lnc driver, so I can compare it, and make the new driver
	backwards compatible (the newer chips have PnP registers built in).

	Really, they should be under a driver called mce, since they are
	MACE-based chips, with the same buffer sizes as the MACE chips.

	The following are the chip ID registers for AMD PCnet ISA series:

                         Chip ID Registers

 31     CSR89     16  15     CSR88      0
 VVVV PPPP PPPP PPPP  PPPP MMMM MMMM MMM1
 xxxx 0000 0000 0000  0011 0000 0000 0011 x0003003  Am79C960  PCnet-ISA
 xxxx 0010 0010 0110  0000 0000 0000 0011 x2260003  Am79C961  PCnet-ISA+
 xxxx 0010 0010 0110  0001 0000 0000 0011 x2261003  Am79C961A PCnet-ISA II


>Release-Note:
>Audit-Trail:
>Unformatted:


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?199909171329.JAA00498>