KDA50 woes

Michael Sokolov msokolov at meson.jpsystems.com
Thu Sep 2 11:15:23 AEST 1999


I wonder, does anyone here know anything about the KDA50? I've solved my RA72
problem (as it turns out, if there is no control panel connected, the drive
assumes normal operation, i.e., spin up, go on-line, enable port A, no write
protect, and the unit number between 0 and 7 is set by the switches on the
right side of the drive), but now I have a different problem: I can't get UNIX
(4.3BSD-Quasijarus of course) to recognize the KDA50, although it worked fine
on my Webster ESDI controller back in Ohio, and others have also reported
successfully booting it on different controllers. By inserting a few debugging
printouts in the uda driver, I have determined that it fails the udaprobe(). I
know very little about UDA50/KDA50 registers, so I may be wrong, but it looks
to me that the code is trying to do the following. It diddles the controller
registers to make it start the initialization. Then apparently it expects the
controller to interrupt and set some status bits in some register. However,
because of Q-bus's odd interrupt protocol and the need to determine the IPL of
the controller, the procedure is done non-trivially. First it does an spl6(),
disabling all interrupts except BR7 (which these controllers apparently don't
use). Then it does the register diddling and testing with these interrupts
disabled. It allows the CPU to field the interrupt only when the register bits
indicate that the operation has been performed and the interrupt has been
posted. Apparently the assumption is that the controller will post the
interrupt and then set the right bits in the right registers without waiting
for the CPU to field the interrupt. Also apparently the KDA50 is different and
doesn't set those bits until the interrupt is fielded, breaking this code.

So my questions to the folks are: First, is my understanding of the situation
correct? Second, what can be done about it? I guess as a temporary solution I
can remove this problematic IPL autodetection code and hard-code the IPL of my
KDA50, but what is it? Is the IPL set with switches on the KDA50 or how? And
what do the KDA50 switches do in the first place? Does anyone know? TIA.

Michael Sokolov
Special Agent
International Free Computing Task Force

ARPA Internet SMTP mail: msokolov at meson.jpsystems.com

Received: (from major at localhost)
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id PAA00399
	for pups-liszt; Thu, 2 Sep 1999 15:09:20 +1000 (EST)

More information about the TUHS mailing list