*BSD News Article 72021


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.rmit.EDU.AU!news.unimelb.EDU.AU!munnari.OZ.AU!news.mel.connect.com.au!news.mira.net.au!inquo!news.seinf.abb.se!nooft.abb.no!Norway.EU.net!nntp.uio.no!news.cais.net!news.mathworks.com!uunet!inXS.uu.net!news.artisoft.com!usenet
From: Terry Lambert <terry@lambert.org>
Newsgroups: comp.unix.bsd.freebsd.misc,comp.unix.bsd.netbsd.misc
Subject: Re: Curious about *BSD History
Date: Tue, 25 Jun 1996 19:39:05 -0700
Organization: Me
Lines: 58
Message-ID: <31D0A2C9.72741EA8@lambert.org>
References: <4k1nue$lm8@orb.direct.ca> <4kl863$rno@news.rhrz.uni-bonn.de> <1996Apr12.210743.28292@wavehh.hanse.de> <317006C4.77C0450E@lambert.org> <4qkegg$9as@pier2.bayarea.net>
NNTP-Posting-Host: hecate.artisoft.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.01 (X11; I; Linux 1.1.76 i486)
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:22152 comp.unix.bsd.netbsd.misc:3850

Jason R. Thorpe wrote:
] Actually, it's more of a "bounce buffer-like" scheme that the
] Alpha needs.  This is because, unlike the i386, the ISA's view
] of system memory can is radically different from the CPU's
] view of system memory.
] 
] So, really, NetBSD won't be getting "bounce buffers", per se,
] but rather a "machine independent ISA DMA solution", which
] will have a bounce buffer effect for machines that require
] such a scheme.

Doesn't it really want a "machine independent target range
restricted DMA soloution"?  The Amiga, for instance, does
not have ISA, but has the DMA targetting problem for "fast RAM".

] This is actually the symptom of a larger problem with MI bus code
] and device drivers.  Most PCI drivers are written on the i386, and
] hence driver writers tend to use things like kvtop() or vtophys()
] to point bus-mastering cards (like the DEC Tulip, for example) at
] their memory space.  NetBSD/alpha currently has an evil little
] hack to get around this problem, but real DMA mapping functions need
] to be designed and written; can't survive on little hacks forever.

Yes, the generic soloution is the best.  The 21066 had the ISA
bridged off the PCI instead of the other way around (like in
most PC's), and so the problem was inverted.  The real issue
is generalized DMA routines that say "this will work" to the
driver coder, and then a generalized subsystem that hooks to
that interface so the Amiga and PC ISA and similar systems with
problems (ie: EISA systems with HiNT chipsets, like the old NiCE
"EISA" motherboards) can share common management code.


] Other problems arise when dealing with cards like the Matrox
] frame-grabber, which wants a chunk of several physically
] contiguous pages.  FreeBSD has a VM routine (contig_alloc()
] I think?) that deals with this.  However, systems like the
] Alpha can do the scatter/gather in hardware, transparently
] to the card that wants the contiguous space (like DVMA on
] the Sun 4).  Thus, a VM trick isn't needed.  This sort of
] routine also needs to be implemented in bus DMA mapping
] routines.

That's a cheat based on the fact that the page management is
partially in software in the Alpha MMU.  8-).  The same cheat
applies to the PPC.

I have to admit that I've been considering writing software
to make the MMU hardware pretend to be PC MMU hardware so I
can more easily track the FreeBSD VM changes on the PPC (I
known, I know, "evil incarnate").


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