aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm/pgtable.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-arm/pgtable.h')
-rw-r--r--include/asm-arm/pgtable.h25
1 files changed, 20 insertions, 5 deletions
diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h
index e85c08d78dda..ed8cb5963e99 100644
--- a/include/asm-arm/pgtable.h
+++ b/include/asm-arm/pgtable.h
@@ -11,9 +11,15 @@
11#define _ASMARM_PGTABLE_H 11#define _ASMARM_PGTABLE_H
12 12
13#include <asm-generic/4level-fixup.h> 13#include <asm-generic/4level-fixup.h>
14#include <asm/proc-fns.h>
15
16#ifndef CONFIG_MMU
17
18#include "pgtable-nommu.h"
19
20#else
14 21
15#include <asm/memory.h> 22#include <asm/memory.h>
16#include <asm/proc-fns.h>
17#include <asm/arch/vmalloc.h> 23#include <asm/arch/vmalloc.h>
18 24
19/* 25/*
@@ -130,6 +136,13 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
130#define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR) 136#define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR)
131 137
132/* 138/*
139 * section address mask and size definitions.
140 */
141#define SECTION_SHIFT 20
142#define SECTION_SIZE (1UL << SECTION_SHIFT)
143#define SECTION_MASK (~(SECTION_SIZE-1))
144
145/*
133 * ARMv6 supersection address mask and size definitions. 146 * ARMv6 supersection address mask and size definitions.
134 */ 147 */
135#define SUPERSECTION_SHIFT 24 148#define SUPERSECTION_SHIFT 24
@@ -218,9 +231,9 @@ extern struct page *empty_zero_page;
218#define pte_none(pte) (!pte_val(pte)) 231#define pte_none(pte) (!pte_val(pte))
219#define pte_clear(mm,addr,ptep) set_pte_at((mm),(addr),(ptep), __pte(0)) 232#define pte_clear(mm,addr,ptep) set_pte_at((mm),(addr),(ptep), __pte(0))
220#define pte_page(pte) (pfn_to_page(pte_pfn(pte))) 233#define pte_page(pte) (pfn_to_page(pte_pfn(pte)))
221#define pte_offset_kernel(dir,addr) (pmd_page_kernel(*(dir)) + __pte_index(addr)) 234#define pte_offset_kernel(dir,addr) (pmd_page_vaddr(*(dir)) + __pte_index(addr))
222#define pte_offset_map(dir,addr) (pmd_page_kernel(*(dir)) + __pte_index(addr)) 235#define pte_offset_map(dir,addr) (pmd_page_vaddr(*(dir)) + __pte_index(addr))
223#define pte_offset_map_nested(dir,addr) (pmd_page_kernel(*(dir)) + __pte_index(addr)) 236#define pte_offset_map_nested(dir,addr) (pmd_page_vaddr(*(dir)) + __pte_index(addr))
224#define pte_unmap(pte) do { } while (0) 237#define pte_unmap(pte) do { } while (0)
225#define pte_unmap_nested(pte) do { } while (0) 238#define pte_unmap_nested(pte) do { } while (0)
226 239
@@ -285,7 +298,7 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG);
285 clean_pmd_entry(pmdp); \ 298 clean_pmd_entry(pmdp); \
286 } while (0) 299 } while (0)
287 300
288static inline pte_t *pmd_page_kernel(pmd_t pmd) 301static inline pte_t *pmd_page_vaddr(pmd_t pmd)
289{ 302{
290 unsigned long ptr; 303 unsigned long ptr;
291 304
@@ -378,4 +391,6 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
378 391
379#endif /* !__ASSEMBLY__ */ 392#endif /* !__ASSEMBLY__ */
380 393
394#endif /* CONFIG_MMU */
395
381#endif /* _ASMARM_PGTABLE_H */ 396#endif /* _ASMARM_PGTABLE_H */