diff options
Diffstat (limited to 'arch/powerpc/include/asm/mmu-hash32.h')
-rw-r--r-- | arch/powerpc/include/asm/mmu-hash32.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/powerpc/include/asm/mmu-hash32.h b/arch/powerpc/include/asm/mmu-hash32.h index 16b1a1e77e64..16f513e5cbd7 100644 --- a/arch/powerpc/include/asm/mmu-hash32.h +++ b/arch/powerpc/include/asm/mmu-hash32.h | |||
@@ -55,21 +55,25 @@ struct ppc_bat { | |||
55 | 55 | ||
56 | #ifndef __ASSEMBLY__ | 56 | #ifndef __ASSEMBLY__ |
57 | 57 | ||
58 | /* Hardware Page Table Entry */ | 58 | /* |
59 | * Hardware Page Table Entry | ||
60 | * Note that the xpn and x bitfields are used only by processors that | ||
61 | * support extended addressing; otherwise, those bits are reserved. | ||
62 | */ | ||
59 | struct hash_pte { | 63 | struct hash_pte { |
60 | unsigned long v:1; /* Entry is valid */ | 64 | unsigned long v:1; /* Entry is valid */ |
61 | unsigned long vsid:24; /* Virtual segment identifier */ | 65 | unsigned long vsid:24; /* Virtual segment identifier */ |
62 | unsigned long h:1; /* Hash algorithm indicator */ | 66 | unsigned long h:1; /* Hash algorithm indicator */ |
63 | unsigned long api:6; /* Abbreviated page index */ | 67 | unsigned long api:6; /* Abbreviated page index */ |
64 | unsigned long rpn:20; /* Real (physical) page number */ | 68 | unsigned long rpn:20; /* Real (physical) page number */ |
65 | unsigned long :3; /* Unused */ | 69 | unsigned long xpn:3; /* Real page number bits 0-2, optional */ |
66 | unsigned long r:1; /* Referenced */ | 70 | unsigned long r:1; /* Referenced */ |
67 | unsigned long c:1; /* Changed */ | 71 | unsigned long c:1; /* Changed */ |
68 | unsigned long w:1; /* Write-thru cache mode */ | 72 | unsigned long w:1; /* Write-thru cache mode */ |
69 | unsigned long i:1; /* Cache inhibited */ | 73 | unsigned long i:1; /* Cache inhibited */ |
70 | unsigned long m:1; /* Memory coherence */ | 74 | unsigned long m:1; /* Memory coherence */ |
71 | unsigned long g:1; /* Guarded */ | 75 | unsigned long g:1; /* Guarded */ |
72 | unsigned long :1; /* Unused */ | 76 | unsigned long x:1; /* Real page number bit 3, optional */ |
73 | unsigned long pp:2; /* Page protection */ | 77 | unsigned long pp:2; /* Page protection */ |
74 | }; | 78 | }; |
75 | 79 | ||
@@ -80,4 +84,10 @@ typedef struct { | |||
80 | 84 | ||
81 | #endif /* !__ASSEMBLY__ */ | 85 | #endif /* !__ASSEMBLY__ */ |
82 | 86 | ||
87 | /* We happily ignore the smaller BATs on 601, we don't actually use | ||
88 | * those definitions on hash32 at the moment anyway | ||
89 | */ | ||
90 | #define mmu_virtual_psize MMU_PAGE_4K | ||
91 | #define mmu_linear_psize MMU_PAGE_256M | ||
92 | |||
83 | #endif /* _ASM_POWERPC_MMU_HASH32_H_ */ | 93 | #endif /* _ASM_POWERPC_MMU_HASH32_H_ */ |