diff options
Diffstat (limited to 'include/asm-ppc/mmu.h')
-rw-r--r-- | include/asm-ppc/mmu.h | 19 |
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 */ |