diff options
Diffstat (limited to 'arch/m68k/include/asm/pgtable_mm.h')
-rw-r--r-- | arch/m68k/include/asm/pgtable_mm.h | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/arch/m68k/include/asm/pgtable_mm.h b/arch/m68k/include/asm/pgtable_mm.h index 87174c904d2b..dc35e0e106e4 100644 --- a/arch/m68k/include/asm/pgtable_mm.h +++ b/arch/m68k/include/asm/pgtable_mm.h | |||
@@ -40,6 +40,8 @@ | |||
40 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ | 40 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ |
41 | #ifdef CONFIG_SUN3 | 41 | #ifdef CONFIG_SUN3 |
42 | #define PGDIR_SHIFT 17 | 42 | #define PGDIR_SHIFT 17 |
43 | #elif defined(CONFIG_COLDFIRE) | ||
44 | #define PGDIR_SHIFT 22 | ||
43 | #else | 45 | #else |
44 | #define PGDIR_SHIFT 25 | 46 | #define PGDIR_SHIFT 25 |
45 | #endif | 47 | #endif |
@@ -54,6 +56,10 @@ | |||
54 | #define PTRS_PER_PTE 16 | 56 | #define PTRS_PER_PTE 16 |
55 | #define PTRS_PER_PMD 1 | 57 | #define PTRS_PER_PMD 1 |
56 | #define PTRS_PER_PGD 2048 | 58 | #define PTRS_PER_PGD 2048 |
59 | #elif defined(CONFIG_COLDFIRE) | ||
60 | #define PTRS_PER_PTE 512 | ||
61 | #define PTRS_PER_PMD 1 | ||
62 | #define PTRS_PER_PGD 1024 | ||
57 | #else | 63 | #else |
58 | #define PTRS_PER_PTE 1024 | 64 | #define PTRS_PER_PTE 1024 |
59 | #define PTRS_PER_PMD 8 | 65 | #define PTRS_PER_PMD 8 |
@@ -66,12 +72,22 @@ | |||
66 | #ifdef CONFIG_SUN3 | 72 | #ifdef CONFIG_SUN3 |
67 | #define KMAP_START 0x0DC00000 | 73 | #define KMAP_START 0x0DC00000 |
68 | #define KMAP_END 0x0E000000 | 74 | #define KMAP_END 0x0E000000 |
75 | #elif defined(CONFIG_COLDFIRE) | ||
76 | #define KMAP_START 0xe0000000 | ||
77 | #define KMAP_END 0xf0000000 | ||
69 | #else | 78 | #else |
70 | #define KMAP_START 0xd0000000 | 79 | #define KMAP_START 0xd0000000 |
71 | #define KMAP_END 0xf0000000 | 80 | #define KMAP_END 0xf0000000 |
72 | #endif | 81 | #endif |
73 | 82 | ||
74 | #ifndef CONFIG_SUN3 | 83 | #ifdef CONFIG_SUN3 |
84 | extern unsigned long m68k_vmalloc_end; | ||
85 | #define VMALLOC_START 0x0f800000 | ||
86 | #define VMALLOC_END m68k_vmalloc_end | ||
87 | #elif defined(CONFIG_COLDFIRE) | ||
88 | #define VMALLOC_START 0xd0000000 | ||
89 | #define VMALLOC_END 0xe0000000 | ||
90 | #else | ||
75 | /* Just any arbitrary offset to the start of the vmalloc VM area: the | 91 | /* Just any arbitrary offset to the start of the vmalloc VM area: the |
76 | * current 8MB value just means that there will be a 8MB "hole" after the | 92 | * current 8MB value just means that there will be a 8MB "hole" after the |
77 | * physical memory until the kernel virtual memory starts. That means that | 93 | * physical memory until the kernel virtual memory starts. That means that |
@@ -82,11 +98,7 @@ | |||
82 | #define VMALLOC_OFFSET (8*1024*1024) | 98 | #define VMALLOC_OFFSET (8*1024*1024) |
83 | #define VMALLOC_START (((unsigned long) high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)) | 99 | #define VMALLOC_START (((unsigned long) high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)) |
84 | #define VMALLOC_END KMAP_START | 100 | #define VMALLOC_END KMAP_START |
85 | #else | 101 | #endif |
86 | extern unsigned long m68k_vmalloc_end; | ||
87 | #define VMALLOC_START 0x0f800000 | ||
88 | #define VMALLOC_END m68k_vmalloc_end | ||
89 | #endif /* CONFIG_SUN3 */ | ||
90 | 102 | ||
91 | /* zero page used for uninitialized stuff */ | 103 | /* zero page used for uninitialized stuff */ |
92 | extern void *empty_zero_page; | 104 | extern void *empty_zero_page; |
@@ -130,6 +142,8 @@ static inline void update_mmu_cache(struct vm_area_struct *vma, | |||
130 | 142 | ||
131 | #ifdef CONFIG_SUN3 | 143 | #ifdef CONFIG_SUN3 |
132 | #include <asm/sun3_pgtable.h> | 144 | #include <asm/sun3_pgtable.h> |
145 | #elif defined(CONFIG_COLDFIRE) | ||
146 | #include <asm/mcf_pgtable.h> | ||
133 | #else | 147 | #else |
134 | #include <asm/motorola_pgtable.h> | 148 | #include <asm/motorola_pgtable.h> |
135 | #endif | 149 | #endif |
@@ -138,6 +152,9 @@ static inline void update_mmu_cache(struct vm_area_struct *vma, | |||
138 | /* | 152 | /* |
139 | * Macro to mark a page protection value as "uncacheable". | 153 | * Macro to mark a page protection value as "uncacheable". |
140 | */ | 154 | */ |
155 | #ifdef CONFIG_COLDFIRE | ||
156 | # define pgprot_noncached(prot) (__pgprot(pgprot_val(prot) | CF_PAGE_NOCACHE)) | ||
157 | #else | ||
141 | #ifdef SUN3_PAGE_NOCACHE | 158 | #ifdef SUN3_PAGE_NOCACHE |
142 | # define __SUN3_PAGE_NOCACHE SUN3_PAGE_NOCACHE | 159 | # define __SUN3_PAGE_NOCACHE SUN3_PAGE_NOCACHE |
143 | #else | 160 | #else |
@@ -152,6 +169,7 @@ static inline void update_mmu_cache(struct vm_area_struct *vma, | |||
152 | ? (__pgprot((pgprot_val(prot) & _CACHEMASK040) | _PAGE_NOCACHE_S)) \ | 169 | ? (__pgprot((pgprot_val(prot) & _CACHEMASK040) | _PAGE_NOCACHE_S)) \ |
153 | : (prot))) | 170 | : (prot))) |
154 | 171 | ||
172 | #endif /* CONFIG_COLDFIRE */ | ||
155 | #include <asm-generic/pgtable.h> | 173 | #include <asm-generic/pgtable.h> |
156 | #endif /* !__ASSEMBLY__ */ | 174 | #endif /* !__ASSEMBLY__ */ |
157 | 175 | ||