[tulip-bug] LinkSys EtherFast 10/100 Lan card LNE100TX

Don dharter@mailcity.com
Wed, 03 Jan 2001 22:29:20 -0600


This is a multi-part message in MIME format.
--------------C51510921E2BD7F500AE0525
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

I was finally able to get a compile and linkage for the drivers for this
card.   Even with the gcc version 2.95.2 , I had the posix header
problem until I used "-I/usr/src/linux/include".   I went back to
egcs-1.1.2-30 and egcs-c++-1.1.2-30 . After compiling the modules I
could not link them.  I got unresolved references.  I searched the
archives and found that someone could not compile them with an option
mod versions set in the source kernel.  I recompiled the kernel without
this option.  Then the modules tulip.c and pci-scan.c would not only
compile but load using insmod.  However I would get different behaviour
when I compiled them as part of the kernel.  When it booted it would
recognize 8 cards when I had only 1.  The modules would only recognize 1
card.  I have attached a patch that has the pci id for my card.  I am
not sure of the chipset,  but the pci id had a close match to one
already there so I used that one.  I had asked LinkSys for this
information, but they did not reply.  I hooked the card up to my ADSL
mdoem and I could see that packets were being received at the modem.

--------------C51510921E2BD7F500AE0525
Content-Type: text/plain; charset=us-ascii;
 name="patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="patch"

*** tulip.c	2000/12/31 04:59:55	1.1
--- tulip.c	2000/12/31 20:27:12	1.3
***************
*** 33,39 ****
  /* The user-configurable values.
     These may be modified when a driver module is loaded.*/
  
! static int debug = 1;			/* 1 normal messages, 0 quiet .. 7 verbose. */
  #define tulip_debug debug		/* Inconsistently used to minimize changes. */
  
  /* Maximum events (Rx packets, etc.) to handle at each interrupt. */
--- 33,39 ----
  /* The user-configurable values.
     These may be modified when a driver module is loaded.*/
  
! static int debug = 7;			/* 1 normal messages, 0 quiet .. 7 verbose. */
  #define tulip_debug debug		/* Inconsistently used to minimize changes. */
  
  /* Maximum events (Rx packets, etc.) to handle at each interrupt. */
***************
*** 322,327 ****
--- 322,329 ----
  static struct pci_id_info pci_id_tbl[] = {
  	{ "Digital DC21040 Tulip", { 0x00021011, 0xffffffff },
  	  TULIP_IOTYPE, 0x80, DC21040 },
+ 	{ "Linksys Etherfast 10/100 v4.1 Tulip", { 0x09851317, 0xffffffff, 0x05741317, 0xffffffff },
+ 	     	  TULIP_IOTYPE, 0x80, DC21041 },
  	{ "Digital DC21041 Tulip", { 0x00141011, 0xffffffff },
  	  TULIP_IOTYPE, 0x80, DC21041 },
  	{ "Digital DS21140A Tulip", { 0x00091011, 0xffffffff, 0,0, 0x20,0xf0 },
*** pci-scan.c	2000/12/31 12:37:35	1.1
--- pci-scan.c	2000/12/31 12:51:30	1.3
***************
*** 25,31 ****
  
  /* A few user-configurable values that may be modified when a module. */
  
! static int debug = 1;			/* 1 normal messages, 0 quiet .. 7 verbose. */
  static int min_pci_latency = 32;
  
  #if ! defined(__KERNEL__)
--- 25,31 ----
  
  /* A few user-configurable values that may be modified when a module. */
  
! static int debug = 4;			/* 1 normal messages, 0 quiet .. 7 verbose. */
  static int min_pci_latency = 32;
  
  #if ! defined(__KERNEL__)
***************
*** 142,147 ****
--- 142,150 ----
  				   pci_id, pci_subsys_id);
  		for (chip_idx = 0; pci_tbl[chip_idx].name; chip_idx++) {
  			struct pci_id_info *chip = &pci_tbl[chip_idx];
+ 		if (debug > 3)
+ 			printk (KERN_DEBUG "pci_tbl subsystem %8.8x pci_tbl revision %8.8x \n",
+ 					chip->id.subsystem, chip->id.revision);
  			if ((pci_id & chip->id.pci_mask) == chip->id.pci
  				&& (pci_subsys_id&chip->id.subsystem_mask) == chip->id.subsystem
  				&& (pci_class_rev&chip->id.revision_mask) == chip->id.revision)

--------------C51510921E2BD7F500AE0525--