Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Feb 95 14:26:26 MST
From:      terry@cs.weber.edu (Terry Lambert)
To:        gibbs@estienne.CS.Berkeley.EDU (Justin T. Gibbs)
Cc:        bugs@warlock.win.net, freebsd-hackers@FreeBSD.org
Subject:   FIX FOR CACHE/DMA RANGE PROBLEMS (was Re: new SNAP)
Message-ID:  <9502032126.AA23872@cs.weber.edu>
In-Reply-To: <199502031951.LAA10529@estienne.cs.berkeley.edu> from "Justin T. Gibbs" at Feb 3, 95 11:51:22 am

next in thread | previous in thread | raw e-mail | index | archive | help
> Are you possitive that your motherboard can do DMA above 16meg??  Not all
> EISA machines are created equal you know.  I also cannot guarantee that the 
> diagnostic code in there is up to date.  I've been running without it enabled 
> for some time now.

Look, you can diagnose a cache problem:

o	Do a pattern write to the first block of swap.
o	Use the same buffer.  Do a pattern write of a different pattern
	to the second block of swap.
o	Use the same buffer.  DMA read the first block of swap.  Examine
	the first byte of the buffer.  Do you see the character you used
	in the first or the second pattern?
o	If you have a cache problem, turn off the cache or turn on BINVD
	or use programmed I/O.

This should be automatic.  If necessary, reserve a disk block before the
mountable part of the 'a' slice to do the test (assuming no swap).


Diagnosing a DMA range restriction is similarly easy:

o	Make sure that you have a memory area that is clean both with
	and without the 16M range mask.  This is the tricky part.
o	Fill the lower memory area with a pattern.
o	Do a write of the lower memory area to the first block of swap.
o	Fill both the upper and lower memory are with a different
	pattern.
o	Do a DMA read into the upper memory address.
o	Determine if the controller wrote upper or lower memory.
o	If you have a DMA range restriction, turn on bouncing.


All this "try setting this, try setting that" is just mindless frobbing.


					Terry Lambert
					terry@cs.weber.edu
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9502032126.AA23872>