Subject: Re: UVM bug
To: Neil A. Carson <neil@causality.com>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: tech-kern
Date: 05/26/1999 15:31:01
On Wed, 26 May 1999 15:32:48 -0700 
 "Neil A. Carson" <neil@causality.com> wrote:

 > Hmm. So what's the way to reprogram something sitting in the top address
 > of phys RAM? IBM wired an AMD 512KB flash part there in one of their
 > more recent boards. Would it be safest to just pmap_kenter the page and
 > do it within the kernel? I'd better look at the code and see if even
 > _this_ will work...

Well...

On the hp300, physical RAM is always located at the end of the physical
address space.  In the hp300 pmap_bootstrap(), the PTEs are frobbed manually
to map the last page of RAM VA == PA.  This is used to provide a trampoline
page that code can execute from when both the MMU is enabled and disabled :-)

Now, actually, that I think about it, pmap_enter() _can_ handle the last page
of physical RAM... but you'll have to reserve the KVA space somewhere else,
and possibly have a device driver that provides a read/write or an ioctl
method of getting to that flash part, for user space, since the VM system
isn't going to be able to cope.

        -- Jason R. Thorpe <thorpej@nas.nasa.gov>