785 + UDA50 + 4BSD = Hang (was Re: bsd4.2 on 11/785)
Chris Torek
chris at umcp-cs.UUCP
Sun Oct 13 10:16:20 AEST 1985
Your problem with the mysterious hangs is almost surely the infamous
UDA50 microcode bug. After the system hangs, open up the Unibus
box and take a look at the UDA50 lights. They will be stuck in an
odd state (normal state is a little ripple down four LEDs, and
another four blinking between 1010 and 1000, or something like
that).
I surmise that the problem is caused by sending MSCP GTUNT commands
to the controller faster than it can handle them. I think this
was the old timing bug that DEC `fixed' long ago, and that the
timing window was merely tightened down to the point where 780s no
longer invoked it---but 785s are faster.
A `quick hack' fix is to put a DELAY(1000) (more or less; 1000
seems to work but is likely higher then necessary) under the `case
M_OP_GTUNT|M_OP_END' in /sys/vaxuba/uda.c$udrsp(). The right way
to fix the the problem is to stop hammering GTUNT commands at the
UDA50; they are necessary only because the driver is not using the
appropriate Unibus resource allocation protocols.
Indeed, this last is the source of another problem with the UDA50
driver: it causes frequent data-late errors on RK07s, as it ignores
the Unibus lock normally granted to transfers on RK disks. Someday,
when my input event queue drops back below the high water mark, I
shall fix that. . . .
--
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 4251)
UUCP: seismo!umcp-cs!chris
CSNet: chris at umcp-cs ARPA: chris at mimsy.umd.edu
More information about the Comp.unix.wizards
mailing list