*BSD News Article 17871


Return to BSD News archive

Newsgroups: comp.os.386bsd.questions
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!headwall.Stanford.EDU!nntp.Stanford.EDU!leland.Stanford.EDU!yergeau
From: yergeau@leland.Stanford.EDU (Dan Yergeau)
Subject: Re: > 16 MB of RAM (on an ISA box)
Message-ID: <1993Jul2.164901.22217@leland.Stanford.EDU>
Sender: news@leland.Stanford.EDU (Mr News)
Organization: DSG, Stanford University, CA 94305, USA
References: <1993Jun30.184624.15579@leland.Stanford.EDU> <20ub8n$ngn@germany.eu.net> <20vaj1$8el@hrd769.brooks.af.mil> <210g8n$3pr@pdq.coe.montana.edu>
Date: Fri, 2 Jul 93 16:49:01 GMT
Lines: 63

In article <210g8n$3pr@pdq.coe.montana.edu>, nate@bsd.coe.montana.edu (Nate Williams) writes:
|> In article <20vaj1$8el@hrd769.brooks.af.mil> burgess@hrd769.brooks.af.mil (Dave Burgess) writes:

|> >>However, it does not have a SCSI interface, and I do not know whether anything
|> >>above 16M actually gets *used*.

By not *used*, I assume that you mean not used for DMA transfers.  It
is used as part of the memory pool, right?

|> >The general feeling that I have gotten is that memory above 16M is used,
|> >but can cause problems if you are using an SCSI controller in an IDE
|> >system.

I wouldn't know why that would cause problems.  Can you elaborate?

|> When you can't run more than 16MB of memory is when
|> 
|> 1) You have an ISA box - limits you to 24 data lines == 16MB

This is not correct. The ISA bus only has 24 address lines (and 16
data lines), but many ISA motherboards support up to 32 MB or 64 MB of
addressible memory.  Unfortunately, some of these do it in an
incompatible way.  And some others use a screwed up cache design to
save a couple of tag bits so they only cache the lower 16 MB (any
access to code or data above 16 MB will be very slow).

I have received mail from a few people running with 32 MB on ISA
machines with no problems.

|> 2) You use a disk controller that does DMA (Direct Memory Access)
|>    (Most decent SCSI boards use DMA to get better performance, so
|>     that is why SCSI comes up so often.  IDE drives do not, and
|>     as such don't suffer from having more than 16MB, but also
|>     don't have the same performance)

It looks like the kernel (i386/isa/isa.c) checks that the DMA transfer
will be into the lower 16 MB, and if it won't, the transfer is handled
it in a special way (but I wasn't sure that this special handling is
completely implemented; it seems that it is).  So, this should not be
a problem.

From the INSTALL.NOTES:
  Devices Supported in this Release:

       This release supports a 386/486 SX/DX ISA (ATBUS) sys-
  tem...

which implies that it does not support EISA, except as it is
compatible with ISA (i.e. transfers only to and from to the lower 16 MB). 

|> Theoretically, you get have the same problems if you put an ISA board that
|> does DMA in an EISA box, since the board is limited to 24 bit address lines.

Only if the driver/OS is stupid enough to try to get the ISA board to
do a transfer above 16 MB.  The earlier versions of SVR4 for the 386
failed to check that the transfer was in the ISA range.  It looks like
the Bill and Lynne are smarter than USL.


Dan Yergeau
yergeau@gloworm.Stanford.EDU

You are in a twisty little passage of standards, all conflicting.