[comp.unix.xenix.sco] Configuring COM3 - xenix ignores me

spiesman@amarna.gsfc.nasa.gov (SPIESMAN, BILL) (03/15/91)

I am having a problem configuring my compuer SCO xenix to use a third serial
port. I have tried a few recipes that I have found on the net, but I haven't had
much success yet. What I have is a basic IBM style I/O card which has
2 com ports and a printer port. I also have a modem which is configured
for com1. I use one serial port on the I/O card which is configured as
com2. I still have one serial port left (which is now configured as com3)
which I want to use.

My setup is thus:

    port        address        IRQ
---------------------------------
    com1        3f8             4
    com2        2f8             3
    com3        3e8             5

I have jumpered the IRQ5 line as it comes into the card to the
com3 port.

I then followed the net recipes, adding this line to sioconf.c:
{2,IBM_BOARD, 1,5,4, (sd)0x3e8,0,0,MCRBITS3},

and modifying the master file to include IRQ5 as a serial interrupt
by putting a 5 in the vec3 column of sio and incrementing vsiz to 3.
(I also set vsiz to 1 and removed IRQ5 from the pa line).


Now the recipe says that I'm done... but when I rebuild the kernel and
reboot, there are no new serial lines listed. In an attempt to see
if I was changing anything, I tried to break the serial ports by 
changing the entries in sioconf.c (changing the interrupt and/or
memory addresses). This HAD NO EFFECT! I realized that when xenix
boots that it might be reading the actual hardware configuration
from the BIOS and over-riding the entries in sioconf.c.

So I jumperd the I/O card so that com1 used IRQ3 and com2 used IRQ4,
changed the entried in sioconf.c to reflect this hardware change and
built/booted the new kernel. And what happened was.... the same
old thing. The boot message indicated that the two serial ports
are com1/irq4 and com2/irq3. Now the system flailed since the
interrupts were associated with the wrong ports, and I am left 
with the same problem; Xenix seems to be ignoring the changes I make
to sioconf.c. 

Has anybody dealt with this before?? Is there another step that
I have skipped??


HELP!!!

Bill Spiesman

spiesman@amarna.gsfc.nasa.gov

lshih@gmuvax2.gmu.edu (Lieh-Wen Shih) (03/16/91)

OK, I had the exact same problem but I finally managed to "cheat" it
out.  Now, first thing to ask is: do you need all three ports under
Xenix?  If yes, skip this article.  If no, then my experience may be of
help.  Simply speaking, I just changed the address of COM1 in
sioconf.c to the actual address of COM3.  Since they share the same IRQ,
there's no problem to tell Xenix to look for another address.  Of
course, you then lose one port (the real COM1).  Put into steps:

	1. modify sioconf.c: change the address of COM1 to that of COM3.
	   (or COM2 to COM4).  In my case, I changed 2e8 to 3e8.
	2. re-compile kernel.
	3. put kernel in root  --- done!

Remember, after you do this, COM1 (tty1A/a) of Xenix is actually the
COM3.  But Xenix can just use it.  In my case, it works fine.

Levin
lshih@gmuvax2.gmu.edu

karl@robot.in-berlin.de (Karl-P. Huestegge) (03/16/91)

spiesman@amarna.gsfc.nasa.gov (SPIESMAN, BILL) writes:

>I am having a problem configuring my compuer SCO xenix to use a third serial
>port. I have tried a few recipes that I have found on the net, but I haven't had
>much success yet.

>    com3        3e8             5
>I then followed the net recipes, adding this line to sioconf.c:
>{2,IBM_BOARD, 1,5,4, (sd)0x3e8,0,0,MCRBITS3},

.. sounds good.

>and modifying the master file to include IRQ5 as a serial interrupt
>by putting a 5 in the vec3 column of sio and incrementing vsiz to 3.
>(I also set vsiz to 1 and removed IRQ5 from the pa line).

That, too.

>Now the recipe says that I'm done... 

.. Wait: Did you mknod the /dev/tty3a and /dev/tty3A ( minors 4 and 132
according to your entry in sioconf.c) ?

> but when I rebuild the kernel and..

Hmm... did you build it with 'make xenix' ? Remember that you must get
a new /usr/sys/io/sioconf.o (check the date) and that this sioconf.o
must get linked into the kernel (Reassure yourself by watching or
logging the building of the kernel). Copy or hdinstall the new kernel
to the root directory. 

It's not sufficient to simply link the kernel with 'link_xenix'..

I didn't have any troubles with the procedure you describe..

>..reboot, there are no new serial lines listed. In an attempt to see
>if I was changing anything, I tried to break the serial ports by 
>changing the entries in sioconf.c (changing the interrupt and/or
>memory addresses). This HAD NO EFFECT! 

Well, the interrupts can't be tested on boot. They only get active
when chars arrive at your port. But the Adresses you define in
sioconf.c are tested to see if a port is at that adress..

>I realized that when xenix
>boots that it might be reading the actual hardware configuration
>from the BIOS and over-riding the entries in sioconf.c.

No no. The BIOS doesn't define any serial port adresses and isn't
even used by the xenix kernel. And the kernel doesn't write
any source-code. ;-)  (nice idea !)

sioconf.c gets only changed by you. (Check the date & time!)

> Xenix seems to be ignoring the changes I make
>to sioconf.c. 

He isn't allowed to ;-)

Well, notice date&time of sioconf.c, cd to /usr/sys/conf and 'make xenix'.
Now check that /usr/sys/io/sioconf.o and /usr/sys/conf/xenix are up to date.
Finally copy /usr/sys/conf/xenix to /xenix and reboot.

-- 
Karl-Peter Huestegge                            karl@robot.in-berlin.de
Berlin Friedenau                                Bus: 2,25,48,81,85
U-Net: Bhf.F.Wilh.Pl.                           ..unido!fub!geminix!robot!karl

terry@unx2.ucc.okstate.edu (Terry J. Klarich) (03/20/91)

In article <4628@dftsrv.gsfc.nasa.gov> spiesman@amarna.gsfc.nasa.gov writes:
>I am having a problem configuring my compuer SCO xenix to use a third serial
>port. I have tried a few recipes that I have found on the net, but I haven't had
>much success yet. What I have is a basic IBM style I/O card which has
>2 com ports and a printer port. I also have a modem which is configured
>for com1. I use one serial port on the I/O card which is configured as
>com2. I still have one serial port left (which is now configured as com3)
>which I want to use.

I had 4 com ports working when I was using xenix 2.3.2.  When I installed the
xnx155b upgrade which brought xenix up to 2.3.3, they quit.  I am assuming
this is what happened to you.  First of all, make sure you comment out one
unused port discripter in your sioconf.c file.  I think there is a fixed
number of available configurations.  I could be wrong though.  Anyway, it
won't hurt anything.  Next, in your link_xenix script, you will see a line
which calls ld.  put a reference to your sioconf.o (../io/sioconf.o" file
before the reference to vpixio.a library.  this should get you going.  This
bit me as well.  Bela Lupkin from sco pointed this out to me.  (thanks sco)

Terry
-- 
--------------------------------------------------------------------------------
Terry Klarich (terry@unx2.ucc.okstate.edu) n5hts