[comp.os.minix] 1.3 rs232 bug HELP WANTED

mullen@sdsu.UUCP (deborah mullen) (03/11/89)

This is a strange one.  For my own reasons I want to build a kernel
with NR_CONS in tty.h defined to be 2 instead of 1.  Building a kernel
with ONLY this change in the offical 1.3 sources ( all crcs match) 
does not work.

I have thus far determined that control does not return (with a kernel
built with NR_CONS = 2) from the last call in init_rs232 to port_out.
The specific call is:
  port_out(rs->rs_base + RS232_INTERRUPTS, RS232_INTERRUPT_CLASSES);

It returns from the call to port_out just before this statement.

All calls to port_out in the rs232 module have the same values as those
made with by a kernel built with NR_CONS = 1;

If this one line is commented out, then minix comes up with a login.

I have modified tty.c to call init_rs232() before tty_init(). The 
results were the same, no return from that specific port_out call.

I have built this bum kernel both under MINIX and under DOS with
Turbo C with the same results. There is a slight difference in the
code size between a kernel with NR_CONS = 1 and a kernel with 
NR_CONS = 2.  This seems to be because the compiler optimizes with
the "1" constant by decrementing a register as opposed to subtracting
a constant.

It makes no differnce with this problem if kernel is
combined or separate I&D. Also no difference was noted when the
values for K_STACK_BYTES were made the same in both mpx88.s 
and kernel/const.h.

Changing K_STACK_BYTES to a larger number or the stack allocated to the
tty task from 256 to 512 made no difference.

I am out of things to try. Any help/ideas appreciated.
--Deborah Mullen