Re: Greetings. Having a FIFO overrun when my amplc_pci230 card is set on the other side of a PCI bridge

Hi there,

I'm not familiar with PCI bridges, but I tinkered with the amplc_pci230
driver a year or so ago (although not the bit that seems to be playing
up) and will try and help you diagnose your problem.

Your kernel log error message is generated when:
- there is an interrupt
  AND
- the PCI230_INT_ADC bit of the board's interrupt status register is high
  AND
- the board's FIFO buffer is full

An interrupt can be generated by lots of different things in your PC (if
you're unlucky it's your ethernet card or your graphics card). The first
thing the driver does is to see if interrupts are disabled on the board...
if they are, then the amplc_pci230 interrupt handler quits (the interrupt
must be from some other bit of hardware). The driver is getting past this
stage, because it sees that the PCI230_INT_ADC is set.

So the driver tries to handle the interrupt, sees the fifo is full and
gives the error message. I'm confused about the next bit (where you get
nonstop messages) because at this point the driver realises something is
up and stops the counters/timers, disables interrupts on the PCI230 card,
resets the fifo, clears the scan list and clears the channel gains, then
quits. But the fact that the amplc_pci230 interrupt handler is being
repeatedly called and PCI230_INT_ADC is apparently repeatedly being set
high is very confusing.

So the short answer is I don't really know. My guesses (more like
wild shots in the dark) are...

- certain voltages on your extra PCI bus are not being supplied (5V or
  3.3V) or are set to the wrong voltage, this may be causing the PCI230
  card to go a bit mad (PCI230_INT_ADC held up high by something).

- propagation delays along the path of the interrupts is causing several
  versions of the code to be run at the same time. I gather there are ways
  of fixing this, I have no experience of it.

Practical solutions if we can't find the cause of this and can't fix it:
plug your PCI230 card into your main bus; buy an "industrial PC" with lots
of PCI slots.

Sorry there's not much more I can suggest. Anybody else out there had any
similar problems/got any sensible solutions?

Cheers,

   Steve.

On Wed, 4 Jan 2006, Michael R. Head wrote:

> Hello, I'm having some issues with my amplc_pci230 card. I have a 4U box
> here that has a PCI bus (#2) with a Pericom Semiconductor PCI to PCI
> bridge to another PCI bus (#3). When my PCI230 card is on bus #2, it
> functions just fine with comedi (comedi_test runs and appears to
> complete successfully). When I shut down and plug the card into a slot
> on bus #3, I get nonstop messages in /var/log/messages (this is a RHEL 3
> box)  once the driver is loaded.
>
> kernel: comedi0: amplc_pci230: FIFO overrun
> ...
>
> Any hints or clues? Right now, it's the only thing plugged into any of
> the PCI slots on the motherboard.
>
> mike
>
> --
> Michael R. Head <burner_at_suppressingfire.org>
> GPG: http://www.suppressingfire.org/~burner/gpg.key.txt [0x4C9DA1D0]
>


This message has been checked for viruses but the contents of an attachment
may still contain software viruses, which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.

Received on 2006-01-04Z16:59:34