Thread (5 messages) flat view 5 messages, 2 authors, 2005-06-04

Re: [PATCH] Fix PPC440 pagetable attributes

From: Kumar Gala <hidden>
Date: 2005-06-03 20:42:52

On Jun 3, 2005, at 11:30 AM, Geoff Levand wrote:
Kumar Gala wrote:
quoted
On Jun 2, 2005, at 6:00 PM, Geoff Levand wrote:

quoted
This patch fixes a bug in the PPC440 pagetable attributes that breaks
swap support.  It also adds some notes on the PPC440 attribute 
fields.

 *
 * Note that these bits preclude future use of a page size
 * less than 4KB.
+ *
+ *
+ * PPC 440 core has following TLB attribute fields;
+ *
+ *   TLB1:
+ *   0  1  2  3  4  ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
31
+ *   RPN.................................  -  -  -  -  -  -
ERPN.......
+ *
+ *   TLB2:
+ *   0  1  2  3  4  ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
31
+ *   -  -  -  -  -    - U0 U1 U2 U3 W  I  M  G  E   - UX UW UR SX SW
SR
+ *
+ * There are some constrains and options, to decide mapping software
bits
+ * into TLB entry.
+ *
+ *   - PRESENT *must* be in the bottom three bits because swap cache
+ *     entries use the top 29 bits for TLB2.
+ *
+ *   - FILE *must* be in the bottom three bits because swap cache
+ *     entries use the top 29 bits for TLB2.
+ *
+ *   - CACHE COHERENT bit (M) has no effect on PPC440 core, because 
it
+ *     doesn't support SMP. So we can use this as software bit, like
+ *     DIRTY.
+ *
+ * PPC Book-E Linux implementation uses PPC HW PTE bit field
definition,
+ * even it doesn't have HW PTE. 0-11th LSB of PTE stand for memory
+ * protection-related function. (See PTE structure in
include/asm-ppc/mmu.h)
+ * Definition of _PAGE_XXX in "include/asm-ppc/pagetable.h" stands 
for
+ * above bits. Note that those bits values are CPU dependent, not
+ * architecture.
+ *
I disagree with this comment.  PPC Book-E PTE format has nothing to do
with PPC HW PTE format.
OK, is this more agreeable?

* With the PPC Book-E Linux implementation, 0-11th LSB of PTE stand 
for memory
* protection-related function. (See PTE structure in 
include/asm-ppc/mmu.h)
* Definition of _PAGE_XXX here stands for above bits. Note that those 
bits
* values are CPU dependent, not architecture.
That's more reasonable, however I would make it say PPC 44x ... instead 
of Book-E, the e500 is also a Book-E processor and if you notice if we 
use a 64-bit PTE we end up using more than the 12 LSBs for PTE flags.

- kumar
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help