[ntp:hackers] FreeBSD and serial port cards

Harlan Stenn stenn at ntp.isc.org
Wed Feb 21 17:04:52 PST 2007


Folks,

I'm having difficulty getting more serial ports onto an x86 box.

My memory is a bit fuzzy.

I have an older box that was running FreeBSD4.  I was (mostly) able to
use a USB serial adapter (yes, it had horrible jitter) and a 4-port PCI
card.  I upgraded the OS to FreeBSD6, and somewhere in there I lost the
ability to talk to refclocks attached to either the USB serial card or
the 4-port PCI card.

On FreeBSD6-stable I see the following during boot:

...
puc0: <Oxford Semiconductor OX16PCI954 UARTs> port 0xff20-0xff3f,0xff00-0xff1f mem 0xffe7d000-0xffe7dfff,0xffe7c000-0xffe7cfff irq 18 at device 17.0 on pci0
sio4: <Oxford Semiconductor OX16PCI954 UARTs> on puc0
sio4: type 16550A
sio4: unable to activate interrupt in fast mode - using normal mode
sio5: <Oxford Semiconductor OX16PCI954 UARTs> on puc0
sio5: type 16550A
sio5: unable to activate interrupt in fast mode - using normal mode
sio6: <Oxford Semiconductor OX16PCI954 UARTs> on puc0
sio6: type 16550A
sio6: unable to activate interrupt in fast mode - using normal mode
sio7: <Oxford Semiconductor OX16PCI954 UARTs> on puc0
sio7: type 16550A
sio7: unable to activate interrupt in fast mode - using normal mode
(I suspect the last line has to do with PUC_FASTINTR but I could be
wrong).

I am currently unable to receive data from refclocks using either this
4-port PCI card or on a USB serial dongle.  I believe I was able to
receive data when I was using FreeBSD4.

I have tried kernels compiled with and without PUC_FASTINTR.

If I fire up a getty on one of the ports on the PCI card and "cross
connect" to this port from another port on the PCI card, I can see the
"login" prompt via 'cu'.  If I connect a "loopback" connector to a port
on the PCI card I can see what I type.

We have connected an oscilloscope to the serial cable where it connects
to the PC and we are seeing +/- 10V signals and the timing of the data
bits seens correct as well.

If I connect the serial cable from the refclock to the onboard serial
connector I see the data.

I have 2 sources of serial data, one is from a "transmit data only"
clock, and the other contains PPS on the DCD line (near as I can tell).
I see "sioX: 1 more silo overflow (total N)" messages on the port that
is connected to the PPS source.

We therefore suspect a problem with the OS and/or the PCI serial card.

Anyway, my goal is to have "several" serial ports that I can connect to
different refclocks.

My preference is to keep using FreeBSD on this machine, but I will
change if that is what I need to do to get something that works.

I would appreciate any help/suggestions feedback toward reaching this
goal.

Ideas also include:

- a FreeBSD device driver wizard taking a look
- suggestions on what I might to do to /boot/device.hints
- suggestions on alternative serial port hardware

Any and all help would be appreciated.

H


More information about the hackers mailing list