[comp.unix.wizards] Sun 4's and DR11-W

hutch@net1.ucsd.edu (Jim Hutchison) (08/03/88)

Configuration:
	Sun 4/280 with a supereagle
	450/460 Xylogics disk controller
	Xylogics SCSI tape controller (1/2")
	??? SCSI cart tape (1/4") (st)
	IKON 10094 DR11-W interface board in a VME2-3, jumpered to be a 10084
	all running under Sun OS 4.0

The dilemma is testing the DR11-W interface.  With the donated driver,
from JPL via Sun, loopback testing is fine as long as I don't try
to do any DMA.  As soon as I do *any* DMA, one word or more, I get
the interrupt routine drintr trying to do 2 iodone()'s on the same
block, agggh, panic: dup biodone.  The status registers are working
fine, write flows to read, and read acks to write.  Synchronous writes
work splendidly.  Stuff it in one end, it loopsback and comes in the other
end.

So does anyone out there in netland have any suggestions?  I really think I
have missed something.  I have source, I can fix up the driver.

/*    Jim Hutchison   		UUCP:	{dcdwest,ucbvax}!cs!net1!hutch
		    		ARPA:	JHutchison@ucsd.edu		*/

leres@ace.ee.lbl.gov (Craig Leres) (08/03/88)

This is probably unrelated to Jim Hutchison's DR11 problem, but is of
interest to people porting device drivers from the 68K to sparc
families. When dealing with 16 bit data vme address space (16d16,
24d16, 32d16), you're supposed to only do 16 bit accesses.

If you do a 32 bit access in 16 bit data vme address space on the
68020, the processor (or memory management) automatically does two 16
accesses. But the hardware on a sparc isn't so helpful; so if you need
to read a 32 bit register (for example) you've got to do the 16 bit
reads and construct the 32 bit quanity yourself.

		Craig