Efficient Multi-port Serial Device Driver


I am trying to develop a multi-port serial port driver for a serial card. I wanted to know can we directly use the devc-ser8250 for our card? Is it an efficient multi-port driver?

The serial card has 8 ports and the interrupts can be shared.

If your card uses standard UARTS then the devc-ser8250 will work. That includes 8250, 16450, 16550’s and probably some newer ones. What do you mean by efficient?

The device is based on the 16C554 / 16C654 quad serial port IC.This device contains 4
identical sets of registers, one for each port, and is compatible with the standard PC serial
port. The 16C554 has 16-byte FIFOs for each port and operates up to 115.2kbaud, while the
16C654 has 64-byte FIFOs and operates up to 460.8kbaud. I meant efficient as able to handle the interrupts equally well, no loss of data and no unnecessary delays in handling read/write requests.

My guess is that devc-ser8250 will work just fine. The 16C554 sounds like 4 16550’s. I never worked with a 64-byte FIFO but it’s been a while. Unless you concoct something foolish, like a poorly written interrupt handler at a higher priority, you should have no trouble, even at the highest baud rates.