[comp.unix.i386] > 16MB on ISA bus, with aha1542a

steve@cdp.UUCP (07/11/90)

Hi.

I am trying to run over 16MB on an ISA bus machine
(that holds 24MB).  We use an adaptek aha1542a SCSI
controller, and realize that it cannot DMA into
memory over 16MB.

I heard in this group of some parameters in the AT&T
UNIX kernel "3.2...", that allocate kernel buffers
to be used for DMA, when there is a request to DMA
into memory in certain ranges.  Presumably, any
3.2.* UNIX that has these parameters, is capable of
disallowing DMA to memory over 16MB.  The parameters
are called DMAEXCL and DMAABLEBUF.

I am running Interactive 2.0.2, and it doesn't have
DMAABLEBUF.  I wonder if the new release (2.0.2)
does.  Can anyone running 2.2 tell me.  You could
just do : 

     egrep DMA /etc/conf/cf.d/*tune

and post/mail the results.

I have heard that this functionality was added in
AT&T release 3.2.2, so if Interactive's porting base
was 3.2.2, those parameters should be there.


Steve Fram
Community Data Processing (CdP)
{pyramid, hplabs, ...}!cdp!steve

wsinpdb@lso.win.tue.nl (Paul de Bra) (07/18/90)

In article <654400008@cdp> steve@cdp.UUCP writes:
>I am trying to run over 16MB on an ISA bus machine
>(that holds 24MB).  We use an adaptek aha1542a SCSI
>controller, and realize that it cannot DMA into
>memory over 16MB.
>
>...3.2.* UNIX that has these parameters, is capable of
>disallowing DMA to memory over 16MB.  The parameters
>are called DMAEXCL and DMAABLEBUF.

DMAEXCL is for a different kind of brain-damage (not being able
to handle more than one dma operation at the same time)

DMAABLEBUF already exists in AT&T Unix sVr3.2 (the docs i have are
for 3.2 release 2.0, so preceding 3.2.1 and 3.2.2). I don't know
about sVr3.1 anymore.

It is not surprising that AT&T added something for DMA to memory
above 16M early on because the AT&T 6386 (the original olivetti ones)
can hold 48 Mbytes of ram.

I have no idea why any of the other Unix vendors would omit this
capability.

Paul.
(debra@research.att.com)

tim@delluk.uucp (Tim Wright) (07/23/90)

In <654400008@cdp> steve@cdp.UUCP writes:

>I am trying to run over 16MB on an ISA bus machine
>(that holds 24MB).  We use an adaptek aha1542a SCSI
>controller, and realize that it cannot DMA into
>memory over 16MB.

>I heard in this group of some parameters in the AT&T
>UNIX kernel "3.2...", that allocate kernel buffers
>to be used for DMA, when there is a request to DMA
>into memory in certain ranges.  Presumably, any
>3.2.* UNIX that has these parameters, is capable of
>disallowing DMA to memory over 16MB.  The parameters
>are called DMAEXCL and DMAABLEBUF.

>I am running Interactive 2.0.2, and it doesn't have
>DMAABLEBUF.  I wonder if the new release (2.0.2)
>does.

DMAABLEBUF and DMAEXCL are in the kernel. However the most important
thing is to change /etc/default/boot and alter/add the line
MEMRANGE=0-640KL0,1M-16128K:0,16M-128M:1
which I believe tells the kernel where DMAABLE memory is located - the
buffers parameter merely allocates some buffers to do DMA into if you
go outside this range. That at least is the way I understand it.
As you can see - we block out 640K to 1MB. I think MEMRANGE only
refers to whether or not the memory is DMAABLE but I'm sure someone
will correct me if I'm wrong :-)

Tim
--
Tim Wright, Unix Support               | Email: ...!ukc!delluk!tim
Dell Computer Corp. (UK), Bracknell    | (pending domain registration).