Subject: Re: 1.1 386 Hardware
To: None <current-users@NetBSD.ORG>
From: None <is@Beverly.Rhein.DE>
List: current-users
Date: 11/10/1995 08:41:24
Chris G Demetriou (Chris_G_Demetriou@BALVENIE.PDL.CS.CMU.EDU) wrote:
: the ISA drivers that do DMA do so by calling vtophys() to find out
: what addresses things are at, and assume that ISA bus pysical
: addresses are the SAME as system physical addresses.
: 
: This just doesn't work on all systems.
: 
: 
: For instance, on many alpha systems, ISA/PCI bus memory space looks like:
: 
: 	0-8M	ISA special stuff (e.g. VGA)
: 	8M-16M	scatter-gather-mapped windows into main memory
: 		(effectively virtual DMA).
: 	16M-1G	NOTHING
: 	1G-2G	Main memory
: 	2G-4G	PCI devices, etc.
: 
: the main memory that appears at 1G-2G is actually system bus physical
: addresses 0-1G...  vtophys() just won't cut it.
: 
: Because there's _no RAM at all_ in the 0-16M range, you need
: cpu-specific "map DMA" and "unmap DMA" routines for _all_ ISA DMA
: accesses...
: 
: Similarly, "inb()" and "outb()" aren't sufficient in ISA bus drivers,
: for the Alpha, as well...  not only can there be multiple "isa-like"
: busses in a single machine on the alpha, there can even be multiple
: _primary_ PCI busses in some...)

There is also the case of ISA bus interfaces on the Amiga Zorro bus.
Niklas Hallquist is working on this, and I guess he has lots of fun with
it. 

Regards,
	Ignatios