Hello,
The OpenBSD web site states that Cyclades-Z series multiport serial
cards are supported via the cz driver:
Serial Ports
Cyclades-Z series multiport serial boards (cz) (G)
I am running OpenBSD 4.1 stable, on i386.
I installed a Cyclades Ze PCI card, and hooked it up to the external 1U box.
When my machine boots, I see:
"Cyclades Cyclom-Z" rev 0x01 at pci1 dev 9 function 0 not configured
Marco Hyman helpfully explained this because the driver is not part of
the GENERIC kernel. So, I built a new kernel with cz support, and
booted that, here is what the new boot looks like:
Sep 4 21:15:18 log01 /bsd: cz0 at pci1 dev 9 function 0 "Cyclades
Cyclom-Z" rev 0x01cz0: Cyclades-Ze, no channels at
tached, firmware 3.3.1
Sep 4 21:15:18 log01 /bsd: cz0: polling mode, 20 ms interval (2 ticks)
But I don't see any /dev/ttyZ?? ports.
Marco explained I should make the correct devices, his research showed:
The cz driver is in /sys/dev/pci/cz.c which hasn't been changed since 2003.
Looking at that file I see that the cdev_decl uses the name cztty. Looking
as /sys/arch/i386/conf.c I see
cdev_tty_init(NCZ,cztty), /* 71: Cyclades-Z serial port */
in the cdevsw table. mknod(8) with character major device 71 will build
your devices (on i386). You'll have to look at the conf.c for your
architecture if it is not i386.
/sys/dev/pci/cz.c says minor devices are 0-127 for the tty ports and
128-255 for the dialout (cua*) ports. Of course the actual number of
ports depends upon what autoconf finds.
So I wrote a script to generate the proper devices:
mknod ttyZ00 c 71 0
....
mknod ttyZ15 c 71 15
mknod cuaZ00 c 71 128
...
mknod cuaZ16 c 71 143
So I did this, here is the result:
# ls -l /dev/ttyZ?? /dev/cuaZ??
crw-r--r-- 1 root wheel 71, 128 Sep 25 12:40 /dev/cuaZ00
crw-r--r-- 1 root wheel 71, 129 Sep 25 12:40 /dev/cuaZ01
crw-r--r-- 1 root wheel 71, 130 Sep 25 12:40 /dev/cuaZ02
crw-r--r-- 1 root wheel 71, 131 Sep 25 12:40 /dev/cuaZ03
crw-r--r-- 1 root wheel 71, 132 Sep 25 12:40 /dev/cuaZ04
crw-r--r-- 1 root wheel 71, 133 Sep 25 12:40 /dev/cuaZ05
crw-r--r-- 1 root wheel 71, 134 Sep 25 12:40 /dev/cuaZ06
crw-r--r-- 1 root wheel 71, 135 Sep 25 12:40 /dev/cuaZ07
crw-r--r-- 1 root wheel 71, 136 Sep 25 12:40 /dev/cuaZ08
crw-r--r-- 1 root wheel 71, 137 Sep 25 12:40 /dev/cuaZ09
crw-r--r-- 1 root wheel 71, 138 Sep 25 12:40 /dev/cuaZ10
crw-r--r-- 1 root wheel 71, 139 Sep 25 12:40 /dev/cuaZ11
crw-r--r-- 1 root wheel 71, 140 Sep 25 12:40 /dev/cuaZ12
crw-r--r-- 1 root wheel 71, 141 Sep 25 12:40 /dev/cuaZ13
crw-r--r-- 1 root wheel 71, 142 Sep 25 12:40 /dev/cuaZ14
crw-r--r-- 1 root wheel 71, 143 Sep 25 12:40 /dev/cuaZ15
crw-r--r-- 1 root wheel 71, 0 Sep 25 12:40 /dev/ttyZ00
crw-r--r-- 1 root wheel 71, 1 Sep 25 12:41 /dev/ttyZ01
crw-r--r-- 1 root wheel 71, 2 Sep 25 12:40 /dev/ttyZ02
crw-r--r-- 1 root wheel 71, 3 Sep 25 12:40 /dev/ttyZ03
crw-r--r-- 1 root wheel 71, 4 Sep 25 12:40 /dev/ttyZ04
crw-r--r-- 1 root wheel 71, 5 Sep 25 12:40 /dev/ttyZ05
crw-r--r-- 1 root wheel 71, 6 Sep 25 12:40 /dev/ttyZ06
crw-r--r-- 1 root wheel 71, 7 Sep 25 12:40 /dev/ttyZ07
crw-r--r-- 1 root wheel 71, 8 Sep 25 12:40 /dev/ttyZ08
crw-r--r-- 1 root wheel 71, 9 Sep 25 12:40 /dev/ttyZ09
crw-r--r-- 1 root wheel 71, 10 Sep 25 12:40 /dev/ttyZ10
crw-r--r-- 1 root wheel 71, 11 Sep 25 12:40 /dev/ttyZ11
crw-r--r-- 1 root wheel 71, 12 Sep 25 12:40 /dev/ttyZ12
crw-r--r-- 1 root wheel 71, 13 Sep 25 12:40 /dev/ttyZ13
crw-r--r-- 1 root wheel 71, 14 Sep 25 12:40 /dev/ttyZ14
crw-r--r-- 1 root wheel 71, 15 Sep 25 12:40 /dev/ttyZ15
I attempted to use tip on these serial ports:
I attempted to test by adding
ttyZ00|Test port:\
:dv=/dev/ttyZ00:tc=direct:tc=unixhost:
to /etc/remote, which I tried:
# tip ttyZ00
/dev/ttyZ00: Device not configured
link down
I then emailed one of the authors of the cz driver, who stated:
Sorry, I'm not an OpenBSD user or developer, so I can't really be
of any help.
I guess OpenBSD simply ported my code from NetBSD.
So I've given up on getting this to work under OpenBSD.
Is there another high density serial port solution that is supported by OpenBSD?
Don