Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Mar 1996 10:18:04 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        rgrimes@GndRsh.aac.dev.com (Rodney W. Grimes)
Cc:        cau@cc.gatech.edu, uhclem@nemesis.lonestar.org, hackers@FreeBSD.ORG, current@FreeBSD.ORG
Subject:   Re: Crash advice needed APPENDIX B
Message-ID:  <199603251718.KAA12203@phaeton.artisoft.com>
In-Reply-To: <199603250516.VAA28302@GndRsh.aac.dev.com> from "Rodney W. Grimes" at Mar 24, 96 09:16:47 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> > > Because SCO Unix, Windows 95 and Windows NT are all gross in the way
> > > they handled bus master DMA disk controllers, they use a dedicated
> > > buffer area that is marked uncacheable just so they can run on the
> > > broken cache coherency motherboards.    Can you say totally defeat
> > > the purpose of bus master DMA buy having the processor bcopy data
> > > around...
> > 
> > Unfortunately, I've got one of these broken motherboards.  Is
> > there a way to make FreeBSD behave the same way?  That is, to
> > mark some memory block uncacheable (I guess this would be the
> > bounce buffers area)?  I realize this would be counterproductive
> > (decreased performance) in most cases, but in my case it might
> > help (I am able to use my DMA busmaster car at lower CPU
> > speeds, but I'd like to see the results of using a higher clock
> > value).
> 
> I can only theorize here as I am not that familiar with the current
> vm system in FreeBSD but... it should not be that major of a task
> to mark the bounce buffer region as uncachable (simply 1 or 2 bits
> per PTE in the page tables for this region) and then modify the
> bounce buffer code to _always_ bounce the I/O through the buffer.
> 
> This would totally defeat bus mastered DMA, but it would infact allow
> broken hardware to run.

I'd like to point out at this time that Cyrix/TI chipmask processors
not based on the IBM masks Cyrix got a while back do *not* honor the
non-cacheable bit in any case.

A BINVD would be required to manually flush the cache, or the cache
would still need to be turned off for these systems.


					Terry Lambert
					terry@lambert.org
---
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?199603251718.KAA12203>