Hello, everyone!
I have STLab I-472 PCIe 6 port serial card with Moschip MCS9900 and Moschip MCS9922 chips on it, and I'm trying to get it working with FreeBSD 10.3 (amd64, generic kernel).
According to what I see in the sources of uart driver both chips are supported by the driver:
But after the system boots, I can only see two of six serial ports:
(I excluded cuau0 and ttyu0 devices from the command output because they are unrelated to the card).
Apparently, the uart driver is not installed for the first two ports (and last two ports, too - only ports number 2 and 3 are recognized):
My PCI bus configuration:
The puc driver is loaded.
Why does the uart driver not recognize the rest of the card ports? Maybe it requires some configuration? The Handbook recommends to turn on COM_MULTIPORT, but as far as I understand, this option is for sio driver.
I have STLab I-472 PCIe 6 port serial card with Moschip MCS9900 and Moschip MCS9922 chips on it, and I'm trying to get it working with FreeBSD 10.3 (amd64, generic kernel).
According to what I see in the sources of uart driver both chips are supported by the driver:
Code:
static const struct pci_id pci_ns8250_ids[] = {
...
{ 0x9710, 0x9900, 0xa000, 0x1000,
"MosChip MCS9900 PCIe to Peripheral Controller", 0x10 },
...
{ 0x9710, 0x9922, 0xa000, 0x1000,
"MosChip MCS9922 PCIe to Peripheral Controller", 0x10 },
...
};
But after the system boots, I can only see two of six serial ports:
Code:
#ls {/dev/ttyu*,/dev/cuau*}
/dev/cuau1
/dev/cuau1.init
/dev/cuau1.lock
/dev/cuau2
/dev/cuau2.init
/dev/cuau2.lock
/dev/ttyu1
/dev/ttyu1.init
/dev/ttyu1.lock
/dev/ttyu2
/dev/ttyu2.init
/dev/ttyu2.lock
Apparently, the uart driver is not installed for the first two ports (and last two ports, too - only ports number 2 and 3 are recognized):
Code:
#grep 'pci3\|uart' /var/run/dmesg.boot
pci3: <ACPI PCI bus> on pcib3
pcib3: allocated bus range (3-3) for rid 0 of pci3
pci3: domain=0, physical bus=3
pci3: <simple comms> at device 0.0 (no driver attached)
pci3: <simple comms> at device 0.1 (no driver attached)
uart1: <MosChip MCS9900 PCIe to Peripheral Controller> port 0x9000-0x9007 mem 0xfa006000-0xfa006fff,0xfa007000-0xfa007fff irq 19 at device 0.2 on pci3
uart1: fast interrupt
uart1: PPS capture mode: DCDinvalid
uart2: <MosChip MCS9900 PCIe to Peripheral Controller> port 0x9400-0x9407 mem 0xfa008000-0xfa008fff,0xfa009000-0xfa009fff irq 16 at device 0.3 on pci3
uart2: fast interrupt
uart2: PPS capture mode: DCDinvalid
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart0: console (19200,n,8,1)
uart0: fast interrupt
uart0: PPS capture mode: DCDinvalid
uart: uart0 already exists; skipping it
My PCI bus configuration:
Code:
#pciconf -lv
none1@pci0:3:0:0: class=0x078000 card=0x3002a000 chip=0x99009710 rev=0x00 hdr=0x00
vendor = 'MosChip Semiconductor Technology Ltd.'
class = simple comms
none2@pci0:3:0:1: class=0x078000 card=0x3002a000 chip=0x99009710 rev=0x00 hdr=0x00
vendor = 'MosChip Semiconductor Technology Ltd.'
class = simple comms
uart1@pci0:3:0:2: class=0x078000 card=0x1000a000 chip=0x99009710 rev=0x00 hdr=0x00
vendor = 'MosChip Semiconductor Technology Ltd.'
class = simple comms
uart2@pci0:3:0:3: class=0x078000 card=0x1000a000 chip=0x99009710 rev=0x00 hdr=0x00
vendor = 'MosChip Semiconductor Technology Ltd.'
class = simple comms
The puc driver is loaded.
Why does the uart driver not recognize the rest of the card ports? Maybe it requires some configuration? The Handbook recommends to turn on COM_MULTIPORT, but as far as I understand, this option is for sio driver.