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>
