Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Sep 1995 21:48:49 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        davidg@Root.COM, julian@ref.tfs.com
Cc:        hackers@freebsd.org
Subject:   Re: correctness of isa.c
Message-ID:  <199509301148.VAA00595@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>The way that I envision this, the 1MB physical memory mapping that starts
>at KERNBASE should completely go away, and each driver should allocate it's
>own kernel VA using pmap_mapdev() and then use that to talk to the shared
>memory. This makes the scheme completely flexible and allows you to map cards
>that are in unusual physical memory areas (like the 15-16MB range). The only
>thing I haven't yet figured out is what to do with the console drivers; these
>need a kernel VA before the VM system is initialized, so you pretty much have
>to kludge up something, at least temporarily during the early startup.

Fake pmap_mapdev() early.  It should probably remap the address to somewhere
that can remain valid forever.  The final address could be attached in
cninit_finish() after VM is initialized, but the old address has to remain
valid until then for debugging.

Shouldn't pmap_mapdev() be declared in a machine-independent header and
used in future drivers in other systems?  It has no i386 dependencies
except for the type of a physical address.  How did old versions of BSD
handle mapping physical addresses for device drivers?  Why doesn't VM
distinguish between the types of physical and virtual addresses?

Bruce



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