Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!doc.ic.ac.uk!sun.rhbnc.ac.uk!simon From: simon@dcs.rhbnc.ac.uk (Simon Richardson) Newsgroups: comp.os.386bsd.bugs Subject: Re: Question about ns16550 serial ports Date: 24 Jul 1993 13:03:31 GMT Organization: Univ. of London, Royal Holloway College. Lines: 43 Message-ID: <22rbv3$372@sun.rhbnc.ac.uk> References: <52560002@hpuamsa.neth.hp.com> NNTP-Posting-Host: lt5.cs.rhbnc.ac.uk reink@hpuamsa.neth.hp.com (Reinier Kleipool) writes: > > Hello, > > You do not give any information about your card other than that is has > 8 16550 chips on it. The problem you probably have is that the uarts do > not give their interrupts on the irq line the kernel driver exepects them > to arrive. YUou should find out which irq lines your card is using. > you must then build a kernel with the right settings for these IRQ's. > Also you will have a problem if a 8 UARTS are interrupting at the same > IRQ line of the PC. The kernel driver will heve to poll the UARTS to > find out which UART generated the interrupt. I do not think that the > 'standard' driver will do this correctly. > > Reinier Kleipool. I caan *promise* you that the standard driver does not do this. What is worse, with normal ISA hardware they are not wire-OR'ed properly, so you cannot have 2 interrupts on 1 line and still expect it to work (someone at IBM cocked up the original PC design: he wrote "pull down" when he meant "pull up" and nothing ever worked since.) So there are no daisy-chained interrupts on the PC at all, unless the daisy-chaining is done on the interface board before the ISA bus. On most multi-serial boards that I have seen, interrupts are selectable for each UART: 2-15 being a typical range. I actually got the "2 serial on 1 interrupt" part going for the com driver: but because of the hardware problem one serial port would occasionally lock up waiting for action at the other to clear the interrupt contention (great fun when the terminals are in different rooms :-(. ) Polling for 9600 baud is too cpu-consuming. So it is two serial ports per machine for me, I'm afraid. (Then I bought some ne2000 ethernet cards to escape this limit - but that's another (long) story...) Simon --- "A thousand violins cloy very rapidly without percussion" John Fowles