weirdness with DMF-32 sync, Qniverter, and uVAX-II...
Steve Dyer
dyer at harvard.UUCP
Tue May 6 01:07:11 AEST 1986
In article <281 at spdcc.UUCP>, dyer at spdcc.UUCP (Steve Dyer) writes:
> 3.) The DMF sync driver has a number of busy loops in the open and close
> routines which have always managed to break out within milli- or micro-
> seconds on the 750. However, these bad coding practices have turned
> into monsters on the MicroVAX! Briefly, the code fragments look something
> like this:
> dmfsaddr->dmfsmr = DMF_MR; /* 0x80 master reset */
> while(dmfsaddr->dmfsmr & DMF_MR) DELAY(10);
> The "master reset" bit is held high until the DMF sync line has finished
> resetting. On the uVAX, the bit is never reset.
> % adm -w /dev/kUmem
> 0x08xxxxx?w 0x80 (where 0x08xxxxx is the mapped "UNIBUS" address
> of the DMF sync misc register above)
> resets the device address, so that 0x80 is no longer held high.
>
Just in case anyone was losing sleep over this, and to clear the name of
Able, the maker of the Qniverter II, I should mention that the problem
ultimately was hardware--Unibus DMA boards placed in slots with NPR jumpers,
and other non-DMA boards in those with the NPR jumpers removed. (Hey, I'm
just the software person.) The Qniverter seems to have an isolating effect;
placed after all the Qbus devices, it allowed for weird behavior as above,
something you'd probably never see on a true UNIBUS machine. Placed before
them, the Qbus, naturally, gets hung.
As of right now, the Qniverter II is working fine with our UNIBUS peripherals
on the mVAX-II.
--
/Steve Dyer
dyer at harvard.harvard.edu
harvard!dyer
More information about the Comp.unix.wizards
mailing list