From owner-freebsd-hackers Sat Sep 30 04:52:04 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id EAA28540 for hackers-outgoing; Sat, 30 Sep 1995 04:52:04 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id EAA28526 for ; Sat, 30 Sep 1995 04:51:55 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id VAA00595; Sat, 30 Sep 1995 21:48:49 +1000 Date: Sat, 30 Sep 1995 21:48:49 +1000 From: Bruce Evans Message-Id: <199509301148.VAA00595@godzilla.zeta.org.au> To: davidg@Root.COM, julian@ref.tfs.com Subject: Re: correctness of isa.c Cc: hackers@freebsd.org Sender: owner-hackers@freebsd.org Precedence: bulk >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