|Serial and UART Tutorial|
Contributed by Nick Sayer
The Specialix SI/XIO and SX multiport cards use the si driver. A single machine can have up to 4 host cards. The following host cards are supported:
ISA SI/XIO host card (2 versions)
EISA SI/XIO host card
PCI SI/XIO host card
ISA SX host card
PCI SX host card
Although the SX and SI/XIO host cards look markedly different, their functionality are basically the same. The host cards do not use I/O locations, but instead require a 32K chunk of memory. The factory configuration for ISA cards places this at 0xd0000-0xd7fff. They also require an IRQ. PCI cards will, of course, auto-configure themselves.
You can attach up to 4 external modules to each host card. The external modules contain either 4 or 8 serial ports. They come in the following varieties:
SI 4 or 8 port modules. Up to 57600 bps on each port supported.
XIO 8 port modules. Up to 115200 bps on each port supported. One type of XIO module has 7 serial and 1 parallel port.
SXDC 8 port modules. Up to 921600 bps on each port supported. Like XIO, a module is available with one parallel port as well.
To configure an ISA host card, add the following line to your kernel configuration file, changing the numbers as appropriate:
device si0 at isa? iomem 0xd0000 irq 11
Valid IRQ numbers are 9, 10, 11, 12 and 15 for SX ISA host cards and 11, 12 and 15 for SI/XIO ISA host cards.
To configure an EISA or PCI host card, use this line:
After adding the configuration entry, rebuild and install your new kernel.
Note: The following step, is not necessary if you are using devfs(5) in FreeBSD 5.X.
After rebooting with the new kernel, you need to make the device nodes in /dev. The MAKEDEV script will take care of this for you. Count how many total ports you have and type:
# cd /dev # ./MAKEDEV ttyAnn cuaAnn
(where nn is the number of ports)
If you want login prompts to appear on these ports, you will need to add lines like this to /etc/ttys:
ttyA01 "/usr/libexec/getty std.9600" vt100 on insecure
Change the terminal type as appropriate. For modems, dialup or unknown is fine.