Serial ports and multiport cards
+
+ The sio driver provides support for NS8250-,
+ NS16450-, NS16550 and NS16550A-based EIA RS-232C (CCITT
+ V.24) communications interfaces. Several multiport
+ cards are supported as well. See the sio(4)
+ manual page for detailed technical documentation.
+
+Digiboard PC/8
+
+ Contributed by &a.awebster;.26 August
+ 1995.
+
+ Here is a config snippet from a machine with
+ digiboard PC/8 with 16550. It has 8 modems connected
+ to these 8 lines, and they work just great. Do not
+ forget to add options "COM_MULTIPORT" or it
+ wo not work very well!
+
+
+device sio4 at isa? port 0x100 tty flags 0xb05
+device sio5 at isa? port 0x108 tty flags 0xb05
+device sio6 at isa? port 0x110 tty flags 0xb05
+device sio7 at isa? port 0x118 tty flags 0xb05
+device sio8 at isa? port 0x120 tty flags 0xb05
+device sio9 at isa? port 0x128 tty flags 0xb05
+device sio10 at isa? port 0x130 tty flags 0xb05
+device sio11 at isa? port 0x138 tty flags 0xb05 irq 9 vector siointr
+
+
+ The trick in setting this up is that the MSB of the
+ flags represent the last SIO port, in this case 11 so
+ flags are 0xb05.
+
+Boca 16
+
+ Contributed by &a.whiteside;.26 August
+ 1995.
+
+ The procedures to make a Boca 16 pord board with
+ FreeBSD are pretty straighforward, but you will need
+ a couple things to make it work:
+
+
+ - You either need the kernel sources installed
+ so you can recompile the necessary options or
+ you will need someone else to compile it for you.
+ The 2.0.5 default kernel does not come with
+ multiport support enabled and you will need to add
+ a device entry for each port anyways.
+
+ - Two, you will need to know the interrupt and IO
+ setting for your Boca Board so you can set these
+ options properly in the kernel.
+
+
+ One important note - the actual UART chips for the
+ Boca 16 are in the connector box, not on the internal
+ board itself. So if you have it unplugged, probes of
+ those ports will fail. I have never tested booting with
+ the box unplugged and plugging it back in, and I
+ suggest you do not either.
+
+ If you do not already have a custom kernel
+ configuration file set up, refer to [ for
+ general procedurs. The following are the specifics
+ for the Boca 16 board and assume you are using the
+ kernel name MYKERNEL and editing with vi.
+
+
+ ]- Add the line
+
+options "COM_MULTIPORT"
+
+to the config file.
+
+
+ - Where the current device sio
+ xxx lines are, you will need to add
+ 16 more devices. Only the last device
+ includes the interrupt vector for the
+ board. (See the sio(4) manual page
+ for detail as to why.)
+
+ The following example is for a Boca Board with an
+ interrupt of 3, and a base IO address 100h. The
+ IO address for Each port is +8 hexidecimal from
+ the previous port, thus the 100h, 108h, 110h...
+ addresses.
+
+
+device sio1 at isa? port 0x100 tty flags 0x1005
+device sio2 at isa? port 0x108 tty flags 0x1005
+device sio3 at isa? port 0x110 tty flags 0x1005
+device sio4 at isa? port 0x118 tty flags 0x1005
+...
+device sio15 at isa? port 0x170 tty flags 0x1005
+device sio16 at isa? port 0x178 tty flags 0x1005 irq 3 vector siointr
+
+
+ The flags entry must be changed from
+ this example unless you are using the exact same
+ sio assignments. Flags are set according to
+ 0xMYY where M indicates the
+ minor number of the master port (the last port on
+ a Boca 16) and YY indicates if FIFO is
+ enabled or disabled(enabled), IRQ sharing is
+ used(yes) and if there is an AST/4 compatible IRQ
+ control register(no).
+
+ In this example,
+
+flags 0x1005
+
+
+ indicates that the master port is sio16. If I
+ added another board and assigned sio17 through
+ sio28, the flags for all 16 ports on
+ that board would be 0x1C05, where 1C
+ indicates the minor number of the master port.
+ Do not change the 05 setting.
+
+ - Save and complete the kernel configuration,
+ recompile, install and reboot.
+
+ Presuming you have successfully installed the
+ recompiled kernel and have it set to the correct
+ address and IRQ, your boot message should
+ indicate the successful probe of the Boca ports
+ as follows: (obviously the sio numbers, IO and
+ IRQ could be different)
+
+
+sio1 at 0x100-0x107 flags 0x1005 on isa
+sio1: type 16550A (multiport)
+sio2 at 0x108-0x10f flags 0x1005 on isa
+sio2: type 16550A (multiport)
+sio3 at 0x110-0x117 flags 0x1005 on isa
+sio3: type 16550A (multiport)
+sio4 at 0x118-0x11f flags 0x1005 on isa
+sio4: type 16550A (multiport)
+sio5 at 0x120-0x127 flags 0x1005 on isa
+sio5: type 16550A (multiport)
+sio6 at 0x128-0x12f flags 0x1005 on isa
+sio6: type 16550A (multiport)
+sio7 at 0x130-0x137 flags 0x1005 on isa
+sio7: type 16550A (multiport)
+sio8 at 0x138-0x13f flags 0x1005 on isa
+sio8: type 16550A (multiport)
+sio9 at 0x140-0x147 flags 0x1005 on isa
+sio9: type 16550A (multiport)
+sio10 at 0x148-0x14f flags 0x1005 on isa
+sio10: type 16550A (multiport)
+sio11 at 0x150-0x157 flags 0x1005 on isa
+sio11: type 16550A (multiport)
+sio12 at 0x158-0x15f flags 0x1005 on isa
+sio12: type 16550A (multiport)
+sio13 at 0x160-0x167 flags 0x1005 on isa
+sio13: type 16550A (multiport)
+sio14 at 0x168-0x16f flags 0x1005 on isa
+sio14: type 16550A (multiport)
+sio15 at 0x170-0x177 flags 0x1005 on isa
+sio15: type 16550A (multiport)
+sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa
+sio16: type 16550A (multiport master)
+
+
+ If the messages go by too fast to see, dmesg
+ > more will show you the boot
+ messages.
+
+ - Next, apprepriate entries in /dev for the devices
+ must be made using the /dev/MAKEDEV
+ script. After becoming root:
+
+cd /dev
+./MAKEDEV tty1
+./MAKEDEV cua1
+.. (everything inbetween)
+./MAKEDEV ttyg
+./MAKEDEV cuag
+
+
+ If you do not want or need callout devices for some
+ reason, you can dispense with making the cua*
+ devices.
+
+ - If you want a quick and sloppy way to make
+ sure the devices are working, you can simply plug
+ a modem into each port and (as root) echo at
+ > ttyd* for each device you have
+ made. You should see the RX lights flash
+ for each working port.
+
+
+
* Parallel ports
* Modems
* Network cards