From owner-freebsd-questions Sat Aug 26 13:13:35 1995 Return-Path: questions-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id NAA29119 for questions-outgoing; Sat, 26 Aug 1995 13:13:35 -0700 Received: from elf.kendall.mdcc.edu (elf.kendall.mdcc.edu [147.70.150.122]) by freefall.FreeBSD.org (8.6.11/8.6.6) with ESMTP id NAA29101 ; Sat, 26 Aug 1995 13:13:30 -0700 Received: (from freelist@localhost) by elf.kendall.mdcc.edu (8.6.11/8.6.9) id QAA17171; Sat, 26 Aug 1995 16:05:14 -0400 Date: Sat, 26 Aug 1995 16:05:13 -0400 (EDT) From: "Don's FList drop" To: questions cc: doc@freebsd.org Subject: Re: Boca multiport card In-Reply-To: <199508260525.WAA16566@idiom.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: questions-owner@freebsd.org Precedence: bulk [I trimmed -ports, it seemed irrelvant to my comments.] On Fri, 25 Aug 1995, David Muir Sharnoff wrote: > * Does anybody know if Boca 16 ports card would work with freebsd 2.0.5 ? and > * can you use two of them? instad of terminal server, please include a hint > * how to configuer the server and the modems with them > > This should be documented somewhere... The sio pages combined with the LINT comments and the old FAQ blurb enabled me to do it with not too much trouble. However, the constant yammering of my Linux Witness coworker about how much doc they have for their system motivated me to write this little 3 page hand-holder for the process. I posted it to -questions once, but not -doc, so here it is again. It's sloppy and hasn't been spellchecked (I eventually feel guilty about doing non-company work on the company time...) but it should get anyone through the process. >From freelist@elf.kendall.mdcc.eduWed Aug 23 09:07:03 1995 Date: Wed, 2 Aug 1995 11:16:40 -0400 (EDT) From: Don's FList drop To: questions Subject: Boca 16 HOWTO Someone indicated they'd like to see this document, so, in a massive effort to avoid Real Work, I typed out a rough draft. The Handbook Big Cheese is welcome to clean it up and include it, presuming it passes muster. Installing and enabling the Boca 16 with FreeBSD ------------------------------------------------ So you got yourself a Boca 16 port board or are thinking about it? The modifications to make it happen with FreeBSD are pretty straighforward, but you'll need certain things before you can Make it Happen: One, you either need the kernel sources installed so you can recompile the necessary options or you'll need someone else to compile it for you. The 2.0.5 default kernel does not come with multiport support enabled and you'll need to add a device entry for each port anyways. Two, you'll 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've never tested booting with the box unplugged and plugging it back in, and I suggest you don't either. Make it Happen -------------- If you don't already have a custom kernel configuration file set up, follow the instructions in the FAQ or handbook on doing so. I strongly advise you to refer to it, but the basics are: (from the FAQ) cd /usr/src/sys/i386/conf cp GENERIC MYKERNEL vi MYKERNEL (this is the point where you make the changes indicated) config MYKERNEL cd ../../compile/MYKERNEL make all make install reboot Actual Kernel Changes --------------------- The following presumes you're using the kernel name MYKERNEL and editing with vi. In the configuration file, you need to make the following changes: add the line "options COM_MULTIPORT" where the current "device sio xxx" lines are, you'll need to add _16_ devices. Only the last device includes the interrupt vector for the board. (See man sio for detail as to why) In my kernel, the devices are as follows: 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 configuration of my Boca Board is interrupt 3, IO port address 100h. Each port is +8h from the previous port, thus the 100h,108h,110h... addresses. 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 compilation and install process. After compile, 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 may 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 Making the devices ------------------ If you've ever used the MAKEDEV script, this will be a cinch. If you've never used the MAKEDEV script, this will be a cinch. I'm sure some bright person could do a script off the top of their head to create all 16 devices, but the slow-and-stupid way (ie - my way) is to su root cd /dev ./MAKEDEV tty1 ./MAKEDEV cua1 .. (everything inbetween) ./MAKEDEV ttyg ./MAKEDEV cuag If you don't want/need callout devices for some reason, you can dispense with making the cua* devices. You're Done ----------- That's all folks. 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. It's cheesy, but it's quick. Check the FAQ for information on setting up dialin and out, and good luck! Don Whiteside whiteside@acm.org