[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
InterruptStatus on a multiport serial card
I recently develloped a PCI card with 4 serial ports, based on the standard
serial chip 16C550.
In a previous question I asked the PCI-SIG if anyone was able to write a
device driver for our card (and had many replies!)
However, I have discovered that Windows NT and Windows 2000 (and also Linux)
support standard multiport serial devices (serial.sys and serenum.sys).
I digged and digged, but found not much information on that.
I believe that the PCI card has to act as follows :
- One must specify an I/O range that maps the serial ports as follows
(assuming the base I/O adress is eg FCC0) : serial1=FCC0 to
FCC7;serial2=FCC8 to FC0f;serial3=FC10 to FC17;serial4=FC18 to FC1f
Is this information correct? Does it matter in what BAR this is mapped?
- The 4 serial ports can generate interrupts. I read that "interrupt
handling" is done by an Interrupt Status port. I however do not find
information about how this interrupt Status port acts on a particular
interrupt : Is it 1 byte, default 0xff, if an interrupt occurs from a
particular port, then it is a zero-indexed port number? Is it several bytes?
I also read that there can be two possibilities : Simple Interrupt method
and Complex interrupt method : what is the difference, are they standard
supported by NT/2000 ?
If I know all the above, I can then easily adapt the firmware on my PCI
card, so that NT/2000 recognises my card without writing an own device
Many thanks in advance,
"There are two ways to write error-free programs; only the third one works."
Alan J. Perlis.