From owner-freebsd-hackers Sat Sep 30 03:59:17 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id DAA25700 for hackers-outgoing; Sat, 30 Sep 1995 03:59:17 -0700 Received: from Root.COM (implode.Root.COM [198.145.90.17]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id DAA25695 for ; Sat, 30 Sep 1995 03:59:13 -0700 Received: from corbin.Root.COM (corbin [198.145.90.50]) by Root.COM (8.6.12/8.6.5) with ESMTP id DAA02108; Sat, 30 Sep 1995 03:57:52 -0700 Received: from localhost (localhost [127.0.0.1]) by corbin.Root.COM (8.6.12/8.6.5) with SMTP id DAA01827; Sat, 30 Sep 1995 03:59:08 -0700 Message-Id: <199509301059.DAA01827@corbin.Root.COM> To: Julian Elischer cc: hackers@freebsd.org Subject: Re: correctness of isa.c In-reply-to: Your message of "Sat, 30 Sep 95 02:36:51 PDT." <199509300936.CAA18581@ref.tfs.com> From: David Greenman Reply-To: davidg@Root.COM Date: Sat, 30 Sep 1995 03:59:07 -0700 Sender: owner-hackers@freebsd.org Precedence: bulk >grrrrr > >If I were to 'fix' this for all our drivers, >does anyone here see a really important reason for this field >to hold physical and virtual addresses at different times? >I have a pass over all drivers coming up to add devfs stuff.. >I could add this to the list of things to fix.. >not that many drivers have shared memory, and with frame buffers mapped >into high memory becoing more common, this kludge should go.. >(also while we're about it, why is id_irq a bitfield? >it's almost believable, but is there a really good reason?) Yes, you're right, it's quite ugly. I started out trying to 'fix' this about 5 months ago, but then got sidetracked with the 2.0.5/2.1 release stuff. 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. -DG