|
@@ -40,6 +40,8 @@
|
|
|
/* PGDIR_SHIFT determines what a third-level page table entry can map */
|
|
|
#ifdef CONFIG_SUN3
|
|
|
#define PGDIR_SHIFT 17
|
|
|
+#elif defined(CONFIG_COLDFIRE)
|
|
|
+#define PGDIR_SHIFT 22
|
|
|
#else
|
|
|
#define PGDIR_SHIFT 25
|
|
|
#endif
|
|
@@ -54,6 +56,10 @@
|
|
|
#define PTRS_PER_PTE 16
|
|
|
#define PTRS_PER_PMD 1
|
|
|
#define PTRS_PER_PGD 2048
|
|
|
+#elif defined(CONFIG_COLDFIRE)
|
|
|
+#define PTRS_PER_PTE 512
|
|
|
+#define PTRS_PER_PMD 1
|
|
|
+#define PTRS_PER_PGD 1024
|
|
|
#else
|
|
|
#define PTRS_PER_PTE 1024
|
|
|
#define PTRS_PER_PMD 8
|
|
@@ -66,12 +72,22 @@
|
|
|
#ifdef CONFIG_SUN3
|
|
|
#define KMAP_START 0x0DC00000
|
|
|
#define KMAP_END 0x0E000000
|
|
|
+#elif defined(CONFIG_COLDFIRE)
|
|
|
+#define KMAP_START 0xe0000000
|
|
|
+#define KMAP_END 0xf0000000
|
|
|
#else
|
|
|
#define KMAP_START 0xd0000000
|
|
|
#define KMAP_END 0xf0000000
|
|
|
#endif
|
|
|
|
|
|
-#ifndef CONFIG_SUN3
|
|
|
+#ifdef CONFIG_SUN3
|
|
|
+extern unsigned long m68k_vmalloc_end;
|
|
|
+#define VMALLOC_START 0x0f800000
|
|
|
+#define VMALLOC_END m68k_vmalloc_end
|
|
|
+#elif defined(CONFIG_COLDFIRE)
|
|
|
+#define VMALLOC_START 0xd0000000
|
|
|
+#define VMALLOC_END 0xe0000000
|
|
|
+#else
|
|
|
/* Just any arbitrary offset to the start of the vmalloc VM area: the
|
|
|
* current 8MB value just means that there will be a 8MB "hole" after the
|
|
|
* physical memory until the kernel virtual memory starts. That means that
|
|
@@ -82,11 +98,7 @@
|
|
|
#define VMALLOC_OFFSET (8*1024*1024)
|
|
|
#define VMALLOC_START (((unsigned long) high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
|
|
|
#define VMALLOC_END KMAP_START
|
|
|
-#else
|
|
|
-extern unsigned long m68k_vmalloc_end;
|
|
|
-#define VMALLOC_START 0x0f800000
|
|
|
-#define VMALLOC_END m68k_vmalloc_end
|
|
|
-#endif /* CONFIG_SUN3 */
|
|
|
+#endif
|
|
|
|
|
|
/* zero page used for uninitialized stuff */
|
|
|
extern void *empty_zero_page;
|
|
@@ -130,6 +142,8 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
|
|
|
|
|
|
#ifdef CONFIG_SUN3
|
|
|
#include <asm/sun3_pgtable.h>
|
|
|
+#elif defined(CONFIG_COLDFIRE)
|
|
|
+#include <asm/mcf_pgtable.h>
|
|
|
#else
|
|
|
#include <asm/motorola_pgtable.h>
|
|
|
#endif
|
|
@@ -138,6 +152,9 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
|
|
|
/*
|
|
|
* Macro to mark a page protection value as "uncacheable".
|
|
|
*/
|
|
|
+#ifdef CONFIG_COLDFIRE
|
|
|
+# define pgprot_noncached(prot) (__pgprot(pgprot_val(prot) | CF_PAGE_NOCACHE))
|
|
|
+#else
|
|
|
#ifdef SUN3_PAGE_NOCACHE
|
|
|
# define __SUN3_PAGE_NOCACHE SUN3_PAGE_NOCACHE
|
|
|
#else
|
|
@@ -152,6 +169,7 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
|
|
|
? (__pgprot((pgprot_val(prot) & _CACHEMASK040) | _PAGE_NOCACHE_S)) \
|
|
|
: (prot)))
|
|
|
|
|
|
+#endif /* CONFIG_COLDFIRE */
|
|
|
#include <asm-generic/pgtable.h>
|
|
|
#endif /* !__ASSEMBLY__ */
|
|
|
|