diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-07-27 21:59:34 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-08-19 20:25:06 -0400 |
commit | 57e2a99f74b0d3720c97a6aadb57ae6aad3c61ea (patch) | |
tree | 4268a98ad222dbcf790749aed52417eb0a3a2a35 /arch/powerpc/include/asm/mmu-book3e.h | |
parent | 0257c99cdfaca53a881339e1cbca638c61569b05 (diff) |
powerpc: Add memory management headers for new 64-bit BookE
This adds the PTE and pgtable format definitions, along with changes
to the kernel memory map and other definitions related to implementing
support for 64-bit Book3E. This also shields some asm-offset bits that
are currently only relevant on 32-bit
We also move the definition of the "linux" page size constants to
the common mmu.h file and add a few sizes that are relevant to
embedded processors.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm/mmu-book3e.h')
-rw-r--r-- | arch/powerpc/include/asm/mmu-book3e.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/mmu-book3e.h b/arch/powerpc/include/asm/mmu-book3e.h index 42a39b4aacec..6ddbe48d07fa 100644 --- a/arch/powerpc/include/asm/mmu-book3e.h +++ b/arch/powerpc/include/asm/mmu-book3e.h | |||
@@ -170,6 +170,33 @@ typedef struct { | |||
170 | unsigned int active; | 170 | unsigned int active; |
171 | unsigned long vdso_base; | 171 | unsigned long vdso_base; |
172 | } mm_context_t; | 172 | } mm_context_t; |
173 | |||
174 | /* Page size definitions, common between 32 and 64-bit | ||
175 | * | ||
176 | * shift : is the "PAGE_SHIFT" value for that page size | ||
177 | * penc : is the pte encoding mask | ||
178 | * | ||
179 | */ | ||
180 | struct mmu_psize_def | ||
181 | { | ||
182 | unsigned int shift; /* number of bits */ | ||
183 | unsigned int enc; /* PTE encoding */ | ||
184 | }; | ||
185 | extern struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT]; | ||
186 | |||
187 | /* The page sizes use the same names as 64-bit hash but are | ||
188 | * constants | ||
189 | */ | ||
190 | #if defined(CONFIG_PPC_4K_PAGES) | ||
191 | #define mmu_virtual_psize MMU_PAGE_4K | ||
192 | #elif defined(CONFIG_PPC_64K_PAGES) | ||
193 | #define mmu_virtual_psize MMU_PAGE_64K | ||
194 | #else | ||
195 | #error Unsupported page size | ||
196 | #endif | ||
197 | |||
198 | extern int mmu_linear_psize; | ||
199 | |||
173 | #endif /* !__ASSEMBLY__ */ | 200 | #endif /* !__ASSEMBLY__ */ |
174 | 201 | ||
175 | #endif /* _ASM_POWERPC_MMU_BOOK3E_H_ */ | 202 | #endif /* _ASM_POWERPC_MMU_BOOK3E_H_ */ |