summaryrefslogtreecommitdiffstats
path: root/include/asm-ppc/mmu.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-ppc/mmu.h')
-rw-r--r--include/asm-ppc/mmu.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/asm-ppc/mmu.h b/include/asm-ppc/mmu.h
index f77ef3df4..81dadd22a 100644
--- a/include/asm-ppc/mmu.h
+++ b/include/asm-ppc/mmu.h
@@ -5,14 +5,25 @@
#ifndef _PPC_MMU_H_
#define _PPC_MMU_H_
+#include <linux/config.h>
+
#ifndef __ASSEMBLY__
/* Hardware Page Table Entry */
typedef struct _PTE {
+#ifdef CONFIG_PPC64
+ unsigned long long vsid:52;
+ unsigned long api:5;
+ unsigned long :5;
+ unsigned long h:1;
+ unsigned long v:1;
+ unsigned long long rpn:52;
+#else /* CONFIG_PPC64 */
unsigned long v:1; /* Entry is valid */
unsigned long vsid:24; /* Virtual segment identifier */
unsigned long h:1; /* Hash algorithm indicator */
unsigned long api:6; /* Abbreviated page index */
unsigned long rpn:20; /* Real (physical) page number */
+#endif /* CONFIG_PPC64 */
unsigned long :3; /* Unused */
unsigned long r:1; /* Referenced */
unsigned long c:1; /* Changed */
@@ -53,7 +64,11 @@ typedef struct _P601_BATU { /* Upper part of BAT for 601 processor */
} P601_BATU;
typedef struct _BATU { /* Upper part of BAT (all except 601) */
+#ifdef CONFIG_PPC64
+ unsigned long long bepi:47;
+#else /* CONFIG_PPC64 */
unsigned long bepi:15; /* Effective page index (virtual address) */
+#endif /* CONFIG_PPC64 */
unsigned long :4; /* Unused */
unsigned long bl:11; /* Block size mask */
unsigned long vs:1; /* Supervisor valid */
@@ -68,7 +83,11 @@ typedef struct _P601_BATL { /* Lower part of BAT for 601 processor */
} P601_BATL;
typedef struct _BATL { /* Lower part of BAT (all except 601) */
+#ifdef CONFIG_PPC64
+ unsigned long long brpn:47;
+#else /* CONFIG_PPC64 */
unsigned long brpn:15; /* Real page index (physical address) */
+#endif /* CONFIG_PPC64 */
unsigned long :10; /* Unused */
unsigned long w:1; /* Write-thru cache */
unsigned long i:1; /* Cache inhibit */