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