karl@robot.uucp (Karl-P. Huestegge) (09/22/90)
I'm now using a plain 2 Port serial card as COM3 and COM4 under SCO Xenix 2.3GT for more than a year. I never had problems with this configuration. A year ago I already posted an article how to configure it, but the questions concerning this are coming up frequently. Here it is again (slightly edited). All you have to do is: 1. Configure the Hardware: COM1: Adress x3f8 IRQ 4 COM2: Adress x2f8 IRQ 3 COM3: Adress x3e8 IRQ 5 COM4: Adress x2e8 IRQ 9 (PC-AT) = IRQ 2 (PC-XT) 2. Edit the Files /usr/sys/conf/master /usr/sys/io/sioconf.c 3. Relink your kernel. 4. Make the nodes /dev/tty3[aA] /dev/tty4[aA] That's all. Explained more detailed: 1. Configuring the Hardware: COM1 and COM2 Ports are standard - no problem. I took a 2 port standard serial card. For COM3 and COM4 I took another card of the same type and jumpered the 'alternate' adresses x3e8 for the 1st port (which will become COM3) and x2e8 for the 2nd port of this card (becomes COM4). Now the only problem is to get two free Interrupts. I took IRQ 5 for COM3 (no more second lineprinter) and IRQ 9 for COM4 (free in most systems). I have to mention that IRQ2 and IRQ9 are one and the same pin on the slots of your PC (pin B4). That was IRQ2 on a PC-XT. The PC-AT doesn't have the IRQ2 any more, since it has a slave PIC (Peripheral Interrupt Controller) connected to the old IRQ2. The 8-Bit AT slots now have IRQ9 which is Interrupt 1 on the slave PIC. If you got switches for IRQ5 and IRQ2/9 you're lucky - just jumper them. If you hav'nt you have to solder a wire from the card-edge connector B23 (IRQ5) to the open jumper/switch for the connection of IRQ4 to port1 interrupt output (solder it to the UART-side). Solder a second wire from the slot connector B4 (that's on the solder-side of the pcb, 4th strip from the left) and connect it to the interrupt output of the 2nd port (this was originally jumpered to IRQ3). -------------- -------------- | port 1 | | port 2 | | 8230/16450 | | 8230/16450 | -------------- -------------- | < interrupt outputs > | | | |_______ |________ | |new wire | |new wire cut | cut | | | | | | | | | IRQ4 IRQ5 IRQ3 IRQ9 B24 B23 B25 B4 At last you have to disable lpt3 (to free IRQ5). Now you're ready to stick the cards into the slots. 2. Configuring the kernel: * Edit the file /usr/sys/io/sioconf.c and append two new entries for COM3 and COM4: board # 2(3), enum-type IBM_BOARD, no of ports 1, int-vec 5(25), minor dev 4(12), port adress 3e8(2e8), int poll adr offs 0, port inc 0, 8250-int control 8(=MCRBIT3) {2,IBM_BOARD, 1,5,4, (sd)0x3e8,0, 0,MCRBIT3}, /*ibm COM3*/ {3,IBM_BOARD, 1,25,12,(sd)0x2e8,0, 0,MCRBIT3}, /*ibm COM4*/ ^^ for all slave-PIC interrupts you have to add octal '30': 1+30=31(octal) == 25(dec) ----------------- * Edit /usr/sys/conf/master: vv line 'sio': replace int-vect '33 and 34' with '31 and 5'. line 'pa' : delete interrupt entry 5 and set vsiz=1. line 'ex' : delete interrupt entry 31 and set vsiz=0. 3. Recompile the kernel with 'make' and copy the new kernel to /. 4. Make the tty nodes mknod /dev/tty3a c 5 4 mknod /dev/tty3A c 5 132 mknod /dev/tty4a c 5 12 mknod /dev/tty4A c 5 140 5. Reboot and enjoy. Karl-Peter Huestegge. -- Karl-Peter Huestegge karl@robot.UUCP Niedstr. 19 (karl@netmbx.UUCP) 1 Berlin Friedenau ..tmpmbx!einoed!utopia!robot!karl +49 (0)30-851 81 98