[comp.unix.xenix.sco] How To Configure COM3 and COM4 under SCO XENIX

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