Subject: Re: PowerPC MMU questions

From: Kumar Gala <[email-masked]>
Date: Fri, 12 Nov 2004 10:01:48 -0600

On Nov 11, 2004, at 9:36 PM, Jeff Domogala wrote:

> Folks,
>
> I am dealing with a PowerPC 7455.  Here is my understanding regarding 
> the
>  MMU translation order:  If the address is covered in a BAT, that BAT
> translation is in effect.  If there is no BAT entry, then the page 
> tables
>  are used to translate the address.  If there is no page table entry, 
> an
>  exception is thrown and the exception handler for the miss needs to 
> add a
>  new PTE.  So, correct me if I'm wrong in my translation.
>
> Now, The system starts up with BAT entries to get the system off the 
> ground.
>  I have equivalent BAT entries for the instruction and data sides.  I 
> also
>  have the L1 I and D caches on as well as the L2 cache (I and D 
> mode).  The
>  reason for using the BATs is to create non-cached I/O regions until 
> the MMU
>  PTEs are populated.  Once the MMU PTEs are setup, the caches are 
> flsuhed and
>  disabled, the MMU is disabled, the BATS disabled, the MMU re-enabled 
> and the
>  caches re-enabled.  So here are my questions:
>
> 1. Is it ok to have the same I and D BAT entries?

Yes, the I-BAT will be used for translations on instruction fetches, 
the D-BAT will be used on data accesses (ld/st instructions).

>  2. Is it ok to setup the initial MMU PTEs with the BATs enabled or 
> should
>  the caches be disabled and MMU disabled during the PTE setup?

There should be no harm setting up MMU PTEs with BATs enabled, as you 
said the BATs will take preference over the PTEs

>  3. Is there some other esource out there (mailing list or otherwise) 
> that I
>  should be addressing these questions to?

This is as good as any, assuming your using linux :)  Also, the 
Freescale website has a number of App Notes on the various PPC MMUs and 
an email support address [email-masked]

- kumar