Article View: comp.sys.ibm.pc.rt
Article #1050RT interrupt system
From: Dan Stromberg
Date: Thu, 01 Oct 1992 18:50
Date: Thu, 01 Oct 1992 18:50
60 lines
3390 bytes
3390 bytes
Our RT's seem to make good print servers... The parallel port on
the megapel card works well.
Naturally, we'd like to be able to use them to drive more than one
printer - without going to one parallel, and multiple serial.
Multiple parallel is the goal.
I gather under AIX, one can simply grab an XT serial/parallel card,
and go - or so some of our old AIX doc suggests.
Under MSD 2.6, it appears there is some vestigial support for a second
parallel device, but it's not quite all there. Noteably, the
"MASTER.ca" configuration file does not know about the possibility
of a second parallel port, and /dev/MAKEDEV was misinformed about the
proper minor number for a second port. (It wanted to use 0,1,2, while
the limited driver support clearly expects 0,8,16).
I've got a kludgy driver hacked together, that just ignores printer
interrupts, streams info at the printer whether it's ready
for it or not - but slowly, in hope of not overrunning. Blech. It
writes to the printer ok, so I'm reasonably certain I have the right
memory-mapped region for sending data located, and the user-kernel
interface cleared up.
The problem is, I want to use the interrupts, but I'm just not getting
natural interrupts for the second card; There's a routine in the kernel
which I believe should only be executed in response to an interrupt -
but when it runs, it will find that the 8259a in question doesn't know what
caused the interrupt - kernel messages about "spurious interrupts" come to
the console. The "something interrupted me" bit on the 8259a in
question, just isn't getting set. I tried ignoring said bit, and that
gets about five characters printed, before it just dies. I'll look
into it further, later - I wanted to seek some input before continuing.
Also, if I interchange the I/O addresses of /dev/lp0 and /dev/lp1,
the megapel parallel continues to work, but the XT doesn't start
to. So it doesn't entirely seem to be something about the kernel,
at this point.
I may end up adding some printer-specific hacks, to the general "which
interrupt to service" routine, to poll the printer device - but would, of
course, prefer to keep the code cleaner than that.
The XT card I'm using appears to function under MS-DOS, although I'm
not sure if DOS polls off the timer interrupt, or functions off an
actual printer interrupt ("Can you take more? Ok, here's more" vs
"I'll wait until you tell me you're ready")
I currently have both printers on IRQ 7. The source looks like
it was -intended- to handle having multiple printers on the same irq.
Putting the XT card on IRQ 5, I don't even get "spurious interrupts".
That was long winded.
Anyone have any ideas? Is there anyone out there, who can give me a
breakdown of the RT interrupt system? What might be the relationship
between the 8259 handled interrupts, and the "level N interrupts",
which appear to pass control to the 8259's sometimes?
- Dan
Technical Details
Message-ID:
<1992Oct1.185023.12352@uceng.UC.EDU>Path:
arc1-ca.pugleaf.net!sparky!uunet!sun-barr!olivea!spool.mu.edu!news.cs.indiana.edu!babbage.ece.uc.edu!uceng.uc.edu!strombrgShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!sun-barr!olivea!spool.mu.edu!news.cs.indiana.edu!babbage.ece.uc.edu!uceng.uc.edu!strombrg From: strombrg@uceng.UC.EDU (Dan Stromberg) Newsgroups: comp.sys.ibm.pc.rt Subject: RT interrupt system Keywords: MSD 2.6, parallel devices Message-ID: <1992Oct1.185023.12352@uceng.UC.EDU> Date: 1 Oct 92 18:50:23 GMT Organization: College of Engineering, University of Cincinnati Lines: 60