Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Jan 1996 03:39:57 +1100 (EST)
From:      Douglas Thomas Crosher  <dtc@scrooge.ee.swin.oz.au>
To:        roberto@keltia.freenix.fr (Ollivier Robert)
Subject:   Re: lpt0 incorrect interrupt count / systat
Message-ID:  <199601291639.DAA28428@scrooge.ee.swin.oz.au>
In-Reply-To: <199601282128.WAA23462@keltia.freenix.fr> from "Ollivier Robert" at Jan 28, 96 10:28:21 pm

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

> The  printer is of   course inactive and   even turned off. Where  do these
> interrupts come from ? I recently changed my NE2000  for a 3C509B; can this
> be the cause of the problem ? 
> 
> eisa0: <ECS1110 (System Board)>
> Probing for devices on the EISA bus
> eisa0:1 <TCM5090> unknown device
> [...]
> 1 3C5x9 board(s) on EISA found at 0x1000
> 1 3C5x9 board(s) on ISA found at 0x300
> ep0 at 0x300-0x30f irq 10 on isa
> ep0: aui/utp[*AUI*] address 00:20:af:5a:51:9d irq 10
> 
> - the 3C509B is unusable when configured as an EISA device
> 
> Jan 28 20:21:16 keltia /kernel.3com: 1 3C5x9 board(s) on EISA found at 0x1000
> Jan 28 20:21:16 keltia /kernel.3com: ep0: 3c5x9 at 0x1000 in test mode. Erase pencil mark!
> Jan 28 20:21:16 keltia /kernel.3com: ep0: eeprom failed to come ready.
> Jan 28 20:21:16 keltia /kernel.3com: epprobe: ignoring model ffff
> Jan 28 20:21:16 keltia /kernel.3com: ep0 not found at 0x1000
> 
> I have modified  if_ep.c  with the  latest  Serge's  patches after  merging
> -CURRENT's differences and it changes  nothing. I can  use the card only in
> pure ISA mode. PnP doesn't make any difference.

I recently tried current and found that my 3c509 card would lockup
within a few seconds of heavy transmittions.  I noticed that there is
no timeout code in the current if_ep.c driver and had to put back the
kludge from the 2.1 version, patch below.  I'd be interested to know
if you have the card working reliably under current without such a
kludge.

Regards
Douglas Crosher

-=-=-=-=-
*** if_ep.c.orig	Fri Jan 26 20:48:38 1996
--- if_ep.c	Tue Jan 30 03:14:07 1996
***************
*** 436,441 ****
--- 436,442 ----
      ifp->if_start = epstart;
      ifp->if_ioctl = epioctl;
      ifp->if_watchdog = epwatchdog;
+ 	ifp->if_timer=1; /* Get the timeouts started! */
  
      if_attach(ifp);
      kdc_ep[is->id_unit].kdc_state = DC_BUSY;
***************
*** 1252,1258 ****
  epwatchdog(ifp)
      struct ifnet *ifp;
  {
!     /*
      printf("ep: watchdog\n");
  
      log(LOG_ERR, "ep%d: watchdog\n", ifp->if_unit);
--- 1253,1260 ----
  epwatchdog(ifp)
      struct ifnet *ifp;
  {
! 
!   /* Don't want to log a message every second!
      printf("ep: watchdog\n");
  
      log(LOG_ERR, "ep%d: watchdog\n", ifp->if_unit);
***************
*** 1262,1267 ****
--- 1264,1273 ----
      ifp->if_flags &= ~IFF_OACTIVE;
      epstart(ifp);
      epintr(ifp->if_unit);
+ 
+     /* What a kludge; just keeps timing out every second! */
+     ifp->if_timer=1;
+ 
  }
  
  static void



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