Subject: Re: HD DMA, Non contig mem
To: Michael L. Hitch <osymh@gemini.oscs.montana.edu>
From: Tim Walls <tjw1@doc.ic.ac.uk>
List: amiga
Date: 11/14/1994 12:51:05
>On Nov 12,  9:09pm, Tim Walls wrote:
>> 1) Is there any way (ie. what should I patch in the kernel (I know its
>>    lazy of me to ask, but while I'm using the phone bill ;-)), to let the  
>  I'm not sure I understand.  The DMA mask is hardcoded in atzsc.c to be

Thats OK, I'm not sure I do either <grin>.  I'll try to clarify...

>0xff000000 since the A2091 physically can't DMA to any address with those
>bits set.  The ROM doesn't have anything to do with the DMA mask or how
>NetBSD does DMA.  If NetBSD runs in 32 bit memory that is outside the
>range that the A2091 can use for DMA, the driver will be allocating
>a Zorro II buffer (which will be allocated from chip memory if you don't
>have any memory in the Zorro II memory space) and use DMA transfer with
>that buffer.

This is what I gathered is supposed to happen after looking at the code,
it just doesn't seem to be working.

I have the problem under AmigaDOS as well - the A2091 doesn't seem to realise
that it can't DMA into the 32bit RAM, so when anything tries to direct
device access, the Amiga crashes (under normal use it doesn't, cos the
filesystem has the good sense to use buffers not in 32bit RAM);  I have fixed
this on the Amiga using a patch program off Aminet (whose name escapes me
now :-(), which basically implements a bounce buffer.  I am also told that a
newer version of the A2091 ROM would fix the Amiga side of things, because the
SCSI device knows the problems.

Now, I was _also_ told that the reason NetBSD wouldn't work with this card
& ROM is because the ROM reports an invalid DMA mask when queried.  Having
looked at the code, tho, I can't see how this happens (since the mask is
hard coded :*).  But nevertheless, NetBSD/Amiga and my A2091 do not get on
_at_all_ with DMA (I have to patch my kernels with _sbic_no_dma in order
for the thing to work)...

Since the boot output says its allocated a bounce buffer, which appears to
be inside the CHIP RAM area, I can't see why on Earth it gets so utterly
screwed up (it fails in a strange kinda way, where bits of a file are
shafted but other bits will appear to work, but then you notice the
directory structure is shafted and the file sizes are all wrong - so _some_
data gets through, but most seems to get lost somewhere).


Its got me stumped :*)

>  I'm not certain if the A2091 can be used in an A4000 though.  I was

I'm using a 2000 anyway, I am working on getting the new ROMs.  But I figured
since a software patch is enough to get the Amiga side working, the same could
be said of the NetBSD side.

>> 2) I'm still hunting for the non-contigous RAM kernel patches - I really
>>    would be eternally grateful to anyone who could point me at them!
>  A couple of patches were posted to this mailing list a while ago.  I

Yes, I trawled the contents files in the archive but didn't turn anything up,
but perhaps I didn't go back far enough.

>could try to get mine organized and send them to you (I have lots of other
>changes in my kernel, and some of the changes are a little hard to separate
>out).

Well, if you can extricate them easily I'd be grateful, but don't worry
about it, I'm sure I can turn them up somewhere :*).

>Michael

Cheers, Tim.


-- 
 __ //||/  Tim Walls/TJay            EMail                 tjw1@doc.ic.ac.uk
 /_//=|/  Skating away...           PGP2.3 Key, finger  tjw1@sg1.cc.ic.ac.uk
----------------------------------------------------------------------------
  `And with the last line almost drawn, wish you goodbye 'till further on'