Subject: Re: evbppc reserved-tlb cleanup
To: Jachym Holecek <freza@dspfpga.com>
From: Simon Burge <simonb@NetBSD.org>
List: port-powerpc
Date: 11/26/2006 20:45:27
Jachym Holecek wrote:

> # Jachym Holecek 2006-10-31:
> > The patch below changes evbppc to map just 0 upto endkernel to make sure
> > the trap code has everything it could possibly need. Looks OK to commit?
> 
> As Simon noted, this is wrong, we must map console/devices after
> (vaddr_t)roundup(physmem, 16MB) so that pmap_tlbmiss() continues
> to work. Updated patch below, does it look OK this time?

You patch wedged my Walnut pretty much straight away.  I've tracked this
down to:

+       if (ctx != KERNEL_PID || (va < ctob((vaddr_t)physmem))) {

The "va < ctob(...)" should be "va >= ctob(...)".  That said, I think
I'd prefer to commit something like:

        if (ctx != KERNEL_PID || (va >= VM_MIN_KERNEL_ADDRESS)) {

My reasoning is: 

 - There will be never be a kernel VA less than VM_MIN_KERNEL_ADDRESS.

 - This saves a load of the physmem variable and an instruction or two
   of arithmetic in a critical path.

Sound good?  With this change, the rest of your patch (all the evbppc parts)
works.

Cheers,
Simon.