16c550c UART support?


I bought a MOXA industio CP-114 4-port RS-422/485 card, which features 16C550C UART. Assuming this UART is compatible with the 8250, I use
#devc-ser8250 -u3 &
to init the card. However, after that, I can only find /dev/ser3 and ser4. There should be 2 more ports appended. And I find these ports might be an overlay of the 2 built-in RS-232 ports in my machine.

Can anyone tell me whether the QNX 6.x support the 16c550c UART? Is it compatible with 8250? If yet support, how can I use it under QNX?


The pci info of this card is as follows:

Class = Communication (Serial Controller)
Vendor ID = 1393h, Moxa Technologies Co Ltd
Device ID = 1141h, Unknown Unknown
PCI index = 0h
Class Codes = 070080h
Revision ID = 2h
Bus number = 0
Device number = 9
Function num = 0
Status Reg = 280h
Command Reg = 3h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 8h un-cacheable
PCI IO Address = d800h length 128 enabled
PCI IO Address = dc00h length 64 enabled
PCI IO Address = e000h length 16 enabled
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = INT A
Interrupt line = 11

By just giving -u3 you are going to be re-setting up the default PC serial ports as /dev/ser3 and /dev/ser4. You need to pass in the IO port and IRQ for each of the additional ports on the PCI card. Now, on my dual PCI card each port has a PCI IO Address entry. That is obviously not the case with your setup. So you need to look in the manual and figure out which of the four ranges is the base address for your ports and then pass in the IO and IRQ values…

devc-ser8250 -u3 0xdc00,11 -u4 0xdc10,11 -u5 0xdc20,11 -u6 0xdc30,11

…like that.

Hi cdm,

Thanks for your suggestion! I’ve tried as you advised, but took no effect. Any other suggestion?

Are you sure this is a dumb serial card - ie. it doesnt’ require a special driver? I find the IO space advertised as “interesting”. In other words, I would expect either 4 distinct ranges (one per port) or 1 larger range which is shared by all the ports.

What kind of info did the manufacturer provide? I don’t doubt that QNX works with a 16550, so that won’t be the problem.


I’ve already fixed the installation problem.

When install the driver, I input:
#devc-ser8250 -u3 0xdc00,11 -u4 0xdc08,11 -u5 0xdc10,11 -u6 0xdc18,11
And this time the communication between the 2 ports works.

I now can make sure each ser port is assigned an I/O address of 8 bytes,NOT 16 bytes. In my previous attemption I increased 16 bytes by each port, so it failed.
The latter 32 bytes of the I/O address is not used. I guess it’s
reserved for the 8-port card, for they, I guess, share the same EPROM bios.