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>