Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Aug 1999 12:50:11 -0700 (PDT)
From:      Julian Elischer <julian@whistle.com>
To:        Mike Smith <mike@smith.net.au>
Cc:        Brian McGovern <bmcgover@cisco.com>, hackers@FreeBSD.ORG
Subject:   Re: sio doesn't do HW flow correctly?!? 
Message-ID:  <Pine.BSF.3.95.990819124203.13522C-100000@current1.whistle.com>
In-Reply-To: <199908191930.MAA07521@dingo.cdrom.com>

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


On Thu, 19 Aug 1999, Mike Smith wrote:
> 
> A few weeks ago I was at a local embedded FreeBSD shop while they were
> debugging a similar problem they experience with their product, which
> turned out to be an extension of a known erratum in the Cyrix MediaGX's
> PIC macrocell, whereby multiple simultaneous interrupts are not handled
> correctly and thus the UART interrupts are lost completely. You may be
> facing a similar problem, but without the right test equipment and
> access to suitable documentation you may have considerable trouble in
> determining this for certain.
A
Well here at the local embedded FreeBSD shop, we later went on to
discover 2 differnt sources to teh problem, neither of which was 
what we thought it was when Mike was here..

Certainly, we were getting a lot of spurious interrupts on ANOTHER port
(check `systat -vmstat 1` to see if this is happenning) and the system was
spendign too much time looping looking at that port to react to the real 
interrupts ont the sio port in question..

the other was that the DISK controller (I hear you say "huh? how does DISK
come into this?") was HOGGING the PCI bus for upto 4mSec at a time which
was long enough for the sio to overflow. Remember that the ISA bus is
usually reached VIA the PCI bus on modern systems. I have fixed the UDMA
driver to run the Cyrix disk DMA engine in a slightly slower mode so that
it doesn't hog the PCI bus quite as much and now we can actually get to
the ISA bus while the dik is doing DMA.

This just goes top show that sometimes it's really hard to figure out why
you are missing interrupts.. It took a $50,000 logic analyser on the PCI
bus (and the uart chip) to figure that one out so it may or may not bbe so
simple...

julian



> 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95.990819124203.13522C-100000>