aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ppc
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-ppc')
-rw-r--r--include/asm-ppc/cputable.h3
-rw-r--r--include/asm-ppc/pgtable.h45
-rw-r--r--include/asm-ppc/reg_booke.h1
3 files changed, 31 insertions, 18 deletions
diff --git a/include/asm-ppc/cputable.h b/include/asm-ppc/cputable.h
index 22de04fe1b4c..41d8f8425c04 100644
--- a/include/asm-ppc/cputable.h
+++ b/include/asm-ppc/cputable.h
@@ -86,8 +86,9 @@ static inline unsigned int cpu_has_feature(unsigned int feature)
86#define CPU_FTR_DUAL_PLL_750FX 0x00004000 86#define CPU_FTR_DUAL_PLL_750FX 0x00004000
87#define CPU_FTR_NO_DPM 0x00008000 87#define CPU_FTR_NO_DPM 0x00008000
88#define CPU_FTR_HAS_HIGH_BATS 0x00010000 88#define CPU_FTR_HAS_HIGH_BATS 0x00010000
89#define CPU_FTR_NEED_COHERENT 0x00020000 89#define CPU_FTR_NEED_COHERENT 0x00020000
90#define CPU_FTR_NO_BTIC 0x00040000 90#define CPU_FTR_NO_BTIC 0x00040000
91#define CPU_FTR_BIG_PHYS 0x00080000
91 92
92#ifdef __ASSEMBLY__ 93#ifdef __ASSEMBLY__
93 94
diff --git a/include/asm-ppc/pgtable.h b/include/asm-ppc/pgtable.h
index e135b4aba9fc..a67bd512b2c8 100644
--- a/include/asm-ppc/pgtable.h
+++ b/include/asm-ppc/pgtable.h
@@ -225,8 +225,7 @@ extern unsigned long ioremap_bot, ioremap_base;
225/* ERPN in a PTE never gets cleared, ignore it */ 225/* ERPN in a PTE never gets cleared, ignore it */
226#define _PTE_NONE_MASK 0xffffffff00000000ULL 226#define _PTE_NONE_MASK 0xffffffff00000000ULL
227 227
228#elif defined(CONFIG_E500) 228#elif defined(CONFIG_FSL_BOOKE)
229
230/* 229/*
231 MMU Assist Register 3: 230 MMU Assist Register 3:
232 231
@@ -240,21 +239,29 @@ extern unsigned long ioremap_bot, ioremap_base;
240 entries use the top 29 bits. 239 entries use the top 29 bits.
241*/ 240*/
242 241
243/* Definitions for e500 core */ 242/* Definitions for FSL Book-E Cores */
244#define _PAGE_PRESENT 0x001 /* S: PTE contains a translation */ 243#define _PAGE_PRESENT 0x00001 /* S: PTE contains a translation */
245#define _PAGE_USER 0x002 /* S: User page (maps to UR) */ 244#define _PAGE_USER 0x00002 /* S: User page (maps to UR) */
246#define _PAGE_FILE 0x002 /* S: when !present: nonlinear file mapping */ 245#define _PAGE_FILE 0x00002 /* S: when !present: nonlinear file mapping */
247#define _PAGE_ACCESSED 0x004 /* S: Page referenced */ 246#define _PAGE_ACCESSED 0x00004 /* S: Page referenced */
248#define _PAGE_HWWRITE 0x008 /* H: Dirty & RW, set in exception */ 247#define _PAGE_HWWRITE 0x00008 /* H: Dirty & RW, set in exception */
249#define _PAGE_RW 0x010 /* S: Write permission */ 248#define _PAGE_RW 0x00010 /* S: Write permission */
250#define _PAGE_HWEXEC 0x020 /* H: UX permission */ 249#define _PAGE_HWEXEC 0x00020 /* H: UX permission */
251 250
252#define _PAGE_ENDIAN 0x040 /* H: E bit */ 251#define _PAGE_ENDIAN 0x00040 /* H: E bit */
253#define _PAGE_GUARDED 0x080 /* H: G bit */ 252#define _PAGE_GUARDED 0x00080 /* H: G bit */
254#define _PAGE_COHERENT 0x100 /* H: M bit */ 253#define _PAGE_COHERENT 0x00100 /* H: M bit */
255#define _PAGE_NO_CACHE 0x200 /* H: I bit */ 254#define _PAGE_NO_CACHE 0x00200 /* H: I bit */
256#define _PAGE_WRITETHRU 0x400 /* H: W bit */ 255#define _PAGE_WRITETHRU 0x00400 /* H: W bit */
257#define _PAGE_DIRTY 0x800 /* S: Page dirty */ 256
257#ifdef CONFIG_PTE_64BIT
258#define _PAGE_DIRTY 0x08000 /* S: Page dirty */
259
260/* ERPN in a PTE never gets cleared, ignore it */
261#define _PTE_NONE_MASK 0xffffffffffff0000ULL
262#else
263#define _PAGE_DIRTY 0x00800 /* S: Page dirty */
264#endif
258 265
259#define _PMD_PRESENT 0 266#define _PMD_PRESENT 0
260#define _PMD_PRESENT_MASK (PAGE_MASK) 267#define _PMD_PRESENT_MASK (PAGE_MASK)
@@ -433,7 +440,11 @@ extern unsigned long bad_call_to_PMD_PAGE_SIZE(void);
433 440
434/* in some case we want to additionaly adjust where the pfn is in the pte to 441/* in some case we want to additionaly adjust where the pfn is in the pte to
435 * allow room for more flags */ 442 * allow room for more flags */
443#if defined(CONFIG_FSL_BOOKE) && defined(CONFIG_PTE_64BIT)
444#define PFN_SHIFT_OFFSET (PAGE_SHIFT + 8)
445#else
436#define PFN_SHIFT_OFFSET (PAGE_SHIFT) 446#define PFN_SHIFT_OFFSET (PAGE_SHIFT)
447#endif
437 448
438#define pte_pfn(x) (pte_val(x) >> PFN_SHIFT_OFFSET) 449#define pte_pfn(x) (pte_val(x) >> PFN_SHIFT_OFFSET)
439#define pte_page(x) pfn_to_page(pte_pfn(x)) 450#define pte_page(x) pfn_to_page(pte_pfn(x))
diff --git a/include/asm-ppc/reg_booke.h b/include/asm-ppc/reg_booke.h
index 4b03f8e26b72..e70c25f3c339 100644
--- a/include/asm-ppc/reg_booke.h
+++ b/include/asm-ppc/reg_booke.h
@@ -172,6 +172,7 @@ do { \
172#define SPRN_MAS4 0x274 /* MMU Assist Register 4 */ 172#define SPRN_MAS4 0x274 /* MMU Assist Register 4 */
173#define SPRN_MAS5 0x275 /* MMU Assist Register 5 */ 173#define SPRN_MAS5 0x275 /* MMU Assist Register 5 */
174#define SPRN_MAS6 0x276 /* MMU Assist Register 6 */ 174#define SPRN_MAS6 0x276 /* MMU Assist Register 6 */
175#define SPRN_MAS7 0x3b0 /* MMU Assist Register 7 */
175#define SPRN_PID1 0x279 /* Process ID Register 1 */ 176#define SPRN_PID1 0x279 /* Process ID Register 1 */
176#define SPRN_PID2 0x27A /* Process ID Register 2 */ 177#define SPRN_PID2 0x27A /* Process ID Register 2 */
177#define SPRN_TLB0CFG 0x2B0 /* TLB 0 Config Register */ 178#define SPRN_TLB0CFG 0x2B0 /* TLB 0 Config Register */