|
@@ -53,3 +53,46 @@ typedef pte_t *pte_addr_t;
|
|
|
#define PAGE_NONE __pgprot(0) /* these mean nothing to NO_MM */
|
|
|
#define PAGE_SHARED __pgprot(0) /* these mean nothing to NO_MM */
|
|
|
#define PAGE_COPY __pgprot(0) /* these mean nothing to NO_MM */
|
|
|
+#define PAGE_READONLY __pgprot(0) /* these mean nothing to NO_MM */
|
|
|
+#define PAGE_KERNEL __pgprot(0) /* these mean nothing to NO_MM */
|
|
|
+
|
|
|
+#define __swp_type(x) (0)
|
|
|
+#define __swp_offset(x) (0)
|
|
|
+#define __swp_entry(typ,off) ((swp_entry_t) { ((typ) | ((off) << 7)) })
|
|
|
+#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
|
|
|
+#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
|
|
|
+
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
+static inline int pte_file(pte_t pte) { return 0; }
|
|
|
+#endif
|
|
|
+
|
|
|
+#define ZERO_PAGE(vaddr) ({ BUG(); NULL; })
|
|
|
+
|
|
|
+#define swapper_pg_dir ((pgd_t *) NULL)
|
|
|
+
|
|
|
+#define pgtable_cache_init() do {} while (0)
|
|
|
+
|
|
|
+#include <asm-generic/pgtable.h>
|
|
|
+
|
|
|
+#else /* !CONFIG_MMU */
|
|
|
+/*****************************************************************************/
|
|
|
+/*
|
|
|
+ * then MMU operation
|
|
|
+ */
|
|
|
+
|
|
|
+/*
|
|
|
+ * ZERO_PAGE is a global shared page that is always zero: used
|
|
|
+ * for zero-mapped memory areas etc..
|
|
|
+ */
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
+extern unsigned long empty_zero_page;
|
|
|
+#define ZERO_PAGE(vaddr) virt_to_page(empty_zero_page)
|
|
|
+#endif
|
|
|
+
|
|
|
+/*
|
|
|
+ * we use 2-level page tables, folding the PMD (mid-level table) into the PGE (top-level entry)
|
|
|
+ * [see Documentation/frv/mmu-layout.txt]
|
|
|
+ *
|
|
|
+ * Page Directory:
|
|
|
+ * - Size: 16KB
|
|
|
+ * - 64 PGEs per PGD
|